0
|
1 |
#ifndef AIRPORT_H
|
|
2 |
#define AIRPORT_H
|
|
3 |
|
|
4 |
#include "airport_movement.h"
|
|
5 |
|
|
6 |
enum {MAX_TERMINALS = 6};
|
|
7 |
enum {MAX_HELIPADS = 2};
|
|
8 |
|
|
9 |
// Airport types
|
|
10 |
enum {
|
|
11 |
AT_SMALL = 0,
|
|
12 |
AT_LARGE = 1,
|
|
13 |
AT_HELIPORT = 2,
|
|
14 |
AT_METROPOLITAN = 3,
|
|
15 |
AT_INTERNATIONAL = 4,
|
|
16 |
AT_OILRIG = 5
|
|
17 |
};
|
|
18 |
|
|
19 |
// do not change unless you change v->subtype too. This aligns perfectly with its current setting
|
|
20 |
enum {
|
|
21 |
AIRCRAFT_ONLY = 0,
|
|
22 |
ALL = 1,
|
|
23 |
HELICOPTERS_ONLY = 2
|
|
24 |
};
|
|
25 |
|
|
26 |
// Finite sTate mAchine --> FTA
|
|
27 |
typedef struct AirportFTAClass {
|
|
28 |
byte nofelements; // number of positions the airport consists of
|
|
29 |
byte nofterminals; // number of terminals this airport has
|
|
30 |
byte nofterminalgroups; // terminals belong to so many groups (MAX is the nofterminals)
|
|
31 |
byte nofhelipads; // number of helipads this airport has
|
|
32 |
byte nofhelipadgroups; // helipads belong to so many groups (MAX is the nofhelipads)
|
|
33 |
byte entry_point; // when an airplane arrives at this airport, enter it at position entry_point
|
|
34 |
byte acc_planes; // accept airplanes or helicopters or both
|
|
35 |
uint16 *airport_depots; // gives the position of the depots on the airports
|
|
36 |
struct AirportFTA *layout; // state machine for airport
|
|
37 |
} AirportFTAClass;
|
|
38 |
|
|
39 |
// internal structure used in openttd - Finite sTate mAchine --> FTA
|
|
40 |
typedef struct AirportFTA {
|
|
41 |
byte position; // the position that an airplane is at
|
|
42 |
byte next_position; // next position from this position
|
|
43 |
uint32 block; // 32 bit blocks (st->airport_flags), should be enough for the most complex airports
|
|
44 |
byte heading; // heading (current orders), guiding an airplane to its target on an airport
|
|
45 |
struct AirportFTA *next_in_chain; // possible extra movement choices from this position
|
|
46 |
} AirportFTA;
|
|
47 |
|
|
48 |
void InitializeAirports();
|
|
49 |
void UnInitializeAirports();
|
|
50 |
const AirportFTAClass* GetAirport(const byte airport_type);
|
|
51 |
|
|
52 |
#endif /* AIRPORT_H */
|