From bc8333723ccf0ea5e889a6bc412c89ea623138bc Mon Sep 17 00:00:00 2001 From: glx Date: Wed, 6 May 2020 22:44:47 +0200 Subject: Fix #8021: limit savegame range for docking tiles fixing --- src/saveload/afterload.cpp | 11 ++++++++--- src/saveload/saveload_internal.h | 1 - src/saveload/station_sl.cpp | 11 ----------- 3 files changed, 8 insertions(+), 15 deletions(-) (limited to 'src/saveload') diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 0f1d4c450..b81d446e4 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -3120,6 +3120,14 @@ bool AfterLoadGame() } if (IsSavegameVersionUntil(SLV_ENDING_YEAR)) { + /* Update station docking tiles. Was only needed for pre-SLV_MULTITLE_DOCKS + * savegames, but a bug in docking tiles touched all savegames between + * SLV_MULTITILE_DOCKS and SLV_ENDING_YEAR. */ + for (Station *st : Station::Iterate()) { + if (st->ship_station.tile != INVALID_TILE) UpdateStationDockingTiles(st); + } + + /* Reset roadtype/streetcartype info for non-road bridges. */ for (TileIndex t = 0; t < map_size; t++) { if (IsTileType(t, MP_TUNNELBRIDGE) && GetTunnelBridgeTransportType(t) != TRANSPORT_ROAD) { SetRoadTypes(t, INVALID_ROADTYPE, INVALID_ROADTYPE); @@ -3127,9 +3135,6 @@ bool AfterLoadGame() } } - /* Update station docking tiles. */ - AfterLoadScanDockingTiles(); - /* Compute station catchment areas. This is needed here in case UpdateStationAcceptance is called below. */ Station::RecomputeCatchmentForAll(); diff --git a/src/saveload/saveload_internal.h b/src/saveload/saveload_internal.h index 69dfb5dbf..8a3f433c2 100644 --- a/src/saveload/saveload_internal.h +++ b/src/saveload/saveload_internal.h @@ -29,7 +29,6 @@ void AfterLoadVehicles(bool part_of_load); void FixupTrainLengths(); void AfterLoadStations(); void AfterLoadRoadStops(); -void AfterLoadScanDockingTiles(); void ResetLabelMaps(); void AfterLoadLabelMaps(); void AfterLoadStoryBook(); diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp index b0e91b4e7..1d3612ae3 100644 --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -141,17 +141,6 @@ void AfterLoadRoadStops() } } -/** - * (Re)scan for station docking tiles after loading a savegame. - */ -void AfterLoadScanDockingTiles() -{ - /* Scan for docking tiles */ - for (Station *st : Station::Iterate()) { - if (st->ship_station.tile != INVALID_TILE) UpdateStationDockingTiles(st); - } -} - static const SaveLoad _roadstop_desc[] = { SLE_VAR(RoadStop, xy, SLE_UINT32), SLE_CONDNULL(1, SL_MIN_VERSION, SLV_45), -- cgit v1.2.3-70-g09d2