Changeset - r26671:86676ec89190
[Not reviewed]
master
0 1 0
Peter Nelson - 18 months ago 2022-12-23 14:47:11
peter1138@openttd.org
Cleanup: Replace foundation drawing magic numbers.

Use TILE_SIZE or TILE_HEIGHT as appropriate instead.
1 file changed with 21 insertions and 17 deletions:
0 comments (0 inline, 0 general)
src/landscape.cpp
Show inline comments
 
@@ -500,7 +500,7 @@ void DrawFoundation(TileInfo *ti, Founda
 
		if (!IsNonContinuousFoundation(f)) {
 
			/* Lower part of foundation */
 
			AddSortableSpriteToDraw(
 
				leveled_base + (ti->tileh & ~SLOPE_STEEP), PAL_NONE, ti->x, ti->y, 16, 16, 7, ti->z
 
				leveled_base + (ti->tileh & ~SLOPE_STEEP), PAL_NONE, ti->x, ti->y, TILE_SIZE, TILE_SIZE, TILE_HEIGHT - 1, ti->z
 
			);
 
		}
 

	
 
@@ -512,38 +512,42 @@ void DrawFoundation(TileInfo *ti, Founda
 
			byte inclined = highest_corner * 2 + (f == FOUNDATION_INCLINED_Y ? 1 : 0);
 

	
 
			AddSortableSpriteToDraw(inclined_base + inclined, PAL_NONE, ti->x, ti->y,
 
				f == FOUNDATION_INCLINED_X ? 16 : 1,
 
				f == FOUNDATION_INCLINED_Y ? 16 : 1,
 
				f == FOUNDATION_INCLINED_X ? TILE_SIZE : 1,
 
				f == FOUNDATION_INCLINED_Y ? TILE_SIZE : 1,
 
				TILE_HEIGHT, ti->z
 
			);
 
			OffsetGroundSprite(0, 0);
 
		} else if (IsLeveledFoundation(f)) {
 
			AddSortableSpriteToDraw(leveled_base + SlopeWithOneCornerRaised(highest_corner), PAL_NONE, ti->x, ti->y, 16, 16, 7, ti->z - TILE_HEIGHT);
 
			OffsetGroundSprite(0, -8);
 
			AddSortableSpriteToDraw(leveled_base + SlopeWithOneCornerRaised(highest_corner), PAL_NONE, ti->x, ti->y, TILE_SIZE, TILE_SIZE, TILE_HEIGHT - 1, ti->z - TILE_HEIGHT);
 
			OffsetGroundSprite(0, -(int)TILE_HEIGHT);
 
		} else if (f == FOUNDATION_STEEP_LOWER) {
 
			/* one corner raised */
 
			OffsetGroundSprite(0, -8);
 
			OffsetGroundSprite(0, -(int)TILE_HEIGHT);
 
		} else {
 
			/* halftile foundation */
 
			int x_bb = (((highest_corner == CORNER_W) || (highest_corner == CORNER_S)) ? 8 : 0);
 
			int y_bb = (((highest_corner == CORNER_S) || (highest_corner == CORNER_E)) ? 8 : 0);
 
			int x_bb = (((highest_corner == CORNER_W) || (highest_corner == CORNER_S)) ? TILE_SIZE / 2 : 0);
 
			int y_bb = (((highest_corner == CORNER_S) || (highest_corner == CORNER_E)) ? TILE_SIZE / 2 : 0);
 

	
 
			AddSortableSpriteToDraw(halftile_base + highest_corner, PAL_NONE, ti->x + x_bb, ti->y + y_bb, 8, 8, 7, ti->z + TILE_HEIGHT);
 
			AddSortableSpriteToDraw(halftile_base + highest_corner, PAL_NONE, ti->x + x_bb, ti->y + y_bb, TILE_SIZE / 2, TILE_SIZE / 2, TILE_HEIGHT - 1, ti->z + TILE_HEIGHT);
 
			/* Reposition ground sprite back to original position after bounding box change above. This is similar to
 
			 * RemapCoords() but without zoom scaling. */
 
			Point pt = {(y_bb - x_bb) * 2, y_bb + x_bb};
 
			OffsetGroundSprite(-pt.x, -pt.y);
 
		}
 
	} else {
 
		if (IsLeveledFoundation(f)) {
 
			/* leveled foundation */
 
			AddSortableSpriteToDraw(leveled_base + ti->tileh, PAL_NONE, ti->x, ti->y, 16, 16, 7, ti->z);
 
			OffsetGroundSprite(0, -8);
 
			AddSortableSpriteToDraw(leveled_base + ti->tileh, PAL_NONE, ti->x, ti->y, TILE_SIZE, TILE_SIZE, TILE_HEIGHT - 1, ti->z);
 
			OffsetGroundSprite(0, -(int)TILE_HEIGHT);
 
		} else if (IsNonContinuousFoundation(f)) {
 
			/* halftile foundation */
 
			Corner halftile_corner = GetHalftileFoundationCorner(f);
 
			int x_bb = (((halftile_corner == CORNER_W) || (halftile_corner == CORNER_S)) ? 8 : 0);
 
			int y_bb = (((halftile_corner == CORNER_S) || (halftile_corner == CORNER_E)) ? 8 : 0);
 
			int x_bb = (((halftile_corner == CORNER_W) || (halftile_corner == CORNER_S)) ? TILE_SIZE / 2 : 0);
 
			int y_bb = (((halftile_corner == CORNER_S) || (halftile_corner == CORNER_E)) ? TILE_SIZE / 2 : 0);
 

	
 
			AddSortableSpriteToDraw(halftile_base + halftile_corner, PAL_NONE, ti->x + x_bb, ti->y + y_bb, 8, 8, 7, ti->z);
 
			AddSortableSpriteToDraw(halftile_base + halftile_corner, PAL_NONE, ti->x + x_bb, ti->y + y_bb, TILE_SIZE / 2, TILE_SIZE / 2, TILE_HEIGHT - 1, ti->z);
 
			/* Reposition ground sprite back to original position after bounding box change above. This is similar to
 
			 * RemapCoords() but without zoom scaling. */
 
			Point pt = {(y_bb - x_bb) * 2, y_bb + x_bb};
 
			OffsetGroundSprite(-pt.x, -pt.y);
 
		} else if (IsSpecialRailFoundation(f)) {
 
@@ -556,15 +560,15 @@ void DrawFoundation(TileInfo *ti, Founda
 
				/* tile-slope = sloped along X/Y, foundation-slope = three corners raised */
 
				spr = inclined_base + 2 * GetRailFoundationCorner(f) + ((ti->tileh == SLOPE_SW || ti->tileh == SLOPE_NE) ? 1 : 0);
 
			}
 
			AddSortableSpriteToDraw(spr, PAL_NONE, ti->x, ti->y, 16, 16, 7, ti->z);
 
			AddSortableSpriteToDraw(spr, PAL_NONE, ti->x, ti->y, TILE_SIZE, TILE_SIZE, TILE_HEIGHT - 1, ti->z);
 
			OffsetGroundSprite(0, 0);
 
		} else {
 
			/* inclined foundation */
 
			byte inclined = GetHighestSlopeCorner(ti->tileh) * 2 + (f == FOUNDATION_INCLINED_Y ? 1 : 0);
 

	
 
			AddSortableSpriteToDraw(inclined_base + inclined, PAL_NONE, ti->x, ti->y,
 
				f == FOUNDATION_INCLINED_X ? 16 : 1,
 
				f == FOUNDATION_INCLINED_Y ? 16 : 1,
 
				f == FOUNDATION_INCLINED_X ? TILE_SIZE : 1,
 
				f == FOUNDATION_INCLINED_Y ? TILE_SIZE : 1,
 
				TILE_HEIGHT, ti->z
 
			);
 
			OffsetGroundSprite(0, 0);
0 comments (0 inline, 0 general)