annotate src/airport.h @ 12122:d530190c9171 draft

(svn r16536) -Fix (r16535): W != S
author frosch <frosch@openttd.org>
date Mon, 08 Jun 2009 15:44:11 +0000
parents 774675caf674
children 3f9f4a93ada7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
1 /* $Id$ */
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
2
6117
6def6ecb1bf7 (svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas <belugas@openttd.org>
parents: 6041
diff changeset
3 /** @file airport.h Various declarations for airports */
6def6ecb1bf7 (svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas <belugas@openttd.org>
parents: 6041
diff changeset
4
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
5 #ifndef AIRPORT_H
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
6 #define AIRPORT_H
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
7
8100
6d739a5490a9 (svn r11661) -Codechange: some header reworks in order to try to reduce the compile time of OpenTTD by reduce the amount of circular-ish dependencies.
rubidium <rubidium@openttd.org>
parents: 7148
diff changeset
8 #include "direction_type.h"
8139
db99ba38abc0 (svn r11701) -Codechange: removal unnecessary inclusions of map.h (and split map.h).
rubidium <rubidium@openttd.org>
parents: 8138
diff changeset
9 #include "map_type.h"
9334
3945a8340531 (svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas <belugas@openttd.org>
parents: 8895
diff changeset
10 #include "tile_type.h"
5587
c44c070c5032 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium <rubidium@openttd.org>
parents: 5475
diff changeset
11
12051
774675caf674 (svn r16458) -Codechange: use one enum instead of four
smatz <smatz@openttd.org>
parents: 11368
diff changeset
12 /** Current limits for airports */
774675caf674 (svn r16458) -Codechange: use one enum instead of four
smatz <smatz@openttd.org>
parents: 11368
diff changeset
13 enum {
774675caf674 (svn r16458) -Codechange: use one enum instead of four
smatz <smatz@openttd.org>
parents: 11368
diff changeset
14 MAX_TERMINALS = 10, ///< maximum number of terminals per airport
774675caf674 (svn r16458) -Codechange: use one enum instead of four
smatz <smatz@openttd.org>
parents: 11368
diff changeset
15 MAX_HELIPADS = 4, ///< maximum number of helipads per airport
774675caf674 (svn r16458) -Codechange: use one enum instead of four
smatz <smatz@openttd.org>
parents: 11368
diff changeset
16 MAX_ELEMENTS = 255, ///< maximum number of aircraft positions at airport
774675caf674 (svn r16458) -Codechange: use one enum instead of four
smatz <smatz@openttd.org>
parents: 11368
diff changeset
17 };
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
18
12051
774675caf674 (svn r16458) -Codechange: use one enum instead of four
smatz <smatz@openttd.org>
parents: 11368
diff changeset
19 /** Airport types */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
20 enum {
6394
d1cf5ac55918 (svn r9524) -Fix(FS#640,r8755): Implemented a "dummy" State Machine for stations who got their airport removed while there were still aircraft within the State Machine (and thus caused asserts)
celestar <celestar@openttd.org>
parents: 6248
diff changeset
21 AT_SMALL = 0,
d1cf5ac55918 (svn r9524) -Fix(FS#640,r8755): Implemented a "dummy" State Machine for stations who got their airport removed while there were still aircraft within the State Machine (and thus caused asserts)
celestar <celestar@openttd.org>
parents: 6248
diff changeset
22 AT_LARGE = 1,
d1cf5ac55918 (svn r9524) -Fix(FS#640,r8755): Implemented a "dummy" State Machine for stations who got their airport removed while there were still aircraft within the State Machine (and thus caused asserts)
celestar <celestar@openttd.org>
parents: 6248
diff changeset
23 AT_HELIPORT = 2,
d1cf5ac55918 (svn r9524) -Fix(FS#640,r8755): Implemented a "dummy" State Machine for stations who got their airport removed while there were still aircraft within the State Machine (and thus caused asserts)
celestar <celestar@openttd.org>
parents: 6248
diff changeset
24 AT_METROPOLITAN = 3,
d1cf5ac55918 (svn r9524) -Fix(FS#640,r8755): Implemented a "dummy" State Machine for stations who got their airport removed while there were still aircraft within the State Machine (and thus caused asserts)
celestar <celestar@openttd.org>
parents: 6248
diff changeset
25 AT_INTERNATIONAL = 4,
d1cf5ac55918 (svn r9524) -Fix(FS#640,r8755): Implemented a "dummy" State Machine for stations who got their airport removed while there were still aircraft within the State Machine (and thus caused asserts)
celestar <celestar@openttd.org>
parents: 6248
diff changeset
26 AT_COMMUTER = 5,
d1cf5ac55918 (svn r9524) -Fix(FS#640,r8755): Implemented a "dummy" State Machine for stations who got their airport removed while there were still aircraft within the State Machine (and thus caused asserts)
celestar <celestar@openttd.org>
parents: 6248
diff changeset
27 AT_HELIDEPOT = 6,
d1cf5ac55918 (svn r9524) -Fix(FS#640,r8755): Implemented a "dummy" State Machine for stations who got their airport removed while there were still aircraft within the State Machine (and thus caused asserts)
celestar <celestar@openttd.org>
parents: 6248
diff changeset
28 AT_INTERCON = 7,
d1cf5ac55918 (svn r9524) -Fix(FS#640,r8755): Implemented a "dummy" State Machine for stations who got their airport removed while there were still aircraft within the State Machine (and thus caused asserts)
celestar <celestar@openttd.org>
parents: 6248
diff changeset
29 AT_HELISTATION = 8,
d1cf5ac55918 (svn r9524) -Fix(FS#640,r8755): Implemented a "dummy" State Machine for stations who got their airport removed while there were still aircraft within the State Machine (and thus caused asserts)
celestar <celestar@openttd.org>
parents: 6248
diff changeset
30 AT_OILRIG = 15,
d1cf5ac55918 (svn r9524) -Fix(FS#640,r8755): Implemented a "dummy" State Machine for stations who got their airport removed while there were still aircraft within the State Machine (and thus caused asserts)
celestar <celestar@openttd.org>
parents: 6248
diff changeset
31 AT_DUMMY = 255
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
32 };
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
33
5587
c44c070c5032 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium <rubidium@openttd.org>
parents: 5475
diff changeset
34
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
35 enum {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
36 AMED_NOSPDCLAMP = 1 << 0,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
37 AMED_TAKEOFF = 1 << 1,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
38 AMED_SLOWTURN = 1 << 2,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
39 AMED_LAND = 1 << 3,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
40 AMED_EXACTPOS = 1 << 4,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
41 AMED_BRAKE = 1 << 5,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
42 AMED_HELI_RAISE = 1 << 6,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
43 AMED_HELI_LOWER = 1 << 7,
6193
0d05fec9d384 (svn r8973) -Feature/Codechange: Changed the internal unit for aircraft velocities to from 8mph to 1km/h (peter1138), also give aircraft realsitic velocities (so that 1km/h is 1km/h independent of vehicle type) (peter1138). Introduce a flag to reduce aircraft speed in holding patterns to some realistic velocity. Use this flag for the city airport for the time being and make use of the different entry points for this airport type.
celestar <celestar@openttd.org>
parents: 6117
diff changeset
44 AMED_HOLD = 1 << 8
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
45 };
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
46
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
47 /* Movement States on Airports (headings target) */
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
48 enum {
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
49 TO_ALL = 0,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
50 HANGAR = 1,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
51 TERM1 = 2,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
52 TERM2 = 3,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
53 TERM3 = 4,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
54 TERM4 = 5,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
55 TERM5 = 6,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
56 TERM6 = 7,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
57 HELIPAD1 = 8,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
58 HELIPAD2 = 9,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
59 TAKEOFF = 10,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
60 STARTTAKEOFF = 11,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
61 ENDTAKEOFF = 12,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
62 HELITAKEOFF = 13,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
63 FLYING = 14,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
64 LANDING = 15,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
65 ENDLANDING = 16,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
66 HELILANDING = 17,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
67 HELIENDLANDING = 18,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
68 TERM7 = 19,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
69 TERM8 = 20,
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
70 HELIPAD3 = 21,
12051
774675caf674 (svn r16458) -Codechange: use one enum instead of four
smatz <smatz@openttd.org>
parents: 11368
diff changeset
71 HELIPAD4 = 22,
774675caf674 (svn r16458) -Codechange: use one enum instead of four
smatz <smatz@openttd.org>
parents: 11368
diff changeset
72 MAX_HEADINGS = 22,
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
73 };
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
74
11368
82c90cd591ab (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents: 9669
diff changeset
75 /* Movement Blocks on Airports
82c90cd591ab (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents: 9669
diff changeset
76 * blocks (eg_airport_flags) */
5995
c72b07427c7f (svn r8705) -Codechange: Increased the number of airport blocks to 64. This involves changing the enum of airport blocks to a static const uint64 as SOME platforms do not support 64-bit enums
celestar <celestar@openttd.org>
parents: 5938
diff changeset
77 static const uint64
7148
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
78 TERM1_block = 1ULL << 0,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
79 TERM2_block = 1ULL << 1,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
80 TERM3_block = 1ULL << 2,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
81 TERM4_block = 1ULL << 3,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
82 TERM5_block = 1ULL << 4,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
83 TERM6_block = 1ULL << 5,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
84 HELIPAD1_block = 1ULL << 6,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
85 HELIPAD2_block = 1ULL << 7,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
86 RUNWAY_IN_OUT_block = 1ULL << 8,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
87 RUNWAY_IN_block = 1ULL << 8,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
88 AIRPORT_BUSY_block = 1ULL << 8,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
89 RUNWAY_OUT_block = 1ULL << 9,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
90 TAXIWAY_BUSY_block = 1ULL << 10,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
91 OUT_WAY_block = 1ULL << 11,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
92 IN_WAY_block = 1ULL << 12,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
93 AIRPORT_ENTRANCE_block = 1ULL << 13,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
94 TERM_GROUP1_block = 1ULL << 14,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
95 TERM_GROUP2_block = 1ULL << 15,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
96 HANGAR2_AREA_block = 1ULL << 16,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
97 TERM_GROUP2_ENTER1_block = 1ULL << 17,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
98 TERM_GROUP2_ENTER2_block = 1ULL << 18,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
99 TERM_GROUP2_EXIT1_block = 1ULL << 19,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
100 TERM_GROUP2_EXIT2_block = 1ULL << 20,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
101 PRE_HELIPAD_block = 1ULL << 21,
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
102
8895
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
103 /* blocks for new airports */
7148
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
104 TERM7_block = 1ULL << 22,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
105 TERM8_block = 1ULL << 23,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
106 TERM9_block = 1ULL << 24,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
107 HELIPAD3_block = 1ULL << 24,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
108 TERM10_block = 1ULL << 25,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
109 HELIPAD4_block = 1ULL << 25,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
110 HANGAR1_AREA_block = 1ULL << 26,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
111 OUT_WAY2_block = 1ULL << 27,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
112 IN_WAY2_block = 1ULL << 28,
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
113 RUNWAY_IN2_block = 1ULL << 29,
8895
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
114 RUNWAY_OUT2_block = 1ULL << 10, ///< note re-uses TAXIWAY_BUSY
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
115 HELIPAD_GROUP_block = 1ULL << 13, ///< note re-uses AIRPORT_ENTRANCE
7148
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
116 OUT_WAY_block2 = 1ULL << 31,
8895
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
117 /* end of new blocks */
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
118
7148
bb5dfe7d8fcf (svn r10422) -Fix: VC8 Code Analyzer warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value
KUDr <KUDr@openttd.org>
parents: 6394
diff changeset
119 NOTHING_block = 1ULL << 30;
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
120
6248
0789677a15a0 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents: 6247
diff changeset
121 struct AirportMovingData {
5938
e0bf6bd35254 (svn r8582) -Fix
tron <tron@openttd.org>
parents: 5932
diff changeset
122 int16 x;
e0bf6bd35254 (svn r8582) -Fix
tron <tron@openttd.org>
parents: 5932
diff changeset
123 int16 y;
6193
0d05fec9d384 (svn r8973) -Feature/Codechange: Changed the internal unit for aircraft velocities to from 8mph to 1km/h (peter1138), also give aircraft realsitic velocities (so that 1km/h is 1km/h independent of vehicle type) (peter1138). Introduce a flag to reduce aircraft speed in holding patterns to some realistic velocity. Use this flag for the city airport for the time being and make use of the different entry points for this airport type.
celestar <celestar@openttd.org>
parents: 6117
diff changeset
124 uint16 flag;
5587
c44c070c5032 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium <rubidium@openttd.org>
parents: 5475
diff changeset
125 DirectionByte direction;
6248
0789677a15a0 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents: 6247
diff changeset
126 };
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
127
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
128 struct AirportFTAbuildup;
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
129
8895
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
130 /** Finite sTate mAchine --> FTA */
6248
0789677a15a0 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents: 6247
diff changeset
131 struct AirportFTAClass {
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5754
diff changeset
132 public:
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
133 enum Flags {
6027
22d859b7458d (svn r8750) -Fix (r8747): PLANES defined in wingdi.h caused compilation error under Win32. Changed to AIRPLANES
KUDr <KUDr@openttd.org>
parents: 6025
diff changeset
134 AIRPLANES = 0x1,
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
135 HELICOPTERS = 0x2,
6027
22d859b7458d (svn r8750) -Fix (r8747): PLANES defined in wingdi.h caused compilation error under Win32. Changed to AIRPLANES
KUDr <KUDr@openttd.org>
parents: 6025
diff changeset
136 ALL = AIRPLANES | HELICOPTERS,
6025
b3979c751708 (svn r8748) -Fix
tron <tron@openttd.org>
parents: 6024
diff changeset
137 SHORT_STRIP = 0x4
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
138 };
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
139
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
140 AirportFTAClass(
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
141 const AirportMovingData *moving_data,
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
142 const byte *terminals,
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
143 const byte *helipads,
6036
b56d6c9c752f (svn r8759) -Feature: Allow airports to have up to 4 entry points depending on approach direction. Note: they're not yet used, but will be soon
celestar <celestar@openttd.org>
parents: 6027
diff changeset
144 const byte *entry_points,
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
145 Flags flags,
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
146 const AirportFTAbuildup *apFA,
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
147 const TileIndexDiffC *depots,
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
148 byte nof_depots,
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
149 uint size_x,
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 6011
diff changeset
150 uint size_y,
9334
3945a8340531 (svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas <belugas@openttd.org>
parents: 8895
diff changeset
151 uint8 noise_level,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
152 byte delta_z,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
153 byte catchment
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
154 );
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
155
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
156 ~AirportFTAClass();
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
157
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5754
diff changeset
158 const AirportMovingData *MovingData(byte position) const
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5754
diff changeset
159 {
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5754
diff changeset
160 assert(position < nofelements);
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5754
diff changeset
161 return &moving_data[position];
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5754
diff changeset
162 }
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5754
diff changeset
163
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5754
diff changeset
164 const AirportMovingData *moving_data;
8895
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
165 struct AirportFTA *layout; ///< state machine for airport
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
166 const byte *terminals;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
167 const byte *helipads;
8895
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
168 const TileIndexDiffC *airport_depots; ///< gives the position of the depots on the airports
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
169 Flags flags;
8895
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
170 byte nof_depots; ///< number of depots this airport has
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
171 byte nofelements; ///< number of positions the airport consists of
6036
b56d6c9c752f (svn r8759) -Feature: Allow airports to have up to 4 entry points depending on approach direction. Note: they're not yet used, but will be soon
celestar <celestar@openttd.org>
parents: 6027
diff changeset
172 const byte *entry_points; ///< when an airplane arrives at this airport, enter it at position entry_point, index depends on direction
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
173 byte size_x;
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
174 byte size_y;
9334
3945a8340531 (svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas <belugas@openttd.org>
parents: 8895
diff changeset
175 uint8 noise_level; ///< noise that this airport generates
8895
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
176 byte delta_z; ///< Z adjustment for helicopter pads
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
177 byte catchment;
6248
0789677a15a0 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents: 6247
diff changeset
178 };
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
179
6025
b3979c751708 (svn r8748) -Fix
tron <tron@openttd.org>
parents: 6024
diff changeset
180 DECLARE_ENUM_AS_BIT_SET(AirportFTAClass::Flags)
b3979c751708 (svn r8748) -Fix
tron <tron@openttd.org>
parents: 6024
diff changeset
181
b3979c751708 (svn r8748) -Fix
tron <tron@openttd.org>
parents: 6024
diff changeset
182
8895
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
183 /** internal structure used in openttd - Finite sTate mAchine --> FTA */
6248
0789677a15a0 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents: 6247
diff changeset
184 struct AirportFTA {
8895
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
185 AirportFTA *next; ///< possible extra movement choices from this position
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
186 uint64 block; ///< 64 bit blocks (st->airport_flags), should be enough for the most complex airports
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
187 byte position; ///< the position that an airplane is at
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
188 byte next_position; ///< next position from this position
80625432d041 (svn r12662) -Codechange: Comment-code style application
belugas <belugas@openttd.org>
parents: 8139
diff changeset
189 byte heading; ///< heading (current orders), guiding an airplane to its target on an airport
6248
0789677a15a0 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium <rubidium@openttd.org>
parents: 6247
diff changeset
190 };
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
191
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6193
diff changeset
192 void InitializeAirports();
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6193
diff changeset
193 void UnInitializeAirports();
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
194 const AirportFTAClass *GetAirport(const byte airport_type);
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
195
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
196 /** Get buildable airport bitmask.
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
197 * @return get all buildable airports at this given time, bitmasked.
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
198 * Bit 0 means the small airport is buildable, etc.
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
199 * @todo set availability of airports by year, instead of airplane
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
200 */
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6193
diff changeset
201 uint32 GetValidAirports();
5475
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
202
eabf4b86aed6 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium <rubidium@openttd.org>
parents:
diff changeset
203 #endif /* AIRPORT_H */