changeset 4284:2f410312f6e9 draft

(svn r5914) -Fix [FS#235]: Bugfix for errors in FindNearestHangar function in aircraft_cmd.c (mart3p).
author Darkvater <Darkvater@openttd.org>
date Tue, 15 Aug 2006 14:38:43 +0000
parents 5179ebca02ec
children 8b7fca8ace98
files aircraft_cmd.c
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/aircraft_cmd.c
+++ b/aircraft_cmd.c
@@ -63,6 +63,7 @@
 	const Station *st;
 	uint best = 0;
 	StationID index = INVALID_STATION;
+	TileIndex vtile = TileVirtXY(v->x_pos, v->y_pos);
 
 	FOR_ALL_STATIONS(st) {
 		if (st->owner == v->owner && st->facilities & FACIL_AIRPORT &&
@@ -70,11 +71,13 @@
 			uint distance;
 
 			// don't crash the plane if we know it can't land at the airport
-			if (HASBIT(v->subtype, 1) && st->airport_type == AT_SMALL &&
+			if ((AircraftVehInfo(v->engine_type)->subtype & AIR_FAST) &&
+					(st->airport_type == AT_SMALL || st->airport_type == AT_COMMUTER) &&
 					!_cheats.no_jetcrash.value)
 				continue;
 
-			distance = DistanceSquare(v->tile, st->airport_tile);
+			// v->tile can't be used here, when aircraft is flying v->tile is set to 0
+			distance = DistanceSquare(vtile, st->airport_tile);
 			if (distance < best || index == INVALID_STATION) {
 				best = distance;
 				index = st->index;