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 /road_map.h | |
parent | 84de6477b2665dd0b16f93b677501dde02fc40d5 (diff) | |
download | openttd-7ad0d787e25306e700045cb678c66eeba9ea4434.tar.xz |
(svn r4166) Sprinkle several map accessors with assert()s
Diffstat (limited to 'road_map.h')
-rw-r--r-- | road_map.h | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/road_map.h b/road_map.h index 412616a65..e06afcd5c 100644 --- a/road_map.h +++ b/road_map.h @@ -28,20 +28,36 @@ static inline RoadBits DiagDirToRoadBits(DiagDirection d) } -static inline RoadBits GetRoadBits(TileIndex tile) +typedef enum RoadType { + ROAD_NORMAL, + ROAD_CROSSING, + ROAD_DEPOT +} RoadType; + +static inline RoadType GetRoadType(TileIndex t) +{ + assert(IsTileType(t, MP_STREET)); + return GB(_m[t].m5, 4, 4); +} + + +static inline RoadBits GetRoadBits(TileIndex t) { - return GB(_m[tile].m5, 0, 4); + assert(GetRoadType(t) == ROAD_NORMAL); + return GB(_m[t].m5, 0, 4); } -static inline void SetRoadBits(TileIndex tile, RoadBits r) +static inline void SetRoadBits(TileIndex t, RoadBits r) { - SB(_m[tile].m5, 0, 4, r); + assert(GetRoadType(t) == ROAD_NORMAL); // XXX incomplete + SB(_m[t].m5, 0, 4, r); } -static inline Axis GetCrossingRoadAxis(TileIndex tile) +static inline Axis GetCrossingRoadAxis(TileIndex t) { - return (Axis)GB(_m[tile].m5, 3, 1); + assert(GetRoadType(t) == ROAD_CROSSING); + return (Axis)GB(_m[t].m5, 3, 1); } static inline RoadBits GetCrossingRoadBits(TileIndex tile) @@ -58,44 +74,39 @@ static inline TrackBits GetCrossingRailBits(TileIndex tile) // TODO swap owner of road and rail static inline Owner GetCrossingRoadOwner(TileIndex t) { + assert(GetRoadType(t) == ROAD_CROSSING); return (Owner)_m[t].m3; } static inline void SetCrossingRoadOwner(TileIndex t, Owner o) { + assert(GetRoadType(t) == ROAD_CROSSING); _m[t].m3 = o; } static inline void UnbarCrossing(TileIndex t) { + assert(GetRoadType(t) == ROAD_CROSSING); CLRBIT(_m[t].m5, 2); } static inline void BarCrossing(TileIndex t) { + assert(GetRoadType(t) == ROAD_CROSSING); SETBIT(_m[t].m5, 2); } static inline bool IsCrossingBarred(TileIndex t) { + assert(GetRoadType(t) == ROAD_CROSSING); return HASBIT(_m[t].m5, 2); } -typedef enum RoadType { - ROAD_NORMAL, - ROAD_CROSSING, - ROAD_DEPOT -} RoadType; - -static inline RoadType GetRoadType(TileIndex tile) -{ - return GB(_m[tile].m5, 4, 4); -} - -static inline DiagDirection GetRoadDepotDirection(TileIndex tile) +static inline DiagDirection GetRoadDepotDirection(TileIndex t) { - return (DiagDirection)GB(_m[tile].m5, 0, 2); + assert(GetRoadType(t) == ROAD_DEPOT); + return (DiagDirection)GB(_m[t].m5, 0, 2); } |