Fix assertion failure when removing airport with order backup
See: #252, https://github.com/OpenTTD/OpenTTD/issues/9113
This commit is contained in:
@@ -2638,9 +2638,9 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags)
|
|||||||
|
|
||||||
if (flags & DC_EXEC) {
|
if (flags & DC_EXEC) {
|
||||||
for (uint i = 0; i < st->airport.GetNumHangars(); ++i) {
|
for (uint i = 0; i < st->airport.GetNumHangars(); ++i) {
|
||||||
DeleteWindowById(
|
TileIndex tile_cur = st->airport.GetHangarTile(i);
|
||||||
WC_VEHICLE_DEPOT, st->airport.GetHangarTile(i)
|
OrderBackup::Reset(tile_cur, false);
|
||||||
);
|
DeleteWindowById(WC_VEHICLE_DEPOT, tile_cur);
|
||||||
}
|
}
|
||||||
|
|
||||||
ZoningMarkDirtyStationCoverageArea(st);
|
ZoningMarkDirtyStationCoverageArea(st);
|
||||||
@@ -2654,7 +2654,6 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags)
|
|||||||
nearest->noise_reached -= GetAirportNoiseLevelForDistance(as, dist);
|
nearest->noise_reached -= GetAirportNoiseLevelForDistance(as, dist);
|
||||||
|
|
||||||
TILE_AREA_LOOP(tile_cur, st->airport) {
|
TILE_AREA_LOOP(tile_cur, st->airport) {
|
||||||
if (IsHangarTile(tile_cur)) OrderBackup::Reset(tile_cur, false);
|
|
||||||
DeleteAnimatedTile(tile_cur);
|
DeleteAnimatedTile(tile_cur);
|
||||||
DoClearSquare(tile_cur);
|
DoClearSquare(tile_cur);
|
||||||
DeleteNewGRFInspectWindow(GSF_AIRPORTTILES, tile_cur);
|
DeleteNewGRFInspectWindow(GSF_AIRPORTTILES, tile_cur);
|
||||||
|
Reference in New Issue
Block a user