changeset 14743:b9a9b360d411 draft

(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
author yexo <yexo@openttd.org>
date Sat, 06 Mar 2010 01:58:55 +0000
parents 5698a696fee4
children b64d0a050f42
files src/newgrf_airporttiles.h src/openttd.cpp src/station_cmd.cpp
diffstat 3 files changed, 4 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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 {
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -313,6 +313,7 @@
 	_house_mngr.ResetMapping();
 	_industry_mngr.ResetMapping();
 	_industile_mngr.ResetMapping();
+	_airporttile_mngr.ResetMapping();
 }
 
 
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -2229,10 +2229,6 @@
 
 	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 @@
 	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 @@
 	}
 
 	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 @@
 		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;