# HG changeset patch # User glx # Date 2020-05-06 20:44:47 # Node ID 5bb689dc5baba5624a8cb3575c1a442e77d9a986 # Parent 493f00d11e30be9ef9e5e13022741da93873d2e7 Fix #8021: limit savegame range for docking tiles fixing diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp --- 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 --- 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 --- 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),