diff options
author | yexo <yexo@openttd.org> | 2010-03-06 01:58:55 +0000 |
---|---|---|
committer | yexo <yexo@openttd.org> | 2010-03-06 01:58:55 +0000 |
commit | 1eb52326cf810d9ea4380cd97ac84daaf4f358d8 (patch) | |
tree | 6cc4e7d4729107bbadee7be748c0b786410101c6 | |
parent | 46d5ef925beed4acb7d7e3d7b966bceb28db7e21 (diff) | |
download | openttd-1eb52326cf810d9ea4380cd97ac84daaf4f358d8.tar.xz |
(svn r19331) -Fix: when deleting an airport the size from the AirportSpec was used instead of the stored airport size
-Fix (r19319): detecting if a plane was landed at an airport failed
-Fix: reset the airporttile mapping when restarting a game
-rw-r--r-- | src/newgrf_airporttiles.h | 1 | ||||
-rw-r--r-- | src/openttd.cpp | 1 | ||||
-rw-r--r-- | src/station_cmd.cpp | 9 |
3 files changed, 4 insertions, 7 deletions
diff --git a/src/newgrf_airporttiles.h b/src/newgrf_airporttiles.h index 2c18d2fcf..3e7979297 100644 --- a/src/newgrf_airporttiles.h +++ b/src/newgrf_airporttiles.h @@ -15,7 +15,6 @@ #include "airport.h" #include "station_map.h" #include "newgrf_commons.h" -#include "airport.h" /** Animation triggers for airport tiles */ enum AirpAnimationTrigger { diff --git a/src/openttd.cpp b/src/openttd.cpp index 9886b9e17..057d288b9 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -313,6 +313,7 @@ static void InitializeDynamicVariables() _house_mngr.ResetMapping(); _industry_mngr.ResetMapping(); _industile_mngr.ResetMapping(); + _airporttile_mngr.ResetMapping(); } diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 45fa5ce06..17d110401 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -2229,10 +2229,6 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags) tile = st->airport.tile; - const AirportSpec *as = st->GetAirportSpec(); - int w = as->size_x; - int h = as->size_y; - CommandCost cost(EXPENSES_CONSTRUCTION); const Aircraft *a; @@ -2244,7 +2240,7 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags) TILE_AREA_LOOP(tile_cur, st->airport) { if (!st->TileBelongsToAirport(tile_cur)) continue; - CommandCost ret = EnsureNoVehicleOnGround(tile); + CommandCost ret = EnsureNoVehicleOnGround(tile_cur); ret.SetGlobalErrorMessage(); if (ret.Failed()) return ret; @@ -2257,6 +2253,7 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags) } if (flags & DC_EXEC) { + const AirportSpec *as = st->GetAirportSpec(); for (uint i = 0; i < as->nof_depots; ++i) { DeleteWindowById( WC_VEHICLE_DEPOT, st->GetHangarTile(i) @@ -2269,7 +2266,7 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags) Town *nearest = AirportGetNearestTown(as, tile); nearest->noise_reached -= GetAirportNoiseLevelForTown(as, nearest->xy, tile); - st->rect.AfterRemoveRect(st, tile, w, h); + st->rect.AfterRemoveRect(st, tile, st->airport.w, st->airport.h); st->airport.Clear(); st->facilities &= ~FACIL_AIRPORT; |