Increase verbosity of tile_map.h assertions.

This commit is contained in:
Jonathan G Rennison
2016-03-09 20:28:48 +00:00
parent cbc35e8aae
commit 4e020d4aa2

View File

@@ -30,7 +30,7 @@
*/ */
static inline uint TileHeight(TileIndex tile) static inline uint TileHeight(TileIndex tile)
{ {
assert(tile < MapSize()); assert_msg(tile < MapSize(), "tile: 0x%X, size: 0x%X", tile, MapSize());
return _m[tile].height; return _m[tile].height;
} }
@@ -48,7 +48,7 @@ uint TileHeightOutsideMap(int x, int y);
*/ */
static inline void SetTileHeight(TileIndex tile, uint height) static inline void SetTileHeight(TileIndex tile, uint height)
{ {
assert(tile < MapSize()); assert_msg(tile < MapSize(), "tile: 0x%X, size: 0x%X", tile, MapSize());
assert(height <= MAX_TILE_HEIGHT); assert(height <= MAX_TILE_HEIGHT);
_m[tile].height = height; _m[tile].height = height;
} }
@@ -88,7 +88,7 @@ static inline uint TilePixelHeightOutsideMap(int x, int y)
*/ */
static inline TileType GetTileType(TileIndex tile) static inline TileType GetTileType(TileIndex tile)
{ {
assert(tile < MapSize()); assert_msg(tile < MapSize(), "tile: 0x%X, size: 0x%X", tile, MapSize());
return (TileType)GB(_m[tile].type, 4, 4); return (TileType)GB(_m[tile].type, 4, 4);
} }
@@ -101,7 +101,7 @@ static inline TileType GetTileType(TileIndex tile)
*/ */
static inline bool IsInnerTile(TileIndex tile) static inline bool IsInnerTile(TileIndex tile)
{ {
assert(tile < MapSize()); assert_msg(tile < MapSize(), "tile: 0x%X, size: 0x%X", tile, MapSize());
uint x = TileX(tile); uint x = TileX(tile);
uint y = TileY(tile); uint y = TileY(tile);
@@ -123,11 +123,11 @@ static inline bool IsInnerTile(TileIndex tile)
*/ */
static inline void SetTileType(TileIndex tile, TileType type) static inline void SetTileType(TileIndex tile, TileType type)
{ {
assert(tile < MapSize()); assert_msg(tile < MapSize(), "tile: 0x%X, size: 0x%X, type: %d", tile, MapSize(), type);
/* VOID tiles (and no others) are exactly allowed at the lower left and right /* 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, * edges of the map. If _settings_game.construction.freeform_edges is true,
* the upper edges of the map are also VOID tiles. */ * the upper edges of the map are also VOID tiles. */
assert(IsInnerTile(tile) == (type != MP_VOID)); assert_msg(IsInnerTile(tile) == (type != MP_VOID), "tile: 0x%X (%d), type: %d", tile, IsInnerTile(tile), type);
SB(_m[tile].type, 4, 4, type); SB(_m[tile].type, 4, 4, type);
} }
@@ -170,9 +170,8 @@ static inline bool IsValidTile(TileIndex tile)
*/ */
static inline Owner GetTileOwner(TileIndex tile) static inline Owner GetTileOwner(TileIndex tile)
{ {
assert(IsValidTile(tile)); assert_msg(IsValidTile(tile), "tile: 0x%X, size: 0x%X", tile, MapSize());
assert(!IsTileType(tile, MP_HOUSE)); assert_msg(!IsTileType(tile, MP_HOUSE) && !IsTileType(tile, MP_INDUSTRY), "tile: 0x%X (%d)", tile, GetTileType(tile));
assert(!IsTileType(tile, MP_INDUSTRY));
return (Owner)GB(_m[tile].m1, 0, 5); return (Owner)GB(_m[tile].m1, 0, 5);
} }
@@ -190,9 +189,8 @@ static inline Owner GetTileOwner(TileIndex tile)
*/ */
static inline void SetTileOwner(TileIndex tile, Owner owner) static inline void SetTileOwner(TileIndex tile, Owner owner)
{ {
assert(IsValidTile(tile)); assert_msg(IsValidTile(tile), "tile: 0x%X, size: 0x%X, owner: %d", tile, MapSize(), owner);
assert(!IsTileType(tile, MP_HOUSE)); assert_msg(!IsTileType(tile, MP_HOUSE) && !IsTileType(tile, MP_INDUSTRY), "tile: 0x%X (%d), owner: %d", tile, GetTileType(tile), owner);
assert(!IsTileType(tile, MP_INDUSTRY));
SB(_m[tile].m1, 0, 5, owner); SB(_m[tile].m1, 0, 5, owner);
} }
@@ -217,8 +215,8 @@ static inline bool IsTileOwner(TileIndex tile, Owner owner)
*/ */
static inline void SetTropicZone(TileIndex tile, TropicZone type) static inline void SetTropicZone(TileIndex tile, TropicZone type)
{ {
assert(tile < MapSize()); assert_msg(tile < MapSize(), "tile: 0x%X, size: 0x%X, type: %d", tile, MapSize(), type);
assert(!IsTileType(tile, MP_VOID) || type == TROPICZONE_NORMAL); assert_msg(!IsTileType(tile, MP_VOID) || type == TROPICZONE_NORMAL, "tile: 0x%X (%d), type: %d", tile, GetTileType(tile), type);
SB(_m[tile].type, 0, 2, type); SB(_m[tile].type, 0, 2, type);
} }
@@ -230,7 +228,7 @@ static inline void SetTropicZone(TileIndex tile, TropicZone type)
*/ */
static inline TropicZone GetTropicZone(TileIndex tile) static inline TropicZone GetTropicZone(TileIndex tile)
{ {
assert(tile < MapSize()); assert_msg(tile < MapSize(), "tile: 0x%X, size: 0x%X", tile, MapSize());
return (TropicZone)GB(_m[tile].type, 0, 2); return (TropicZone)GB(_m[tile].type, 0, 2);
} }
@@ -242,7 +240,7 @@ static inline TropicZone GetTropicZone(TileIndex tile)
*/ */
static inline byte GetAnimationFrame(TileIndex t) static inline byte GetAnimationFrame(TileIndex t)
{ {
assert(IsTileType(t, MP_HOUSE) || IsTileType(t, MP_OBJECT) || IsTileType(t, MP_INDUSTRY) ||IsTileType(t, MP_STATION)); assert_msg(IsTileType(t, MP_HOUSE) || IsTileType(t, MP_OBJECT) || IsTileType(t, MP_INDUSTRY) || IsTileType(t, MP_STATION), "tile: 0x%X (%d)", t, GetTileType(t));
return _me[t].m7; return _me[t].m7;
} }
@@ -254,7 +252,7 @@ static inline byte GetAnimationFrame(TileIndex t)
*/ */
static inline void SetAnimationFrame(TileIndex t, byte frame) static inline void SetAnimationFrame(TileIndex t, byte frame)
{ {
assert(IsTileType(t, MP_HOUSE) || IsTileType(t, MP_OBJECT) || IsTileType(t, MP_INDUSTRY) ||IsTileType(t, MP_STATION)); assert_msg(IsTileType(t, MP_HOUSE) || IsTileType(t, MP_OBJECT) || IsTileType(t, MP_INDUSTRY) || IsTileType(t, MP_STATION), "tile: 0x%X (%d)", t, GetTileType(t));
_me[t].m7 = frame; _me[t].m7 = frame;
} }