summaryrefslogtreecommitdiff
path: root/airport.h
diff options
context:
space:
mode:
Diffstat (limited to 'airport.h')
-rw-r--r--airport.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/airport.h b/airport.h
new file mode 100644
index 000000000..71f8981c6
--- /dev/null
+++ b/airport.h
@@ -0,0 +1,52 @@
+#ifndef AIRPORT_H
+#define AIRPORT_H
+
+#include "airport_movement.h"
+
+enum {MAX_TERMINALS = 6};
+enum {MAX_HELIPADS = 2};
+
+// Airport types
+enum {
+ AT_SMALL = 0,
+ AT_LARGE = 1,
+ AT_HELIPORT = 2,
+ AT_METROPOLITAN = 3,
+ AT_INTERNATIONAL = 4,
+ AT_OILRIG = 5
+};
+
+// do not change unless you change v->subtype too. This aligns perfectly with its current setting
+enum {
+ AIRCRAFT_ONLY = 0,
+ ALL = 1,
+ HELICOPTERS_ONLY = 2
+};
+
+// Finite sTate mAchine --> FTA
+typedef struct AirportFTAClass {
+ byte nofelements; // number of positions the airport consists of
+ byte nofterminals; // number of terminals this airport has
+ byte nofterminalgroups; // terminals belong to so many groups (MAX is the nofterminals)
+ byte nofhelipads; // number of helipads this airport has
+ byte nofhelipadgroups; // helipads belong to so many groups (MAX is the nofhelipads)
+ byte entry_point; // when an airplane arrives at this airport, enter it at position entry_point
+ byte acc_planes; // accept airplanes or helicopters or both
+ uint16 *airport_depots; // gives the position of the depots on the airports
+ struct AirportFTA *layout; // state machine for airport
+} AirportFTAClass;
+
+// internal structure used in openttd - Finite sTate mAchine --> FTA
+typedef struct AirportFTA {
+ byte position; // the position that an airplane is at
+ byte next_position; // next position from this position
+ uint32 block; // 32 bit blocks (st->airport_flags), should be enough for the most complex airports
+ byte heading; // heading (current orders), guiding an airplane to its target on an airport
+ struct AirportFTA *next_in_chain; // possible extra movement choices from this position
+} AirportFTA;
+
+void InitializeAirports();
+void UnInitializeAirports();
+const AirportFTAClass* GetAirport(const byte airport_type);
+
+#endif /* AIRPORT_H */