diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -2359,7 +2359,7 @@ CommandCost CmdBuildAirport(TileIndex ti 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); } } @@ -2407,6 +2407,10 @@ static CommandCost RemoveAirport(TileInd uint dist; Town *nearest = AirportGetNearestTown(as, it, dist); nearest->noise_reached -= GetAirportNoiseLevelForDistance(as, dist); + + if (_settings_game.economy.station_noise_level) { + SetWindowDirty(WC_TOWN_VIEW, nearest->index); + } } for (TileIndex tile_cur : st->airport) { @@ -2435,10 +2439,6 @@ static CommandCost RemoveAirport(TileInd InvalidateWindowData(WC_STATION_VIEW, st->index, -1); - if (_settings_game.economy.station_noise_level) { - SetWindowDirty(WC_TOWN_VIEW, st->town->index); - } - Company::Get(st->owner)->infrastructure.airport--; st->AfterStationTileSetChange(false, STATION_AIRPORT);