mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-08 23:19:40 +00:00
Fix #8020: Add missing docking tiles around industry neutral stations
This commit is contained in:
parent
4d4005d8b7
commit
57553cd809
@ -3116,13 +3116,11 @@ bool AfterLoadGame()
|
||||
if (IsDock(t) || IsOilRig(t)) Station::GetByTile(t)->ship_station.Add(t);
|
||||
}
|
||||
}
|
||||
|
||||
/* Scan for docking tiles */
|
||||
for (Station *st : Station::Iterate()) {
|
||||
if (st->ship_station.tile != INVALID_TILE) UpdateStationDockingTiles(st);
|
||||
}
|
||||
}
|
||||
|
||||
/* Update station docking tiles. */
|
||||
AfterLoadScanDockingTiles();
|
||||
|
||||
/* Compute station catchment areas. This is needed here in case UpdateStationAcceptance is called below. */
|
||||
Station::RecomputeCatchmentForAll();
|
||||
|
||||
|
@ -29,6 +29,7 @@ void AfterLoadVehicles(bool part_of_load);
|
||||
void FixupTrainLengths();
|
||||
void AfterLoadStations();
|
||||
void AfterLoadRoadStops();
|
||||
void AfterLoadScanDockingTiles();
|
||||
void ResetLabelMaps();
|
||||
void AfterLoadLabelMaps();
|
||||
void AfterLoadStoryBook();
|
||||
|
@ -141,6 +141,17 @@ 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),
|
||||
|
@ -613,6 +613,7 @@ bool IsShipDestinationTile(TileIndex tile, StationID station)
|
||||
const Industry *i = Industry::GetByTile(t);
|
||||
if (i->neutral_station != nullptr && i->neutral_station->index == station) return true;
|
||||
}
|
||||
if (IsTileType(t, MP_STATION) && IsOilRig(t) && GetStationIndex(t) == station) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -196,6 +196,10 @@ void CheckForDockingTile(TileIndex t)
|
||||
SetDockingTile(t, true);
|
||||
}
|
||||
}
|
||||
if (IsTileType(tile, MP_STATION) && IsOilRig(tile)) {
|
||||
Station::GetByTile(tile)->docking_station.Add(t);
|
||||
SetDockingTile(t, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user