1 /* $Id$ */ |
1 /* $Id$ */ |
2 |
2 |
3 #ifndef AIRPORT_MOVEMENT_H |
3 #ifndef AIRPORT_MOVEMENT_H |
4 #define AIRPORT_MOVEMENT_H |
4 #define AIRPORT_MOVEMENT_H |
5 |
5 |
6 #include "stdafx.h" |
|
7 |
|
8 typedef struct AirportMovingData { |
|
9 int x,y; |
|
10 byte flag; |
|
11 byte direction; |
|
12 } AirportMovingData; |
|
13 |
6 |
14 // state machine input struct (from external file, etc.) |
7 // state machine input struct (from external file, etc.) |
15 // Finite sTate mAchine --> FTA |
8 // Finite sTate mAchine --> FTA |
16 typedef struct AirportFTAbuildup { |
9 typedef struct AirportFTAbuildup { |
17 byte position; // the position that an airplane is at |
10 byte position; // the position that an airplane is at |
18 byte heading; // the current orders (eg. TAKEOFF, HANGAR, ENDLANDING, etc.) |
11 byte heading; // the current orders (eg. TAKEOFF, HANGAR, ENDLANDING, etc.) |
19 uint32 block; // the block this position is on on the airport (st->airport_flags) |
12 uint32 block; // the block this position is on on the airport (st->airport_flags) |
20 byte next_in_chain; // next position from this position |
13 byte next_in_chain; // next position from this position |
21 } AirportFTAbuildup; |
14 } AirportFTAbuildup; |
22 |
15 |
23 enum { |
|
24 AMED_NOSPDCLAMP = 1<<0, |
|
25 AMED_TAKEOFF = 1<<1, |
|
26 AMED_SLOWTURN = 1<<2, |
|
27 AMED_LAND = 1<<3, |
|
28 AMED_EXACTPOS = 1<<4, |
|
29 AMED_BRAKE = 1<<5, |
|
30 AMED_HELI_RAISE = 1<<6, |
|
31 AMED_HELI_LOWER = 1<<7, |
|
32 }; |
|
33 |
|
34 enum {MAX_ELEMENTS = 255}; |
|
35 enum {MAX_HEADINGS = 18}; |
|
36 |
|
37 /////////////////////////////////////////////////////////////////////// |
|
38 ///////***********Movement States on Airports********************////// |
|
39 // headings target |
|
40 enum { |
|
41 TO_ALL = 0, |
|
42 HANGAR = 1, |
|
43 TERM1 = 2, |
|
44 TERM2 = 3, |
|
45 TERM3 = 4, |
|
46 TERM4 = 5, |
|
47 TERM5 = 6, |
|
48 TERM6 = 7, |
|
49 HELIPAD1 = 8, |
|
50 HELIPAD2 = 9, |
|
51 TAKEOFF = 10, |
|
52 STARTTAKEOFF = 11, |
|
53 ENDTAKEOFF = 12, |
|
54 HELITAKEOFF = 13, |
|
55 FLYING = 14, |
|
56 LANDING = 15, |
|
57 ENDLANDING = 16, |
|
58 HELILANDING = 17, |
|
59 HELIENDLANDING = 18 |
|
60 }; |
|
61 |
|
62 /////////////////////////////////////////////////////////////////////// |
|
63 ///////**********Movement Blocks on Airports*********************////// |
|
64 // blocks (eg_airport_flags) |
|
65 enum { |
|
66 TERM1_block = 1 << 0, |
|
67 TERM2_block = 1 << 1, |
|
68 TERM3_block = 1 << 2, |
|
69 TERM4_block = 1 << 3, |
|
70 TERM5_block = 1 << 4, |
|
71 TERM6_block = 1 << 5, |
|
72 HELIPAD1_block = 1 << 6, |
|
73 HELIPAD2_block = 1 << 7, |
|
74 RUNWAY_IN_OUT_block = 1 << 8, |
|
75 RUNWAY_IN_block = 1 << 8, |
|
76 AIRPORT_BUSY_block = 1 << 8, |
|
77 RUNWAY_OUT_block = 1 << 9, |
|
78 TAXIWAY_BUSY_block = 1 << 10, |
|
79 OUT_WAY_block = 1 << 11, |
|
80 IN_WAY_block = 1 << 12, |
|
81 AIRPORT_ENTRANCE_block = 1 << 13, |
|
82 TERM_GROUP1_block = 1 << 14, |
|
83 TERM_GROUP2_block = 1 << 15, |
|
84 HANGAR2_AREA_block = 1 << 16, |
|
85 TERM_GROUP2_ENTER1_block = 1 << 17, |
|
86 TERM_GROUP2_ENTER2_block = 1 << 18, |
|
87 TERM_GROUP2_EXIT1_block = 1 << 19, |
|
88 TERM_GROUP2_EXIT2_block = 1 << 20, |
|
89 PRE_HELIPAD_block = 1 << 21, |
|
90 NOTHING_block = 1 << 30 |
|
91 }; |
|
92 |
16 |
93 /////////////////////////////////////////////////////////////////////// |
17 /////////////////////////////////////////////////////////////////////// |
94 /////*********Movement Positions on Airports********************/////// |
18 /////*********Movement Positions on Airports********************/////// |
95 // Country Airfield (small) 4x3 |
19 // Country Airfield (small) 4x3 |
96 static const AirportMovingData _airport_moving_data_country[22] = { |
20 static const AirportMovingData _airport_moving_data_country[22] = { |