diff options
-rw-r--r-- | src/depot.h | 11 | ||||
-rw-r--r-- | src/rail_map.h | 4 | ||||
-rw-r--r-- | src/waypoint.h | 2 |
3 files changed, 12 insertions, 5 deletions
diff --git a/src/depot.h b/src/depot.h index 61272670b..1a60bf940 100644 --- a/src/depot.h +++ b/src/depot.h @@ -9,6 +9,9 @@ #include "oldpool.h" #include "tile.h" #include "variables.h" +#include "road_map.h" +#include "rail_map.h" +#include "water_map.h" struct Depot { TileIndex xy; @@ -68,16 +71,16 @@ static inline bool IsTileDepotType(TileIndex tile, TransportType type) { switch (type) { case TRANSPORT_RAIL: - return IsTileType(tile, MP_RAILWAY) && (_m[tile].m5 & 0xFC) == 0xC0; + return IsTileType(tile, MP_RAILWAY) && GetRailTileType(tile) == RAIL_TILE_DEPOT; case TRANSPORT_ROAD: - return IsTileType(tile, MP_STREET) && (_m[tile].m5 & 0xF0) == 0x20; + return IsTileType(tile, MP_STREET) && GetRoadTileType(tile) == ROAD_TILE_DEPOT; case TRANSPORT_WATER: - return IsTileType(tile, MP_WATER) && (_m[tile].m5 & ~3) == 0x80; + return IsTileType(tile, MP_WATER) && GetWaterTileType(tile) == WATER_TILE_DEPOT; default: - assert(0); + NOT_REACHED(); return false; } } diff --git a/src/rail_map.h b/src/rail_map.h index 20df4e7be..540643253 100644 --- a/src/rail_map.h +++ b/src/rail_map.h @@ -113,6 +113,10 @@ static inline TrackBits GetRailWaypointBits(TileIndex t) return TrackToTrackBits(GetRailWaypointTrack(t)); } +static inline WaypointID GetWaypointIndex(TileIndex t) +{ + return (WaypointID)_m[t].m2; +} typedef enum SignalType { SIGTYPE_NORMAL = 0, // normal signal diff --git a/src/waypoint.h b/src/waypoint.h index 75366fb18..7292a15f3 100644 --- a/src/waypoint.h +++ b/src/waypoint.h @@ -59,7 +59,7 @@ static inline void DeleteWaypoint(Waypoint *wp) static inline Waypoint *GetWaypointByTile(TileIndex tile) { assert(IsTileType(tile, MP_RAILWAY) && IsRailWaypoint(tile)); - return GetWaypoint(_m[tile].m2); + return GetWaypoint(GetWaypointIndex(tile)); } int32 RemoveTrainWaypoint(TileIndex tile, uint32 flags, bool justremove); |