diff --git a/economy.c b/economy.c --- a/economy.c +++ b/economy.c @@ -1500,6 +1500,7 @@ int LoadUnloadVehicle(Vehicle *v, bool j if (result != 0) { InvalidateWindow(WC_VEHICLE_DETAILS, v->index); + MarkStationTilesDirty(st); if (result & 2) InvalidateWindow(WC_STATION_VIEW, last_visited); diff --git a/station.h b/station.h --- a/station.h +++ b/station.h @@ -210,6 +210,7 @@ void GetProductionAroundTiles(AcceptedCa void GetAcceptanceAroundTiles(AcceptedCargo accepts, TileIndex tile, int w, int h, int rad); uint GetStationPlatforms(const Station *st, TileIndex tile); uint GetPlatformLength(TileIndex tile, DiagDirection dir); +void MarkStationTilesDirty(const Station *st); const DrawTileSprites *GetStationTileLayout(byte gfx); diff --git a/station_cmd.c b/station_cmd.c --- a/station_cmd.c +++ b/station_cmd.c @@ -79,7 +79,7 @@ static bool TileBelongsToRailStation(con return IsTileType(tile, MP_STATION) && GetStationIndex(tile) == st->index && IsRailwayStation(tile); } -static void MarkStationTilesDirty(const Station *st) +void MarkStationTilesDirty(const Station *st) { TileIndex tile = st->train_tile; int w, h; @@ -2591,6 +2591,7 @@ static void UpdateStationWaiting(Station st->goods[type].enroute_time = 0; st->goods[type].enroute_from = st->index; InvalidateWindow(WC_STATION_VIEW, st->index); + MarkStationTilesDirty(st); } /** Rename a station