summaryrefslogtreecommitdiff
path: root/rail_map.h
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-05-07 07:01:48 +0000
committertron <tron@openttd.org>2006-05-07 07:01:48 +0000
commit4f092c8de8e30ce4d29165a7d46dd2203c887722 (patch)
tree5aff3f089bba3937bf63a4dd89a43b2e5a5b161d /rail_map.h
parentec1edb127a3480e4ae6f6227487fbf50e0206805 (diff)
downloadopenttd-4f092c8de8e30ce4d29165a7d46dd2203c887722.tar.xz
(svn r4764) Move some functions from rail.h to rail_map.h
Diffstat (limited to 'rail_map.h')
-rw-r--r--rail_map.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/rail_map.h b/rail_map.h
index 54f766206..6ae9a9b73 100644
--- a/rail_map.h
+++ b/rail_map.h
@@ -21,6 +21,24 @@ static inline RailTileType GetRailTileType(TileIndex t)
return _m[t].m5 & RAIL_TILE_TYPE_MASK;
}
+/**
+ * Returns whether this is plain rails, with or without signals. Iow, if this
+ * tiles RailTileType is RAIL_TYPE_NORMAL or RAIL_TYPE_SIGNALS.
+ */
+static inline bool IsPlainRailTile(TileIndex tile)
+{
+ RailTileType rtt = GetRailTileType(tile);
+ return rtt == RAIL_TYPE_NORMAL || rtt == RAIL_TYPE_SIGNALS;
+}
+
+/**
+ * Checks if a rail tile has signals.
+ */
+static inline bool HasSignals(TileIndex tile)
+{
+ return GetRailTileType(tile) == RAIL_TYPE_SIGNALS;
+}
+
/** These specify the subtype when the main rail type is
* RAIL_TYPE_DEPOT_WAYPOINT */
@@ -30,6 +48,16 @@ typedef enum RailTileSubtypes {
RAIL_SUBTYPE_MASK = 0x3C
} RailTileSubtype;
+/**
+ * Returns the RailTileSubtype of a given rail tile with type
+ * RAIL_TYPE_DEPOT_WAYPOINT
+ */
+static inline RailTileSubtype GetRailTileSubtype(TileIndex tile)
+{
+ assert(GetRailTileType(tile) == RAIL_TYPE_DEPOT_WAYPOINT);
+ return (RailTileSubtype)(_m[tile].m5 & RAIL_SUBTYPE_MASK);
+}
+
typedef enum RailTypes {
RAILTYPE_RAIL = 0,
@@ -118,6 +146,15 @@ static inline void SetTrackBits(TileIndex t, TrackBits b)
SB(_m[t].m5, 0, 6, b);
}
+/**
+ * Returns whether the given track is present on the given tile. Tile must be
+ * a plain rail tile (IsPlainRailTile()).
+ */
+static inline bool HasTrack(TileIndex tile, Track track)
+{
+ return HASBIT(GetTrackBits(tile), track);
+}
+
static inline DiagDirection GetRailDepotDirection(TileIndex t)
{