Update station/industry nearby lists in BuildOilRig

See: https://github.com/OpenTTD/OpenTTD/issues/12506
pull/688/head
Jonathan G Rennison 2 weeks ago
parent 41543498f4
commit d52d447603

@ -5081,6 +5081,19 @@ void BuildOilRig(TileIndex tile)
st->rect.BeforeAddTile(tile, StationRect::ADD_FORCE);
st->UpdateVirtCoord();
/* An industry tile has now been replaced with a station tile, this may change the overlap between station catchments and industry tiles.
* Recalculate the station catchment for all stations currently in the industry's nearby list.
* Clear the industry's station nearby list first because Station::RecomputeCatchment cannot remove nearby industries in this case. */
if (_settings_game.station.serve_neutral_industries) {
StationList nearby = std::move(st->industry->stations_near);
st->industry->stations_near.clear();
for (Station *near : nearby) {
near->RecomputeCatchment(true);
UpdateStationAcceptance(near, true);
}
}
st->RecomputeCatchment();
UpdateStationAcceptance(st, false);
ZoningMarkDirtyStationCoverageArea(st);

Loading…
Cancel
Save