src/aircraft_cmd.cpp
changeset 8890 8a0fa7ff70a0
parent 8864 76e142d103e9
child 8891 1058c3b69b7f
--- a/src/aircraft_cmd.cpp	Thu Apr 10 22:18:33 2008 +0000
+++ b/src/aircraft_cmd.cpp	Fri Apr 11 08:14:43 2008 +0000
@@ -546,6 +546,25 @@
 	return CommandCost();
 }
 
+bool Aircraft::FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse)
+{
+	const Station *st = GetStation(this->u.air.targetairport);
+	/* If the station is not a valid airport or if it has no hangars */
+	if (!st->IsValid() || st->airport_tile == 0 || st->Airport()->nof_depots == 0) {
+		/* the aircraft has to search for a hangar on its own */
+		StationID station = FindNearestHangar(this);
+
+		if (station == INVALID_STATION) return false;
+
+		st = GetStation(station);
+	}
+
+	if (location    != NULL) *location    = st->xy;
+	if (destination != NULL) *destination = st->index;
+
+	return true;
+}
+
 /** Send an aircraft to the hangar.
  * @param tile unused
  * @param flags for command type