diff options
author | tron <tron@openttd.org> | 2006-03-30 09:29:01 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-03-30 09:29:01 +0000 |
commit | 7ad0d787e25306e700045cb678c66eeba9ea4434 (patch) | |
tree | 21b00e82b5c9850aa9567dba92d59ebb57aa50ba /clear_map.h | |
parent | 84de6477b2665dd0b16f93b677501dde02fc40d5 (diff) | |
download | openttd-7ad0d787e25306e700045cb678c66eeba9ea4434.tar.xz |
(svn r4166) Sprinkle several map accessors with assert()s
Diffstat (limited to 'clear_map.h')
-rw-r--r-- | clear_map.h | 91 |
1 files changed, 78 insertions, 13 deletions
diff --git a/clear_map.h b/clear_map.h index b383e3639..655b0ef06 100644 --- a/clear_map.h +++ b/clear_map.h @@ -18,31 +18,96 @@ typedef enum ClearGround { CL_DESERT = 5 // 1,3 } ClearGround; -static inline ClearGround GetClearGround(TileIndex t) { return GB(_m[t].m5, 2, 3); } -static inline bool IsClearGround(TileIndex t, ClearGround ct) { return GetClearGround(t) == ct; } -static inline void AddClearDensity(TileIndex t, int d) { _m[t].m5 += d; } -static inline uint GetClearDensity(TileIndex t) { return GB(_m[t].m5, 0, 2); } +static inline ClearGround GetClearGround(TileIndex t) +{ + assert(IsTileType(t, MP_CLEAR)); + return GB(_m[t].m5, 2, 3); +} + +static inline bool IsClearGround(TileIndex t, ClearGround ct) +{ + return GetClearGround(t) == ct; +} + + +static inline uint GetClearDensity(TileIndex t) +{ + assert(IsTileType(t, MP_CLEAR)); + return GB(_m[t].m5, 0, 2); +} + +static inline void AddClearDensity(TileIndex t, int d) +{ + assert(IsTileType(t, MP_CLEAR)); // XXX incomplete + _m[t].m5 += d; +} + + +static inline uint GetClearCounter(TileIndex t) +{ + assert(IsTileType(t, MP_CLEAR)); + return GB(_m[t].m5, 5, 3); +} + +static inline void AddClearCounter(TileIndex t, int c) +{ + assert(IsTileType(t, MP_CLEAR)); // XXX incomplete + _m[t].m5 += c << 5; +} + +static inline void SetClearCounter(TileIndex t, uint c) +{ + assert(IsTileType(t, MP_CLEAR)); // XXX incomplete + SB(_m[t].m5, 5, 3, c); +} -static inline void AddClearCounter(TileIndex t, int c) { _m[t].m5 += c << 5; } -static inline uint GetClearCounter(TileIndex t) { return GB(_m[t].m5, 5, 3); } -static inline void SetClearCounter(TileIndex t, uint c) { SB(_m[t].m5, 5, 3, c); } /* Sets type and density in one go, also sets the counter to 0 */ static inline void SetClearGroundDensity(TileIndex t, ClearGround type, uint density) { + assert(IsTileType(t, MP_CLEAR)); // XXX incomplete _m[t].m5 = 0 << 5 | type << 2 | density; } -static inline uint GetFieldType(TileIndex t) { return GB(_m[t].m3, 0, 4); } -static inline void SetFieldType(TileIndex t, uint f) { SB(_m[t].m3, 0, 4, f); } + +static inline uint GetFieldType(TileIndex t) +{ + assert(GetClearGround(t) == CL_FIELDS); + return GB(_m[t].m3, 0, 4); +} + +static inline void SetFieldType(TileIndex t, uint f) +{ + assert(GetClearGround(t) == CL_FIELDS); // XXX incomplete + SB(_m[t].m3, 0, 4, f); +} + /* Is used by tree tiles, too */ -static inline uint GetFenceSE(TileIndex t) { return GB(_m[t].m4, 2, 3); } -static inline void SetFenceSE(TileIndex t, uint h) { SB(_m[t].m4, 2, 3, h); } +static inline uint GetFenceSE(TileIndex t) +{ + assert(IsTileType(t, MP_CLEAR) || IsTileType(t, MP_TREES)); + return GB(_m[t].m4, 2, 3); +} -static inline uint GetFenceSW(TileIndex t) { return GB(_m[t].m4, 5, 3); } -static inline void SetFenceSW(TileIndex t, uint h) { SB(_m[t].m4, 5, 3, h); } +static inline void SetFenceSE(TileIndex t, uint h) +{ + assert(IsTileType(t, MP_CLEAR) || IsTileType(t, MP_TREES)); // XXX incomplete + SB(_m[t].m4, 2, 3, h); +} + +static inline uint GetFenceSW(TileIndex t) +{ + assert(IsTileType(t, MP_CLEAR) || IsTileType(t, MP_TREES)); + return GB(_m[t].m4, 5, 3); +} + +static inline void SetFenceSW(TileIndex t, uint h) +{ + assert(IsTileType(t, MP_CLEAR) || IsTileType(t, MP_TREES)); // XXX incomplete + SB(_m[t].m4, 5, 3, h); +} static inline void MakeClear(TileIndex t, ClearGround g, uint density) |