diff options
author | tron <tron@openttd.org> | 2006-05-07 07:01:48 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-05-07 07:01:48 +0000 |
commit | 4f092c8de8e30ce4d29165a7d46dd2203c887722 (patch) | |
tree | 5aff3f089bba3937bf63a4dd89a43b2e5a5b161d /rail_map.h | |
parent | ec1edb127a3480e4ae6f6227487fbf50e0206805 (diff) | |
download | openttd-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.h | 37 |
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) { |