annotate src/airport.cpp @ 8506:85399f57c666 draft

(svn r12081) -Codechange: Rename table/roadveh.h to table/roadveh_movment.h It is more descriptive name and it will not upset the generate script anymore
author belugas <belugas@openttd.org>
date Thu, 07 Feb 2008 17:01:06 +0000
parents 5613b863190d
children d48433370037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
1 /* $Id$ */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@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: 6087
diff changeset
3 /** @file airport.cpp */
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: 6087
diff changeset
4
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
5 #include "stdafx.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
6 #include "openttd.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
7 #include "debug.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
8 #include "airport.h"
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
9 #include "airport_movement.h"
8113
c35412099303 (svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium <rubidium@openttd.org>
parents: 8001
diff changeset
10 #include "core/bitmath_func.hpp"
8130
0586823afe39 (svn r11691) -Codechange: move+rename helpers.hpp and only include it when it is really needed.
rubidium <rubidium@openttd.org>
parents: 8113
diff changeset
11 #include "core/alloc_func.hpp"
8140
fb8a05d579da (svn r11702) -Codechange: move all date related stuff to date*.
rubidium <rubidium@openttd.org>
parents: 8139
diff changeset
12 #include "date_func.h"
8270
5613b863190d (svn r11834) -Codechange: only include settings_type.h if needed.
rubidium <rubidium@openttd.org>
parents: 8140
diff changeset
13 #include "settings_type.h"
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
14
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
15 /* Uncomment this to print out a full report of the airport-structure
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
16 * You should either use
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
17 * - true: full-report, print out every state and choice with string-names
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
18 * OR
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
19 * - false: give a summarized report which only shows current and next position */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
20 //#define DEBUG_AIRPORT false
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
21
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: 6247
diff changeset
22 static AirportFTAClass *DummyAirport;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
23 static AirportFTAClass *CountryAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
24 static AirportFTAClass *CityAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
25 static AirportFTAClass *Oilrig;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
26 static AirportFTAClass *Heliport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
27 static AirportFTAClass *MetropolitanAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
28 static AirportFTAClass *InternationalAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
29 static AirportFTAClass *CommuterAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
30 static AirportFTAClass *HeliDepot;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
31 static AirportFTAClass *IntercontinentalAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
32 static AirportFTAClass *HeliStation;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
33
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
34
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6117
diff changeset
35 void InitializeAirports()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
36 {
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: 6247
diff changeset
37 DummyAirport = new AirportFTAClass(
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: 6247
diff changeset
38 _airport_moving_data_dummy,
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: 6247
diff changeset
39 NULL,
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: 6247
diff changeset
40 NULL,
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: 6247
diff changeset
41 _airport_entries_dummy,
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: 6247
diff changeset
42 AirportFTAClass::ALL,
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: 6247
diff changeset
43 _airport_fta_dummy,
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: 6247
diff changeset
44 NULL,
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: 6247
diff changeset
45 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: 6247
diff changeset
46 0, 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: 6247
diff changeset
47 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: 6247
diff changeset
48 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: 6247
diff changeset
49 );
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: 6247
diff changeset
50
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
51 CountryAirport = new AirportFTAClass(
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
52 _airport_moving_data_country,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
53 _airport_terminal_country,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
54 NULL,
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: 6025
diff changeset
55 _airport_entries_country,
6025
b3979c751708 (svn r8748) -Fix
tron <tron@openttd.org>
parents: 6024
diff changeset
56 AirportFTAClass::ALL | AirportFTAClass::SHORT_STRIP,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
57 _airport_fta_country,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
58 _airport_depots_country,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
59 lengthof(_airport_depots_country),
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
60 4, 3,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
61 0,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
62 4
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
63 );
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
64
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
65 CityAirport = new AirportFTAClass(
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
66 _airport_moving_data_town,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
67 _airport_terminal_city,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
68 NULL,
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: 6025
diff changeset
69 _airport_entries_city,
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
70 AirportFTAClass::ALL,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
71 _airport_fta_city,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
72 _airport_depots_city,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
73 lengthof(_airport_depots_city),
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
74 6, 6,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
75 0,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
76 5
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
77 );
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
78
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
79 MetropolitanAirport = new AirportFTAClass(
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
80 _airport_moving_data_metropolitan,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
81 _airport_terminal_metropolitan,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
82 NULL,
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: 6025
diff changeset
83 _airport_entries_metropolitan,
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
84 AirportFTAClass::ALL,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
85 _airport_fta_metropolitan,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
86 _airport_depots_metropolitan,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
87 lengthof(_airport_depots_metropolitan),
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
88 6, 6,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
89 0,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
90 6
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
91 );
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
92
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
93 InternationalAirport = new AirportFTAClass(
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
94 _airport_moving_data_international,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
95 _airport_terminal_international,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
96 _airport_helipad_international,
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: 6025
diff changeset
97 _airport_entries_international,
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
98 AirportFTAClass::ALL,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
99 _airport_fta_international,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
100 _airport_depots_international,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
101 lengthof(_airport_depots_international),
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
102 7, 7,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
103 0,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
104 8
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
105 );
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
106
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
107 IntercontinentalAirport = new AirportFTAClass(
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
108 _airport_moving_data_intercontinental,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
109 _airport_terminal_intercontinental,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
110 _airport_helipad_intercontinental,
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: 6025
diff changeset
111 _airport_entries_intercontinental,
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
112 AirportFTAClass::ALL,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
113 _airport_fta_intercontinental,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
114 _airport_depots_intercontinental,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
115 lengthof(_airport_depots_intercontinental),
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
116 9, 11,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
117 0,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
118 10
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
119 );
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
120
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
121 Heliport = new AirportFTAClass(
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
122 _airport_moving_data_heliport,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
123 NULL,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
124 _airport_helipad_heliport_oilrig,
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: 6025
diff changeset
125 _airport_entries_heliport_oilrig,
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
126 AirportFTAClass::HELICOPTERS,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
127 _airport_fta_heliport_oilrig,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
128 NULL,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
129 0,
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
130 1, 1,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
131 60,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
132 4
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
133 );
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
134
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
135 Oilrig = new AirportFTAClass(
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
136 _airport_moving_data_oilrig,
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
137 NULL,
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
138 _airport_helipad_heliport_oilrig,
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: 6025
diff changeset
139 _airport_entries_heliport_oilrig,
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
140 AirportFTAClass::HELICOPTERS,
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
141 _airport_fta_heliport_oilrig,
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
142 NULL,
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
143 0,
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
144 1, 1,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
145 54,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
146 3
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
147 );
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
148
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
149 CommuterAirport = new AirportFTAClass(
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
150 _airport_moving_data_commuter,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
151 _airport_terminal_commuter,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
152 _airport_helipad_commuter,
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: 6025
diff changeset
153 _airport_entries_commuter,
6025
b3979c751708 (svn r8748) -Fix
tron <tron@openttd.org>
parents: 6024
diff changeset
154 AirportFTAClass::ALL | AirportFTAClass::SHORT_STRIP,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
155 _airport_fta_commuter,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
156 _airport_depots_commuter,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
157 lengthof(_airport_depots_commuter),
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
158 5, 4,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
159 0,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
160 4
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
161 );
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
162
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
163 HeliDepot = new AirportFTAClass(
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
164 _airport_moving_data_helidepot,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
165 NULL,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
166 _airport_helipad_helidepot,
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: 6025
diff changeset
167 _airport_entries_helidepot,
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
168 AirportFTAClass::HELICOPTERS,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
169 _airport_fta_helidepot,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
170 _airport_depots_helidepot,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
171 lengthof(_airport_depots_helidepot),
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
172 2, 2,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
173 0,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
174 4
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
175 );
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
176
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
177 HeliStation = new AirportFTAClass(
5924
bdd8eb003619 (svn r8559) -Fix
tron <tron@openttd.org>
parents: 5609
diff changeset
178 _airport_moving_data_helistation,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
179 NULL,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
180 _airport_helipad_helistation,
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: 6025
diff changeset
181 _airport_entries_helistation,
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
182 AirportFTAClass::HELICOPTERS,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
183 _airport_fta_helistation,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
184 _airport_depots_helistation,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
185 lengthof(_airport_depots_helistation),
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
186 4, 2,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
187 0,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
188 4
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
189 );
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
190 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
191
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6117
diff changeset
192 void UnInitializeAirports()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
193 {
7804
dc0172a8d46f (svn r11354) -Codechange [FS#1379]: one variable wasn't freed whereas all others were. It's not causing any problems as it happens during the shutdown of OpenTTD. So basically it is only for consistency.
rubidium <rubidium@openttd.org>
parents: 6394
diff changeset
194 delete DummyAirport;
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
195 delete CountryAirport;
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
196 delete CityAirport;
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
197 delete Heliport;
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
198 delete MetropolitanAirport;
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
199 delete InternationalAirport;
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
200 delete CommuterAirport;
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
201 delete HeliDepot;
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
202 delete IntercontinentalAirport;
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
203 delete HeliStation;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
204 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
205
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
206
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
207 static uint16 AirportGetNofElements(const AirportFTAbuildup *apFA);
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
208 static AirportFTA* AirportBuildAutomata(uint nofelements, const AirportFTAbuildup *apFA);
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
209 static byte AirportGetTerminalCount(const byte *terminals, byte *groups);
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
210 static byte AirportTestFTA(uint nofelements, const AirportFTA *layout, const byte *terminals);
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
211
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
212 #ifdef DEBUG_AIRPORT
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
213 static void AirportPrintOut(uint nofelements, const AirportFTA *layout, bool full_report);
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
214 #endif
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
215
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
216
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
217 AirportFTAClass::AirportFTAClass(
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
218 const AirportMovingData *moving_data_,
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
219 const byte *terminals_,
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
220 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: 6025
diff changeset
221 const byte *entry_points_,
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
222 Flags flags_,
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
223 const AirportFTAbuildup *apFA,
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
224 const TileIndexDiffC *depots_,
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
225 const byte nof_depots_,
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
226 uint size_x_,
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
227 uint size_y_,
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
228 byte delta_z_,
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
229 byte catchment_
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
230 ) :
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
231 moving_data(moving_data_),
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
232 terminals(terminals_),
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
233 helipads(helipads_),
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
234 airport_depots(depots_),
6024
7558c046b94d (svn r8747) -Fix
tron <tron@openttd.org>
parents: 6020
diff changeset
235 flags(flags_),
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
236 nof_depots(nof_depots_),
5938
e0bf6bd35254 (svn r8582) -Fix
tron <tron@openttd.org>
parents: 5932
diff changeset
237 nofelements(AirportGetNofElements(apFA)),
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: 6025
diff changeset
238 entry_points(entry_points_),
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
239 size_x(size_x_),
6020
266a75e54b50 (svn r8743) -Fix
tron <tron@openttd.org>
parents: 5971
diff changeset
240 size_y(size_y_),
6041
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
241 delta_z(delta_z_),
1342ec694693 (svn r8767) -Fix
tron <tron@openttd.org>
parents: 6036
diff changeset
242 catchment(catchment_)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
243 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
244 byte nofterminalgroups, nofhelipadgroups;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
245
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
246 /* Set up the terminal and helipad count for an airport.
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
247 * TODO: If there are more than 10 terminals or 4 helipads, internal variables
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
248 * need to be changed, so don't allow that for now */
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
249 uint nofterminals = AirportGetTerminalCount(terminals, &nofterminalgroups);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
250 if (nofterminals > MAX_TERMINALS) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
251 DEBUG(misc, 0, "[Ap] only a maximum of %d terminals are supported (requested %d)", MAX_TERMINALS, nofterminals);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
252 assert(nofterminals <= MAX_TERMINALS);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
253 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
254
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
255 uint nofhelipads = AirportGetTerminalCount(helipads, &nofhelipadgroups);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
256 if (nofhelipads > MAX_HELIPADS) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
257 DEBUG(misc, 0, "[Ap] only a maximum of %d helipads are supported (requested %d)", MAX_HELIPADS, nofhelipads);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
258 assert(nofhelipads <= MAX_HELIPADS);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
259 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
260
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
261 /* Get the number of elements from the source table. We also double check this
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
262 * with the entry point which must be within bounds and use this information
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
263 * later on to build and validate the state machine */
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: 6025
diff changeset
264 for (DiagDirection i = DIAGDIR_BEGIN; i < DIAGDIR_END; i++) {
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: 6025
diff changeset
265 if (entry_points[i] >= nofelements) {
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: 6025
diff changeset
266 DEBUG(misc, 0, "[Ap] entry (%d) must be within the airport (maximum %d)", entry_points[i], nofelements);
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: 6025
diff changeset
267 assert(entry_points[i] < nofelements);
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: 6025
diff changeset
268 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
269 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
270
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
271 /* Build the state machine itself */
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
272 layout = AirportBuildAutomata(nofelements, apFA);
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: 6025
diff changeset
273 DEBUG(misc, 2, "[Ap] #count %3d; #term %2d (%dgrp); #helipad %2d (%dgrp); entries %3d, %3d, %3d, %3d",
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: 6025
diff changeset
274 nofelements, nofterminals, nofterminalgroups, nofhelipads, nofhelipadgroups,
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: 6025
diff changeset
275 entry_points[DIAGDIR_NE], entry_points[DIAGDIR_SE], entry_points[DIAGDIR_SW], entry_points[DIAGDIR_NW]);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
276
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
277 /* Test if everything went allright. This is only a rude static test checking
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
278 * the symantic correctness. By no means does passing the test mean that the
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
279 * airport is working correctly or will not deadlock for example */
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
280 uint ret = AirportTestFTA(nofelements, layout, terminals);
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
281 if (ret != MAX_ELEMENTS) DEBUG(misc, 0, "[Ap] problem with element: %d", ret - 1);
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
282 assert(ret == MAX_ELEMENTS);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
283
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
284 #ifdef DEBUG_AIRPORT
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
285 AirportPrintOut(nofelements, layout, DEBUG_AIRPORT);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
286 #endif
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
287 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
288
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
289
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
290 AirportFTAClass::~AirportFTAClass()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
291 {
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
292 for (uint i = 0; i < nofelements; i++) {
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
293 AirportFTA *current = layout[i].next;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
294 while (current != NULL) {
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
295 AirportFTA *next = current->next;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
296 free(current);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
297 current = next;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
298 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
299 }
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
300 free(layout);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
301 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
302
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
303 /** Get the number of elements of a source Airport state automata
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
304 * Since it is actually just a big array of AirportFTA types, we only
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
305 * know one element from the other by differing 'position' identifiers */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
306 static uint16 AirportGetNofElements(const AirportFTAbuildup *apFA)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
307 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
308 uint16 nofelements = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
309 int temp = apFA[0].position;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
310
6087
637ddb9e6519 (svn r8822) -Fix
tron <tron@openttd.org>
parents: 6041
diff changeset
311 for (uint i = 0; i < MAX_ELEMENTS; i++) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
312 if (temp != apFA[i].position) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
313 nofelements++;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
314 temp = apFA[i].position;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
315 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
316 if (apFA[i].position == MAX_ELEMENTS) break;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
317 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
318 return nofelements;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
319 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
320
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
321 /* We calculate the terminal/helipod count based on the data passed to us
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
322 * This data (terminals) contains an index as a first element as to how many
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
323 * groups there are, and then the number of terminals for each group */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
324 static byte AirportGetTerminalCount(const byte *terminals, byte *groups)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
325 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
326 byte nof_terminals = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
327 *groups = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
328
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
329 if (terminals != NULL) {
6087
637ddb9e6519 (svn r8822) -Fix
tron <tron@openttd.org>
parents: 6041
diff changeset
330 uint i = terminals[0];
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
331 *groups = i;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
332 while (i-- > 0) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
333 terminals++;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
334 assert(*terminals != 0); // no empty groups please
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
335 nof_terminals += *terminals;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
336 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
337 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
338 return nof_terminals;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
339 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
340
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
341
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
342 static AirportFTA* AirportBuildAutomata(uint nofelements, const AirportFTAbuildup *apFA)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
343 {
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
344 AirportFTA *FAutomata = MallocT<AirportFTA>(nofelements);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
345 uint16 internalcounter = 0;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
346
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
347 for (uint i = 0; i < nofelements; i++) {
6087
637ddb9e6519 (svn r8822) -Fix
tron <tron@openttd.org>
parents: 6041
diff changeset
348 AirportFTA *current = &FAutomata[i];
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
349 current->position = apFA[internalcounter].position;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
350 current->heading = apFA[internalcounter].heading;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
351 current->block = apFA[internalcounter].block;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
352 current->next_position = apFA[internalcounter].next;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
353
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
354 // outgoing nodes from the same position, create linked list
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
355 while (current->position == apFA[internalcounter + 1].position) {
5609
358c07fb3212 (svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter
KUDr <KUDr@openttd.org>
parents: 5587
diff changeset
356 AirportFTA *newNode = MallocT<AirportFTA>(1);
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
357
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
358 newNode->position = apFA[internalcounter + 1].position;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
359 newNode->heading = apFA[internalcounter + 1].heading;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
360 newNode->block = apFA[internalcounter + 1].block;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
361 newNode->next_position = apFA[internalcounter + 1].next;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
362 // create link
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
363 current->next = newNode;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
364 current = current->next;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
365 internalcounter++;
6087
637ddb9e6519 (svn r8822) -Fix
tron <tron@openttd.org>
parents: 6041
diff changeset
366 }
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
367 current->next = NULL;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
368 internalcounter++;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
369 }
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
370 return FAutomata;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
371 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
372
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
373
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
374 static byte AirportTestFTA(uint nofelements, const AirportFTA *layout, const byte *terminals)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
375 {
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
376 uint next_position = 0;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
377
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
378 for (uint i = 0; i < nofelements; i++) {
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
379 uint position = layout[i].position;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
380 if (position != next_position) return i;
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
381 const AirportFTA *first = &layout[i];
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
382
6087
637ddb9e6519 (svn r8822) -Fix
tron <tron@openttd.org>
parents: 6041
diff changeset
383 for (const AirportFTA *current = first; current != NULL; current = current->next) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
384 /* A heading must always be valid. The only exceptions are
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
385 * - multiple choices as start, identified by a special value of 255
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
386 * - terminal group which is identified by a special value of 255 */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
387 if (current->heading > MAX_HEADINGS) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
388 if (current->heading != 255) return i;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
389 if (current == first && current->next == NULL) return i;
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
390 if (current != first && current->next_position > terminals[0]) return i;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
391 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
392
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
393 /* If there is only one choice, it must be at the end */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
394 if (current->heading == 0 && current->next != NULL) return i;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
395 /* Obviously the elements of the linked list must have the same identifier */
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
396 if (position != current->position) return i;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
397 /* A next position must be within bounds */
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
398 if (current->next_position >= nofelements) return i;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
399 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
400 next_position++;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
401 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
402 return MAX_ELEMENTS;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
403 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
404
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
405 #ifdef DEBUG_AIRPORT
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
406 static const char* const _airport_heading_strings[] = {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
407 "TO_ALL",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
408 "HANGAR",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
409 "TERM1",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
410 "TERM2",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
411 "TERM3",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
412 "TERM4",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
413 "TERM5",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
414 "TERM6",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
415 "HELIPAD1",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
416 "HELIPAD2",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
417 "TAKEOFF",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
418 "STARTTAKEOFF",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
419 "ENDTAKEOFF",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
420 "HELITAKEOFF",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
421 "FLYING",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
422 "LANDING",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
423 "ENDLANDING",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
424 "HELILANDING",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
425 "HELIENDLANDING",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
426 "TERM7",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
427 "TERM8",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
428 "HELIPAD3",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
429 "HELIPAD4",
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
430 "DUMMY" // extra heading for 255
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
431 };
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
432
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
433 static void AirportPrintOut(uint nofelements, const AirportFTA *layout, bool full_report)
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
434 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
435 if (!full_report) printf("(P = Current Position; NP = Next Position)\n");
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
436
5932
4d8fb8695d7b (svn r8570) -Fix
tron <tron@openttd.org>
parents: 5924
diff changeset
437 for (uint i = 0; i < nofelements; i++) {
6087
637ddb9e6519 (svn r8822) -Fix
tron <tron@openttd.org>
parents: 6041
diff changeset
438 for (const AirportFTA *current = &layout[i]; current != NULL; current = current->next) {
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
439 if (full_report) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
440 byte heading = (current->heading == 255) ? MAX_HEADINGS + 1 : current->heading;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
441 printf("\tPos:%2d NPos:%2d Heading:%15s Block:%2d\n", current->position,
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
442 current->next_position, _airport_heading_strings[heading],
8001
2453b42a6b84 (svn r11560) -Codechange: replace 'custom' version of FindLastBit with the generic.
rubidium <rubidium@openttd.org>
parents: 7931
diff changeset
443 FindLastBit(current->block));
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
444 } else {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
445 printf("P:%2d NP:%2d", current->position, current->next_position);
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
446 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
447 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
448 printf("\n");
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
449 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
450 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
451 #endif
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
452
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
453 const AirportFTAClass *GetAirport(const byte airport_type)
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
454 {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
455 //FIXME -- AircraftNextAirportPos_and_Order -> Needs something nicer, don't like this code
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
456 // needs constant change if more airports are added
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
457 switch (airport_type) {
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
458 default: NOT_REACHED();
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
459 case AT_SMALL: return CountryAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
460 case AT_LARGE: return CityAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
461 case AT_METROPOLITAN: return MetropolitanAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
462 case AT_HELIPORT: return Heliport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
463 case AT_OILRIG: return Oilrig;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
464 case AT_INTERNATIONAL: return InternationalAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
465 case AT_COMMUTER: return CommuterAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
466 case AT_HELIDEPOT: return HeliDepot;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
467 case AT_INTERCON: return IntercontinentalAirport;
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
468 case AT_HELISTATION: return HeliStation;
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: 6247
diff changeset
469 case AT_DUMMY: return DummyAirport;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
470 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
471 }
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
472
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
473
6247
57363e064324 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents: 6117
diff changeset
474 uint32 GetValidAirports()
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
475 {
5971
932bbbe63707 (svn r8660) -Fix
tron <tron@openttd.org>
parents: 5938
diff changeset
476 uint32 mask = 0;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
477
7931
44ff7a6d801f (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7804
diff changeset
478 if (_cur_year < 1960 || _patches.always_small_airport) SetBit(mask, 0); // small airport
44ff7a6d801f (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7804
diff changeset
479 if (_cur_year >= 1955) SetBit(mask, 1); // city airport
44ff7a6d801f (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7804
diff changeset
480 if (_cur_year >= 1963) SetBit(mask, 2); // heliport
44ff7a6d801f (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7804
diff changeset
481 if (_cur_year >= 1980) SetBit(mask, 3); // metropolitan airport
44ff7a6d801f (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7804
diff changeset
482 if (_cur_year >= 1990) SetBit(mask, 4); // international airport
44ff7a6d801f (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7804
diff changeset
483 if (_cur_year >= 1983) SetBit(mask, 5); // commuter airport
44ff7a6d801f (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7804
diff changeset
484 if (_cur_year >= 1976) SetBit(mask, 6); // helidepot
44ff7a6d801f (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7804
diff changeset
485 if (_cur_year >= 2002) SetBit(mask, 7); // intercontinental airport
44ff7a6d801f (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13 <skidd13@openttd.org>
parents: 7804
diff changeset
486 if (_cur_year >= 1980) SetBit(mask, 8); // helistation
5971
932bbbe63707 (svn r8660) -Fix
tron <tron@openttd.org>
parents: 5938
diff changeset
487 return mask;
5584
4b26bd55bd24 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff changeset
488 }