changeset 6032:3f513357d37f draft

(svn r8755) -Fix Abbreviate GetAirport(st->airport_type) to st->Airport()
author tron <tron@openttd.org>
date Fri, 16 Feb 2007 09:38:43 +0000
parents 5d5695b62ae4
children a3ca3cb7b1a2
files src/ai/default/default.cpp src/aircraft_cmd.cpp src/build_vehicle_gui.cpp src/newgrf_engine.cpp src/order_cmd.cpp src/station.h src/station_cmd.cpp
diffstat 7 files changed, 24 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/src/ai/default/default.cpp
+++ b/src/ai/default/default.cpp
@@ -3267,7 +3267,7 @@
 			// Do we own the airport? (Oilrigs aren't owned, though.)
 			if (st->owner != OWNER_NONE && st->owner != _current_player) continue;
 
-			AirportFTAClass::Flags flags = GetAirport(st->airport_type)->flags;
+			AirportFTAClass::Flags flags = st->Airport()->flags;
 
 			if (!(flags & (p->ai.build_kind == 1 && i == 0 ? AirportFTAClass::HELICOPTERS : AirportFTAClass::AIRPLANES))) {
 				continue;
@@ -3469,7 +3469,7 @@
 
 	/* XXX - Have the AI pick the hangar terminal in an airport. Eg get airport-type
 	 * and offset to the FIRST depot because the AI picks the st->xy tile */
-	tile += ToTileIndexDiff(GetAirport(GetStationByTile(tile)->airport_type)->airport_depots[0]);
+	tile += ToTileIndexDiff(GetStationByTile(tile)->Airport()->airport_depots[0]);
 	if (CmdFailed(DoCommand(tile, veh, 0, DC_EXEC, CMD_BUILD_AIRCRAFT))) return;
 	loco_id = _new_vehicle_id;
 
--- a/src/aircraft_cmd.cpp
+++ b/src/aircraft_cmd.cpp
@@ -76,7 +76,7 @@
 	FOR_ALL_STATIONS(st) {
 		if (st->owner != v->owner || !(st->facilities & FACIL_AIRPORT)) continue;
 
-		const AirportFTAClass *afc = GetAirport(st->airport_type);
+		const AirportFTAClass *afc = st->Airport();
 		if (afc->nof_depots == 0 || (
 					/* don't crash the plane if we know it can't land at the airport */
 					afc->flags & AirportFTAClass::SHORT_STRIP &&
@@ -106,7 +106,7 @@
 		const Station *st = GetStation(order->station);
 		if (st->owner == v->owner && st->facilities & FACIL_AIRPORT) {
 			// If an airport doesn't have a hangar, skip it
-			if (GetAirport(st->airport_type)->nof_depots != 0)
+			if (st->Airport()->nof_depots != 0)
 				return true;
 		}
 	}
@@ -250,7 +250,7 @@
 
 	// Prevent building aircraft types at places which can't handle them
 	const Station* st = GetStationByTile(tile);
-	const AirportFTAClass* apc = GetAirport(st->airport_type);
+	const AirportFTAClass* apc = st->Airport();
 	if (!(apc->flags & (avi->subtype & AIR_CTOL ? AirportFTAClass::AIRPLANES : AirportFTAClass::HELICOPTERS))) {
 		return CMD_ERROR;
 	}
@@ -559,7 +559,7 @@
 		StationID next_airport_index = v->u.air.targetairport;
 		const Station *st = GetStation(next_airport_index);
 		/* If the station is not a valid airport or if it has no hangars */
-		if (!st->IsValid() || st->airport_tile == 0 || GetAirport(st->airport_type)->nof_depots == 0) {
+		if (!st->IsValid() || st->airport_tile == 0 || st->Airport()->nof_depots == 0) {
 			StationID station;
 
 			// the aircraft has to search for a hangar on its own
@@ -696,7 +696,7 @@
 
 	st = GetStation(v->current_order.dest);
 	// only goto depot if the target airport has terminals (eg. it is airport)
-	if (st->IsValid() && st->airport_tile != 0 && GetAirport(st->airport_type)->terminals != NULL) {
+	if (st->IsValid() && st->airport_tile != 0 && st->Airport()->terminals != NULL) {
 //		printf("targetairport = %d, st->index = %d\n", v->u.air.targetairport, st->index);
 //		v->u.air.targetairport = st->index;
 		v->current_order.type = OT_GOTO_DEPOT;
@@ -970,7 +970,7 @@
 	}
 
 	// get airport moving data
-	const AirportFTAClass *afc = GetAirport(st->airport_type);
+	const AirportFTAClass *afc = st->Airport();
 	const AirportMovingData *amd = afc->MovingData(v->u.air.pos);
 
 	// Helicopter raise
@@ -1369,7 +1369,7 @@
 
 	//FIXME -- MaybeCrashAirplane -> increase crashing chances of very modern airplanes on smaller than AT_METROPOLITAN airports
 	prob = 0x10000 / 1500;
-	if (GetAirport(st->airport_type)->flags & AirportFTAClass::SHORT_STRIP &&
+	if (st->Airport()->flags & AirportFTAClass::SHORT_STRIP &&
 			AircraftVehInfo(v->engine_type)->subtype & AIR_FAST &&
 			!_cheats.no_jetcrash.value) {
 		prob = 0x10000 / 20;
@@ -1446,15 +1446,11 @@
 // set the right pos when heading to other airports after takeoff
 static void AircraftNextAirportPos_and_Order(Vehicle *v)
 {
-	const Station* st;
-	const AirportFTAClass *apc;
-
 	if (v->current_order.type == OT_GOTO_STATION ||
 			v->current_order.type == OT_GOTO_DEPOT)
 		v->u.air.targetairport = v->current_order.dest;
 
-	st = GetStation(v->u.air.targetairport);
-	apc = GetAirport(st->airport_type);
+	const AirportFTAClass *apc = GetStation(v->u.air.targetairport)->Airport();
 	v->u.air.pos = v->u.air.previous_pos = apc->entry_point;
 }
 
@@ -2048,10 +2044,7 @@
 
 	if (v->current_order.type >= OT_LOADING) return;
 
-	// pass the right airport structure to the functions
-	// DEREF_STATION gets target airport (Station *st), its type is passed to GetAirport
-	// that returns the correct layout depending on type
-	AirportGoToNextPosition(v, GetAirport(GetStation(v->u.air.targetairport)->airport_type));
+	AirportGoToNextPosition(v, GetStation(v->u.air.targetairport)->Airport());
 }
 
 void Aircraft_Tick(Vehicle *v)
@@ -2117,7 +2110,7 @@
 	byte takeofftype;
 	uint16 cnt;
 	// only 1 station is updated per function call, so it is enough to get entry_point once
-	const AirportFTAClass *ap = GetAirport(st->airport_type);
+	const AirportFTAClass *ap = st->Airport();
 	FOR_ALL_VEHICLES(v) {
 		if (v->type == VEH_Aircraft && IsNormalAircraft(v)) {
 			if (v->u.air.targetairport == st->index) { // if heading to this airport
--- a/src/build_vehicle_gui.cpp
+++ b/src/build_vehicle_gui.cpp
@@ -985,7 +985,7 @@
 			break;
 		case VEH_Aircraft:
 			bv->filter.flags =
-				tile == 0 ? AirportFTAClass::ALL : GetAirport(GetStationByTile(tile)->airport_type)->flags;
+				tile == 0 ? AirportFTAClass::ALL : GetStationByTile(tile)->Airport()->flags;
 			ResizeWindow(w, 12, 0);
 			break;
 	}
--- a/src/newgrf_engine.cpp
+++ b/src/newgrf_engine.cpp
@@ -288,7 +288,7 @@
 static byte MapAircraftMovementState(const Vehicle *v)
 {
 	const Station *st = GetStation(v->u.air.targetairport);
-	const AirportFTAClass *afc = GetAirport(st->airport_type);
+	const AirportFTAClass *afc = st->Airport();
 	byte amdflag = afc->MovingData(v->u.air.pos)->flag;
 
 	switch (v->u.air.state) {
--- a/src/order_cmd.cpp
+++ b/src/order_cmd.cpp
@@ -261,7 +261,7 @@
 
 				if (!CheckOwnership(st->owner) ||
 						!(st->facilities & FACIL_AIRPORT) ||
-						GetAirport(st->airport_type)->nof_depots == 0) {
+						st->Airport()->nof_depots == 0) {
 					return CMD_ERROR;
 				}
 			} else {
--- a/src/station.h
+++ b/src/station.h
@@ -3,6 +3,7 @@
 #ifndef STATION_H
 #define STATION_H
 
+#include "airport.h"
 #include "player.h"
 #include "oldpool.h"
 #include "sprite.h"
@@ -112,6 +113,12 @@
 			return type == RoadStop::BUS ? bus_stops : truck_stops;
 		}
 
+		const AirportFTAClass *Airport() const
+		{
+			assert(airport_tile != 0);
+			return GetAirport(airport_type);
+		}
+
 	TileIndex xy;
 	RoadStop *bus_stops;
 	RoadStop *truck_stops;
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -557,7 +557,7 @@
 	}
 
 	if (st->airport_tile != 0) {
-		const AirportFTAClass* afc = GetAirport(st->airport_type);
+		const AirportFTAClass* afc = st->Airport();
 
 		MergePoint(&rect, st->airport_tile);
 		MergePoint(&rect,
@@ -1679,14 +1679,13 @@
 	TileIndex tile;
 	int w,h;
 	int32 cost;
-	const AirportFTAClass* afc;
 
 	if (_current_player != OWNER_WATER && !CheckOwnership(st->owner))
 		return CMD_ERROR;
 
 	tile = st->airport_tile;
 
-	afc = GetAirport(st->airport_type);
+	const AirportFTAClass *afc = st->Airport();
 	w = afc->size_x;
 	h = afc->size_y;