summaryrefslogtreecommitdiff
path: root/airport.h
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2006-05-01 11:27:39 +0000
committerpeter1138 <peter1138@openttd.org>2006-05-01 11:27:39 +0000
commitd1fa0742a5cf4b25ef35a312ddf8918c015e9ce5 (patch)
treef9b79e6bc23b89c636bd561a097b8f9bc78d971c /airport.h
parent80a75e35738c505727fc546868fb34db3cc52a56 (diff)
downloadopenttd-d1fa0742a5cf4b25ef35a312ddf8918c015e9ce5.tar.xz
(svn r4642) - Codechange: reorganise airport.h and airport_movement.h to avoid having 8 copies of the airport FTAs, and make the enums used available elsewhere.
Diffstat (limited to 'airport.h')
-rw-r--r--airport.h75
1 files changed, 73 insertions, 2 deletions
diff --git a/airport.h b/airport.h
index 8a9d4b60b..78f11e3ed 100644
--- a/airport.h
+++ b/airport.h
@@ -3,10 +3,10 @@
#ifndef AIRPORT_H
#define AIRPORT_H
-#include "airport_movement.h"
-
enum {MAX_TERMINALS = 6};
enum {MAX_HELIPADS = 2};
+enum {MAX_ELEMENTS = 255};
+enum {MAX_HEADINGS = 18};
// Airport types
enum {
@@ -25,6 +25,76 @@ enum {
HELICOPTERS_ONLY = 2,
};
+enum {
+ AMED_NOSPDCLAMP = 1<<0,
+ AMED_TAKEOFF = 1<<1,
+ AMED_SLOWTURN = 1<<2,
+ AMED_LAND = 1<<3,
+ AMED_EXACTPOS = 1<<4,
+ AMED_BRAKE = 1<<5,
+ AMED_HELI_RAISE = 1<<6,
+ AMED_HELI_LOWER = 1<<7,
+};
+
+/* Movement States on Airports (headings target) */
+enum {
+ TO_ALL,
+ HANGAR,
+ TERM1,
+ TERM2,
+ TERM3,
+ TERM4,
+ TERM5,
+ TERM6,
+ HELIPAD1,
+ HELIPAD2,
+ TAKEOFF,
+ STARTTAKEOFF,
+ ENDTAKEOFF,
+ HELITAKEOFF,
+ FLYING,
+ LANDING,
+ ENDLANDING,
+ HELILANDING,
+ HELIENDLANDING,
+};
+
+/* Movement Blocks on Airports */
+// blocks (eg_airport_flags)
+enum {
+ TERM1_block = 1 << 0,
+ TERM2_block = 1 << 1,
+ TERM3_block = 1 << 2,
+ TERM4_block = 1 << 3,
+ TERM5_block = 1 << 4,
+ TERM6_block = 1 << 5,
+ HELIPAD1_block = 1 << 6,
+ HELIPAD2_block = 1 << 7,
+ RUNWAY_IN_OUT_block = 1 << 8,
+ RUNWAY_IN_block = 1 << 8,
+ AIRPORT_BUSY_block = 1 << 8,
+ RUNWAY_OUT_block = 1 << 9,
+ TAXIWAY_BUSY_block = 1 << 10,
+ OUT_WAY_block = 1 << 11,
+ IN_WAY_block = 1 << 12,
+ AIRPORT_ENTRANCE_block = 1 << 13,
+ TERM_GROUP1_block = 1 << 14,
+ TERM_GROUP2_block = 1 << 15,
+ HANGAR2_AREA_block = 1 << 16,
+ TERM_GROUP2_ENTER1_block = 1 << 17,
+ TERM_GROUP2_ENTER2_block = 1 << 18,
+ TERM_GROUP2_EXIT1_block = 1 << 19,
+ TERM_GROUP2_EXIT2_block = 1 << 20,
+ PRE_HELIPAD_block = 1 << 21,
+ NOTHING_block = 1 << 30,
+};
+
+typedef struct AirportMovingData {
+ int x,y;
+ byte flag;
+ byte direction;
+} AirportMovingData;
+
// Finite sTate mAchine --> FTA
typedef struct AirportFTAClass {
byte nofelements; // number of positions the airport consists of
@@ -49,6 +119,7 @@ typedef struct AirportFTA {
void InitializeAirports(void);
void UnInitializeAirports(void);
const AirportFTAClass* GetAirport(const byte airport_type);
+const AirportMovingData *GetAirportMovingData(byte airport_type, byte position);
/** Get buildable airport bitmask.
* @return get all buildable airports at this given time, bitmasked.