author | tron |
Mon, 30 Jan 2006 17:18:45 +0000 | |
changeset 2934 | 3b7eef9871f8 |
parent 2186 | 461a2aff3486 |
child 3697 | bd03de677555 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
0 | 3 |
#ifndef AIRPORT_H |
4 |
#define AIRPORT_H |
|
5 |
||
6 |
#include "airport_movement.h" |
|
7 |
||
8 |
enum {MAX_TERMINALS = 6}; |
|
9 |
enum {MAX_HELIPADS = 2}; |
|
10 |
||
11 |
// Airport types |
|
12 |
enum { |
|
13 |
AT_SMALL = 0, |
|
14 |
AT_LARGE = 1, |
|
15 |
AT_HELIPORT = 2, |
|
16 |
AT_METROPOLITAN = 3, |
|
17 |
AT_INTERNATIONAL = 4, |
|
950
1f6546ea35a3
(svn r1440) -Feature: Allows more flexible airport layouts now, as the number of
celestar
parents:
909
diff
changeset
|
18 |
AT_OILRIG = 15 |
0 | 19 |
}; |
20 |
||
21 |
// do not change unless you change v->subtype too. This aligns perfectly with its current setting |
|
22 |
enum { |
|
23 |
AIRCRAFT_ONLY = 0, |
|
24 |
ALL = 1, |
|
25 |
HELICOPTERS_ONLY = 2 |
|
26 |
}; |
|
27 |
||
28 |
// Finite sTate mAchine --> FTA |
|
29 |
typedef struct AirportFTAClass { |
|
222
b88456001397
(svn r223) -Fix: Const correctness and miscellaneous fixes. Thank you Tron for your diligent fixing of warnings (and some possibly bugs) (Tron)
darkvater
parents:
0
diff
changeset
|
30 |
byte nofelements; // number of positions the airport consists of |
950
1f6546ea35a3
(svn r1440) -Feature: Allows more flexible airport layouts now, as the number of
celestar
parents:
909
diff
changeset
|
31 |
const byte *terminals; |
1f6546ea35a3
(svn r1440) -Feature: Allows more flexible airport layouts now, as the number of
celestar
parents:
909
diff
changeset
|
32 |
const byte *helipads; |
222
b88456001397
(svn r223) -Fix: Const correctness and miscellaneous fixes. Thank you Tron for your diligent fixing of warnings (and some possibly bugs) (Tron)
darkvater
parents:
0
diff
changeset
|
33 |
byte entry_point; // when an airplane arrives at this airport, enter it at position entry_point |
b88456001397
(svn r223) -Fix: Const correctness and miscellaneous fixes. Thank you Tron for your diligent fixing of warnings (and some possibly bugs) (Tron)
darkvater
parents:
0
diff
changeset
|
34 |
byte acc_planes; // accept airplanes or helicopters or both |
909
81bc9ef93f50
(svn r1396) Introduce TileIndexDiffC - the compile time version of TileIndexDiff
tron
parents:
699
diff
changeset
|
35 |
const TileIndexDiffC *airport_depots; // gives the position of the depots on the airports |
699
02b8b9c9194f
(svn r1149) Fix hack which abuses first TileIndex of airport depot array as number of depots (similar change as in map branch)
tron
parents:
222
diff
changeset
|
36 |
byte nof_depots; // number of depots this airport has |
222
b88456001397
(svn r223) -Fix: Const correctness and miscellaneous fixes. Thank you Tron for your diligent fixing of warnings (and some possibly bugs) (Tron)
darkvater
parents:
0
diff
changeset
|
37 |
struct AirportFTA *layout; // state machine for airport |
0 | 38 |
} AirportFTAClass; |
39 |
||
40 |
// internal structure used in openttd - Finite sTate mAchine --> FTA |
|
41 |
typedef struct AirportFTA { |
|
42 |
byte position; // the position that an airplane is at |
|
43 |
byte next_position; // next position from this position |
|
44 |
uint32 block; // 32 bit blocks (st->airport_flags), should be enough for the most complex airports |
|
45 |
byte heading; // heading (current orders), guiding an airplane to its target on an airport |
|
46 |
struct AirportFTA *next_in_chain; // possible extra movement choices from this position |
|
47 |
} AirportFTA; |
|
48 |
||
1093
e8d26c7dc42f
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents:
950
diff
changeset
|
49 |
void InitializeAirports(void); |
e8d26c7dc42f
(svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents:
950
diff
changeset
|
50 |
void UnInitializeAirports(void); |
0 | 51 |
const AirportFTAClass* GetAirport(const byte airport_type); |
52 |
||
1784
6eb3ab1bc33c
(svn r2288) - CodeChange: protected the next batch of commands (41 so far, out of 115).
Darkvater
parents:
1093
diff
changeset
|
53 |
/** Get buildable airport bitmask. |
6eb3ab1bc33c
(svn r2288) - CodeChange: protected the next batch of commands (41 so far, out of 115).
Darkvater
parents:
1093
diff
changeset
|
54 |
* @return get all buildable airports at this given time, bitmasked. |
6eb3ab1bc33c
(svn r2288) - CodeChange: protected the next batch of commands (41 so far, out of 115).
Darkvater
parents:
1093
diff
changeset
|
55 |
* Bit 0 means the small airport is buildable, etc. |
6eb3ab1bc33c
(svn r2288) - CodeChange: protected the next batch of commands (41 so far, out of 115).
Darkvater
parents:
1093
diff
changeset
|
56 |
* @todo set availability of airports by year, instead of airplane |
6eb3ab1bc33c
(svn r2288) - CodeChange: protected the next batch of commands (41 so far, out of 115).
Darkvater
parents:
1093
diff
changeset
|
57 |
*/ |
2159
3b634157c3b2
(svn r2669) Shuffle some more stuff around to reduce dependencies
tron
parents:
2153
diff
changeset
|
58 |
uint32 GetValidAirports(void); |
1784
6eb3ab1bc33c
(svn r2288) - CodeChange: protected the next batch of commands (41 so far, out of 115).
Darkvater
parents:
1093
diff
changeset
|
59 |
|
0 | 60 |
#endif /* AIRPORT_H */ |