diff options
-rw-r--r-- | rail_cmd.c | 7 | ||||
-rw-r--r-- | station.h | 1 | ||||
-rw-r--r-- | station_cmd.c | 4 |
3 files changed, 11 insertions, 1 deletions
diff --git a/rail_cmd.c b/rail_cmd.c index 107b5bc17..f88267841 100644 --- a/rail_cmd.c +++ b/rail_cmd.c @@ -1336,7 +1336,12 @@ static void DrawTile_Track(TileInfo *ti) if (callback != CALLBACK_FAILED) tile = callback; } - cust = &statspec->renderdata[(tile < statspec->tiles ? tile : 0) + GetWaypointAxis(ti->tile)]; + if (statspec->renderdata == NULL) { + cust = GetStationTileLayout(tile); + relocation -= 0x42D; + } else { + cust = &statspec->renderdata[(tile < statspec->tiles ? tile : 0) + GetWaypointAxis(ti->tile)]; + } /* If there is no sprite layout, we fall back to the default waypoint graphics. */ if (cust != NULL && cust->seq != NULL) { @@ -199,6 +199,7 @@ void GetAcceptanceAroundTiles(AcceptedCargo accepts, TileIndex tile, int w, int uint GetStationPlatforms(const Station *st, TileIndex tile); +const DrawTileSprites *GetStationTileLayout(byte gfx); void StationPickerDrawSprite(int x, int y, RailType railtype, int image); RoadStop * GetRoadStopByTile(TileIndex tile, RoadStopType type); diff --git a/station_cmd.c b/station_cmd.c index e523e491b..0d4160242 100644 --- a/station_cmd.c +++ b/station_cmd.c @@ -1977,6 +1977,10 @@ static int32 RemoveDock(Station *st, uint32 flags) #include "table/station_land.h" +const DrawTileSprites *GetStationTileLayout(byte gfx) +{ + return &_station_display_datas[gfx]; +} extern uint16 _custom_sprites_base; |