summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rail_cmd.c7
-rw-r--r--station.h1
-rw-r--r--station_cmd.c4
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) {
diff --git a/station.h b/station.h
index 46f3e3bf0..09a6a80c5 100644
--- a/station.h
+++ b/station.h
@@ -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;