add: if (optMeleeScale == TFB_SCALE_STEP) min_reduction = max_reduction = MAX_VIS_REDUCTION + 1; else min_reduction = max_reduction = MAX_ZOOM_OUT + (1 << ZOOM_SHIFT);
context: PreProcessQueue (PSIZE pscroll_x, PSIZE pscroll_y){#ifdef OLD_ZOOM	BYTE min_reduction, max_reduction;#else	SIZE min_reduction, max_reduction;#endif	COUNT num_ships;	POINT Origin;	HELEMENT hElement;	COUNT ships_alive;#ifdef KDEBUG	fprintf (stderr, "PreProcess:\n");#endif	num_ships = (LOBYTE (battle_counter) ? 1 : 0)			+ (HIBYTE (battle_counter) ? 1 : 0);#ifdef OLD_ZOOM	min_reduction = max_reduction = MAX_VIS_REDUCTION + 1;#else	min_reduction = max_reduction = MAX_ZOOM_OUT + (1 << ZOOM_SHIFT);#endif	Origin.x = (COORD)(LOG_SPACE_WIDTH >> 1);	Origin.y = (COORD)(LOG_SPACE_HEIGHT >> 1);	hElement = GetHeadElement ();	ships_alive = 0;	while (hElement != 0)	{		ELEMENTPTR ElementPtr;		HELEMENT hNextElement;		LockElement (hElement, &ElementPtr);		if (!(ElementPtr->state_flags & PRE_PROCESS))			PreProcess (ElementPtr);		hNextElement = GetSuccElement (ElementPtr);		if (CollidingElement (ElementPtr)				&& !(ElementPtr->state_flags & COLLISION))			ProcessCollisions (hNextElement, ElementPtr,					MAX_TIME_VALUE, PRE_PROCESS);		if (ElementPtr->state_flags & PLAYER_SHIP)		{			SIZE dx, dy;			ships_alive++;#ifdef OLD_ZOOM			if (max_reduction > MAX_VIS_REDUCTION					&& min_reduction > MAX_VIS_REDUCTION)#else			if (max_reduction > MAX_ZOOM_OUT					&& min_reduction > MAX_ZOOM_OUT)#endif			{				Origin.x = DISPLAY_ALIGN (ElementPtr->next.location.x);				Origin.y = DISPLAY_ALIGN (ElementPtr->next.location.y);			}			dx = DISPLAY_ALIGN (ElementPtr->next.location.x) - Origin.x;			dx = WRAP_DELTA_X (dx);			dy = DISPLAY_ALIGN (ElementPtr->next.location.y) - Origin.y;			dy = WRAP_DELTA_Y (dy);			if (num_ships <= 2 || !(ElementPtr->state_flags & BAD_GUY))			{				Origin.x = DISPLAY_ALIGN (Origin.x + (dx >> 1));				Origin.y = DISPLAY_ALIGN (Origin.y + (dy >> 1));				if (dx < 0)					dx = -dx;				if (dy < 0)					dy = -dy;				max_reduction = CalcReduction (dx, dy);			}#ifdef OLD_ZOOM			else if (max_reduction > MAX_VIS_REDUCTION					&& min_reduction <= MAX_VIS_REDUCTION)#else			else if (max_reduction > MAX_ZOOM_OUT					&& min_reduction <= MAX_ZOOM_OUT)#endif			{				Origin.x = DISPLAY_ALIGN (Origin.x + (dx >> 1));				Origin.y = DISPLAY_ALIGN (Origin.y + (dy >> 1));				if (dx < 0)					dx = -dx;				if (dy < 0)					dy = -dy;				min_reduction = CalcReduction (dx, dy);			}			else			{#ifdef OLD_ZOOM				BYTE reduction;#else				SIZE reduction;#endif				if (dx < 0)					dx = -dx;				if (dy < 0)					dy = -dy;				reduction = CalcReduction (dx << 1, dy << 1);#ifdef OLD_ZOOM				if (min_reduction > MAX_VIS_REDUCTION						|| reduction < min_reduction)#else				if (min_reduction > MAX_ZOOM_OUT						|| reduction < min_reduction)#endif					min_reduction = reduction;			}//			fprintf (stderr, "dx = %d dy = %d min_red = %d max_red = %d\n",//					dx, dy, min_reduction, max_reduction);		}		UnlockElement (hElement);		hElement = hNextElement;	}#ifdef OLD_ZOOM	if ((min_reduction > MAX_VIS_REDUCTION || min_reduction <= max_reduction)			&& (min_reduction = max_reduction) > MAX_VIS_REDUCTION			&& (min_reduction = GLOBAL (cur_state)) > MAX_VIS_REDUCTION)		min_reduction = 0;#else	if ((min_reduction > MAX_ZOOM_OUT || min_reduction <= max_reduction)			&& (min_reduction = max_reduction) > MAX_ZOOM_OUT			&& (min_reduction = zoom_out) > MAX_ZOOM_OUT)		min_reduction = 1 << ZOOM_SHIFT;#endif#ifdef KDEBUG	fprintf (stderr, "PreProcess: exit\n");#endif	return (CalcView (&Origin, min_reduction, pscroll_x, pscroll_y, ships_alive));}