summaryrefslogtreecommitdiff
path: root/road_map.h
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-03-30 09:29:01 +0000
committertron <tron@openttd.org>2006-03-30 09:29:01 +0000
commitbbf4f982a09d7fdcfab9633260dcce4ec8bfae4c (patch)
tree21b00e82b5c9850aa9567dba92d59ebb57aa50ba /road_map.h
parent5476fd4b961ab4fce8a3417c0f2c517aa28e6219 (diff)
downloadopenttd-bbf4f982a09d7fdcfab9633260dcce4ec8bfae4c.tar.xz
(svn r4166) Sprinkle several map accessors with assert()s
Diffstat (limited to 'road_map.h')
-rw-r--r--road_map.h49
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);
}