@@ -2356,13 +2356,13 @@ CommandCost CmdBuildAirport(TileIndex ti
Company::Get(st->owner)->infrastructure.airport++;
st->AfterStationTileSetChange(true, STATION_AIRPORT);
InvalidateWindowData(WC_STATION_VIEW, st->index, -1);
if (_settings_game.economy.station_noise_level) {
SetWindowDirty(WC_TOWN_VIEW, st->town->index);
SetWindowDirty(WC_TOWN_VIEW, nearest->index);
}
return cost;
@@ -2404,12 +2404,16 @@ static CommandCost RemoveAirport(TileInd
* And as for construction, always remove it, even if the setting is not set, in order to avoid the
* need of recalculation */
AirportTileIterator it(st);
uint dist;
Town *nearest = AirportGetNearestTown(as, it, dist);
nearest->noise_reached -= GetAirportNoiseLevelForDistance(as, dist);
for (TileIndex tile_cur : st->airport) {
if (!st->TileBelongsToAirport(tile_cur)) continue;
CommandCost ret = EnsureNoVehicleOnGround(tile_cur);
@@ -2432,16 +2436,12 @@ static CommandCost RemoveAirport(TileInd
st->airport.Clear();
st->facilities &= ~FACIL_AIRPORT;
Company::Get(st->owner)->infrastructure.airport--;
st->AfterStationTileSetChange(false, STATION_AIRPORT);
DeleteNewGRFInspectWindow(GSF_AIRPORTS, st->index);
Status change: