diff options
Diffstat (limited to 'station_map.h')
-rw-r--r-- | station_map.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/station_map.h b/station_map.h index 9ebf7803f..9c608af9b 100644 --- a/station_map.h +++ b/station_map.h @@ -184,6 +184,25 @@ static inline DiagDirection GetDockDirection(TileIndex t) return (DiagDirection)(_m[t].m5 - DOCK_BASE); } +static inline TileIndexDiffC GetDockOffset(TileIndex t) +{ + static const TileIndexDiffC buoy_offset = {0, 0}; + static const TileIndexDiffC oilrig_offset = {2, 0}; + static const TileIndexDiffC dock_offset[DIAGDIR_END] = { + {-2, 0}, + { 0, 2}, + { 2, 0}, + { 0, -2}, + }; + assert(IsTileType(t, MP_STATION)); + + if (IsBuoy_(t)) return buoy_offset; + if (IsOilRig(t)) return oilrig_offset; + + assert(IsDock(t)); + + return dock_offset[GetDockDirection(t)]; +} static inline bool IsCustomStationSprite(TileIndex t) { |