diff src/road_map.h @ 8563:992fa65afba1 draft

(svn r12141) -Codechange: Introduce IsNormalRoad[Tile](), IsRoadDepot[Tile]() and HasTileRoadType(); and use them.
author frosch <frosch@openttd.org>
date Thu, 14 Feb 2008 15:59:16 +0000 (2008-02-14)
parents 6a75c42267d1
children ef2c93a9589d
line wrap: on
line diff
--- a/src/road_map.h
+++ b/src/road_map.h
@@ -24,6 +24,16 @@
 	return (RoadTileType)GB(_m[t].m5, 6, 2);
 }
 
+static inline bool IsNormalRoad(TileIndex t)
+{
+	return GetRoadTileType(t) == ROAD_TILE_NORMAL;
+}
+
+static inline bool IsNormalRoadTile(TileIndex t)
+{
+	return IsTileType(t, MP_ROAD) && IsNormalRoad(t);
+}
+
 static inline bool IsLevelCrossing(TileIndex t)
 {
 	return GetRoadTileType(t) == ROAD_TILE_CROSSING;
@@ -34,9 +44,19 @@
 	return IsTileType(t, MP_ROAD) && IsLevelCrossing(t);
 }
 
+static inline bool IsRoadDepot(TileIndex t)
+{
+	return GetRoadTileType(t) == ROAD_TILE_DEPOT;
+}
+
+static inline bool IsRoadDepotTile(TileIndex t)
+{
+	return IsTileType(t, MP_ROAD) && IsRoadDepot(t);
+}
+
 static inline RoadBits GetRoadBits(TileIndex t, RoadType rt)
 {
-	assert(GetRoadTileType(t) == ROAD_TILE_NORMAL);
+	assert(IsNormalRoad(t));
 	switch (rt) {
 		default: NOT_REACHED();
 		case ROADTYPE_ROAD: return (RoadBits)GB(_m[t].m4, 0, 4);
@@ -52,7 +72,7 @@
 
 static inline void SetRoadBits(TileIndex t, RoadBits r, RoadType rt)
 {
-	assert(GetRoadTileType(t) == ROAD_TILE_NORMAL); // XXX incomplete
+	assert(IsNormalRoad(t)); // XXX incomplete
 	switch (rt) {
 		default: NOT_REACHED();
 		case ROADTYPE_ROAD: SB(_m[t].m4, 0, 4, r); break;
@@ -80,6 +100,11 @@
 	}
 }
 
+static inline bool HasTileRoadType(TileIndex t, RoadType rt)
+{
+	return HasBit(GetRoadTypes(t), rt);
+}
+
 static inline Owner GetRoadOwner(TileIndex t, RoadType rt)
 {
 	if (!IsTileType(t, MP_ROAD)) return GetTileOwner(t);
@@ -159,7 +184,7 @@
  */
 static inline DisallowedRoadDirections GetDisallowedRoadDirections(TileIndex t)
 {
-	assert(GetRoadTileType(t) == ROAD_TILE_NORMAL);
+	assert(IsNormalRoad(t));
 	return (DisallowedRoadDirections)GB(_m[t].m5, 4, 2);
 }
 
@@ -170,14 +195,14 @@
  */
 static inline void SetDisallowedRoadDirections(TileIndex t, DisallowedRoadDirections drd)
 {
-	assert(GetRoadTileType(t) == ROAD_TILE_NORMAL);
+	assert(IsNormalRoad(t));
 	assert(drd < DRD_END);
 	SB(_m[t].m5, 4, 2, drd);
 }
 
 static inline Axis GetCrossingRoadAxis(TileIndex t)
 {
-	assert(GetRoadTileType(t) == ROAD_TILE_CROSSING);
+	assert(IsLevelCrossing(t));
 	return (Axis)GB(_m[t].m4, 6, 1);
 }
 
@@ -193,13 +218,13 @@
 
 static inline bool IsCrossingBarred(TileIndex t)
 {
-	assert(GetRoadTileType(t) == ROAD_TILE_CROSSING);
+	assert(IsLevelCrossing(t));
 	return HasBit(_m[t].m4, 5);
 }
 
 static inline void SetCrossingBarred(TileIndex t, bool barred)
 {
-	assert(GetRoadTileType(t) == ROAD_TILE_CROSSING);
+	assert(IsLevelCrossing(t));
 	SB(_m[t].m4, 5, 1, barred);
 }
 
@@ -280,7 +305,7 @@
 
 static inline DiagDirection GetRoadDepotDirection(TileIndex t)
 {
-	assert(GetRoadTileType(t) == ROAD_TILE_DEPOT);
+	assert(IsRoadDepot(t));
 	return (DiagDirection)GB(_m[t].m5, 0, 2);
 }