Changeset - r20804:394e50231d55
[Not reviewed]
master
0 4 0
zuu - 11 years ago 2013-10-12 22:03:13
zuu@openttd.org
(svn r25848) -Codechange: Refactor check for if a tile is not an edge tile to new IsInnerTile method (cirdan, LordAro)
4 files changed with 21 insertions and 10 deletions:
0 comments (0 inline, 0 general)
src/heightmap.cpp
Show inline comments
 
@@ -364,8 +364,7 @@ static void GrayscaleToMapHeights(uint i
 
				SetTileHeight(tile, map[img_row * img_width + img_col] / 16);
 
			}
 
			/* Only clear the tiles within the map area. */
 
			if (TileX(tile) != MapMaxX() && TileY(tile) != MapMaxY() &&
 
					(!_settings_game.construction.freeform_edges || (TileX(tile) != 0 && TileY(tile) != 0))) {
 
			if (IsInnerTile(tile)) {
 
				MakeClear(tile, CLEAR_GRASS, 3);
 
			}
 
		}
src/tgp.cpp
Show inline comments
 
@@ -950,8 +950,7 @@ static void TgenSetTileHeight(TileIndex 
 
	SetTileHeight(tile, height);
 

	
 
	/* Only clear the tiles within the map area. */
 
	if (TileX(tile) != MapMaxX() && TileY(tile) != MapMaxY() &&
 
			(!_settings_game.construction.freeform_edges || (TileX(tile) != 0 && TileY(tile) != 0))) {
 
	if (IsInnerTile(tile)) {
 
		MakeClear(tile, CLEAR_GRASS, 3);
 
	}
 
}
src/tile_map.cpp
Show inline comments
 
@@ -22,11 +22,7 @@ Slope GetTileSlope(TileIndex tile, int *
 
{
 
	assert(tile < MapSize());
 

	
 
	uint x = TileX(tile);
 
	uint y = TileY(tile);
 

	
 
	if (x == MapMaxX() || y == MapMaxY() ||
 
			((x == 0 || y == 0) && _settings_game.construction.freeform_edges)) {
 
	if (!IsInnerTile(tile)) {
 
		if (h != NULL) *h = TileHeight(tile);
 
		return SLOPE_FLAT;
 
	}
src/tile_map.h
Show inline comments
 
@@ -78,6 +78,23 @@ static inline TileType GetTileType(TileI
 
}
 

	
 
/**
 
 * Check if a tile is within the map (not a border)
 
 *
 
 * @param tile The tile to check
 
 * @return Whether the tile is in the interior of the map
 
 * @pre tile < MapSize()
 
 */
 
static inline bool IsInnerTile(TileIndex tile)
 
{
 
	assert(tile < MapSize());
 

	
 
	uint x = TileX(tile);
 
	uint y = TileY(tile);
 

	
 
	return x < MapMaxX() && y < MapMaxY() && ((x > 0 && y > 0) || !_settings_game.construction.freeform_edges);
 
}
 

	
 
/**
 
 * Set the type of a tile
 
 *
 
 * This functions sets the type of a tile. If the type
 
@@ -95,7 +112,7 @@ static inline void SetTileType(TileIndex
 
	/* VOID tiles (and no others) are exactly allowed at the lower left and right
 
	 * edges of the map. If _settings_game.construction.freeform_edges is true,
 
	 * the upper edges of the map are also VOID tiles. */
 
	assert((TileX(tile) == MapMaxX() || TileY(tile) == MapMaxY() || (_settings_game.construction.freeform_edges && (TileX(tile) == 0 || TileY(tile) == 0))) == (type == MP_VOID));
 
	assert(IsInnerTile(tile) == (type != MP_VOID));
 
	SB(_m[tile].type_height, 4, 4, type);
 
}
 

	
0 comments (0 inline, 0 general)