10#ifndef AIRPORT_MOVEMENT_H
11#define AIRPORT_MOVEMENT_H
13#include "../airport.h"
14#include "../newgrf_airport.h"
48 { 53, 27, {},
DIR_N },
51 { 43, 37, {},
DIR_N },
52 { 24, 37, {},
DIR_N },
53 { 53, 37, {},
DIR_N },
61 { 53, 40, {},
DIR_N },
74 { 72, 22, {},
DIR_N },
117 { 85, 22, {},
DIR_N },
121 { 65, 6, {},
DIR_N },
122 { 80, 27, {},
DIR_N },
123 { 44, 63, {},
DIR_N },
124 { 58, 71, {},
DIR_N },
125 { 72, 85, {},
DIR_N },
132 { 20, 87, {},
DIR_N },
133 { 36, 71, {},
DIR_N },
151 { 85, 22, {},
DIR_N },
155 { 65, 6, {},
DIR_N },
156 { 80, 27, {},
DIR_N },
157 { 49, 58, {},
DIR_N },
158 { 72, 58, {},
DIR_N },
159 { 72, 69, {},
DIR_N },
166 { 21, 85, {},
DIR_N },
167 { 21, 69, {},
DIR_N },
173 { 44, 58, {},
DIR_N },
184 { 7, 70, {},
DIR_N },
185 { 100, 36, {},
DIR_N },
194 { 22, 87, {},
DIR_N },
195 { 60, 87, {},
DIR_N },
196 { 66, 87, {},
DIR_N },
198 { 86, 70, {},
DIR_N },
199 { 86, 54, {},
DIR_N },
200 { 86, 38, {},
DIR_N },
201 { 86, 22, {},
DIR_N },
202 { 66, 22, {},
DIR_N },
203 { 60, 22, {},
DIR_N },
204 { 38, 22, {},
DIR_N },
205 { 22, 70, {},
DIR_N },
206 { 22, 58, {},
DIR_N },
207 { 22, 38, {},
DIR_N },
209 { 22, 6, {},
DIR_N },
218 { 7, 84, {},
DIR_N },
242 { 8, 104, {},
DIR_N },
243 { 136, 88, {},
DIR_N },
254 { 40, 136, {},
DIR_N },
255 { 56, 136, {},
DIR_N },
256 { 88, 136, {},
DIR_N },
257 { 104, 136, {},
DIR_N },
258 { 104, 120, {},
DIR_N },
259 { 104, 104, {},
DIR_N },
260 { 104, 88, {},
DIR_N },
261 { 104, 72, {},
DIR_N },
262 { 104, 56, {},
DIR_N },
263 { 104, 40, {},
DIR_N },
264 { 56, 40, {},
DIR_N },
265 { 40, 40, {},
DIR_N },
266 { 40, 120, {},
DIR_N },
267 { 40, 104, {},
DIR_N },
268 { 40, 88, {},
DIR_N },
269 { 40, 72, {},
DIR_N },
279 { 8, 168, {},
DIR_N },
306 { 136, 8, {},
DIR_N },
311 { 88, 40, {},
DIR_N },
312 { 72, 40, {},
DIR_N },
337 { 24, 28, {},
DIR_N },
359 { 8, 22, {},
DIR_N },
362 { 24, 22, {},
DIR_N },
363 { 40, 22, {},
DIR_N },
399 { 28, 9, {},
DIR_N },
410static const uint8_t _airport_entries_dummy[] = {0, 1, 2, 3};
422static const uint8_t _airport_terminal_country[] = {1, 2};
423static const uint8_t _airport_entries_country[] = {16, 15, 18, 17};
426 { 1,
TERMGROUP,
AirportBlock::AirportBusy, 0 }, { 1,
HANGAR, {}, 0 }, { 1,
TERM1,
AirportBlock::Term1, 2 }, { 1,
TERM2, {}, 4 }, { 1,
HELITAKEOFF, {}, 19 }, { 1,
TO_ALL, {}, 6 },
429 { 4,
TERMGROUP,
AirportBlock::AirportBusy, 0 }, { 4,
TERM2, {}, 5 }, { 4,
HANGAR, {}, 1 }, { 4,
TAKEOFF, {}, 6 }, { 4,
HELITAKEOFF, {}, 1 },
430 { 5,
TERMGROUP,
AirportBlock::AirportBusy, 0 }, { 5,
TERM2,
AirportBlock::Term2, 3 }, { 5,
TO_ALL, {}, 4 },
437 { 10,
FLYING,
AirportBlock::Nothing, 15 }, { 10,
LANDING, {}, 11 }, { 10,
HELILANDING, {}, 20 },
440 { 13,
ENDLANDING,
AirportBlock::AirportBusy, 14 }, { 13,
TERM2, {}, 5 }, { 13,
TO_ALL, {}, 14 },
454static const uint8_t _airport_terminal_commuter[] = { 1, 3 };
455static const uint8_t _airport_entries_commuter[] = {22, 21, 24, 23};
457 { 0,
HANGAR,
AirportBlock::Nothing, 1 }, { 0,
HELITAKEOFF,
AirportBlock::TaxiwayBusy, 1 }, { 0,
TO_ALL, {}, 1 },
458 { 1,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 1,
HANGAR, {}, 0 }, { 1,
TAKEOFF, {}, 11 }, { 1,
TERM1,
AirportBlock::TaxiwayBusy, 10 }, { 1,
TERM2,
AirportBlock::TaxiwayBusy, 10 }, { 1,
TERM3,
AirportBlock::TaxiwayBusy, 10 }, { 1,
HELIPAD1,
AirportBlock::TaxiwayBusy, 10 }, { 1,
HELIPAD2,
AirportBlock::TaxiwayBusy, 10 }, { 1,
HELITAKEOFF,
AirportBlock::TaxiwayBusy, 37 }, { 1,
TO_ALL, {}, 0 },
459 { 2,
TERMGROUP,
AirportBlock::AirportEntrance, 2 }, { 2,
HANGAR, {}, 8 }, { 2,
TERM1, {}, 8 }, { 2,
TERM2, {}, 8 }, { 2,
TERM3, {}, 8 }, { 2,
HELIPAD1, {}, 8 }, { 2,
HELIPAD2, {}, 8 }, { 2,
HELITAKEOFF, {}, 8 }, { 2,
TO_ALL, {}, 2 },
460 { 3,
TERM1,
AirportBlock::Term1, 8 }, { 3,
HANGAR, {}, 8 }, { 3,
TAKEOFF, {}, 8 }, { 3,
TO_ALL, {}, 3 },
461 { 4,
TERM2,
AirportBlock::Term2, 9 }, { 4,
HANGAR, {}, 9 }, { 4,
TAKEOFF, {}, 9 }, { 4,
TO_ALL, {}, 4 },
462 { 5,
TERM3,
AirportBlock::Term3, 10 }, { 5,
HANGAR, {}, 10 }, { 5,
TAKEOFF, {}, 10 }, { 5,
TO_ALL, {}, 5 },
463 { 6,
HELIPAD1,
AirportBlock::Helipad1, 6 }, { 6,
HANGAR,
AirportBlock::TaxiwayBusy, 9 }, { 6,
HELITAKEOFF, {}, 35 },
464 { 7,
HELIPAD2,
AirportBlock::Helipad2, 7 }, { 7,
HANGAR,
AirportBlock::TaxiwayBusy, 10 }, { 7,
HELITAKEOFF, {}, 36 },
465 { 8,
TERMGROUP,
AirportBlock::TaxiwayBusy, 8 }, { 8,
TAKEOFF,
AirportBlock::TaxiwayBusy, 9 }, { 8,
HANGAR,
AirportBlock::TaxiwayBusy, 9 }, { 8,
TERM1,
AirportBlock::Term1, 3 }, { 8,
TO_ALL,
AirportBlock::TaxiwayBusy, 9 },
466 { 9,
TERMGROUP,
AirportBlock::TaxiwayBusy, 9 }, { 9,
TAKEOFF,
AirportBlock::TaxiwayBusy, 10 }, { 9,
HANGAR,
AirportBlock::TaxiwayBusy, 10 }, { 9,
TERM2,
AirportBlock::Term2, 4 }, { 9,
HELIPAD1,
AirportBlock::Helipad1, 6 }, { 9,
HELITAKEOFF,
AirportBlock::Helipad1, 6 }, { 9,
TERM1,
AirportBlock::TaxiwayBusy, 8 }, { 9,
TO_ALL,
AirportBlock::TaxiwayBusy, 10 },
467 { 10,
TERMGROUP,
AirportBlock::TaxiwayBusy, 10 }, { 10,
TERM3,
AirportBlock::Term3, 5 }, { 10,
HELIPAD1, {}, 9 }, { 10,
HELIPAD2,
AirportBlock::Helipad2, 7 }, { 10,
HELITAKEOFF, {}, 1 }, { 10,
TAKEOFF,
AirportBlock::TaxiwayBusy, 1 }, { 10,
HANGAR,
AirportBlock::TaxiwayBusy, 1 }, { 10,
TO_ALL,
AirportBlock::TaxiwayBusy, 9 },
475 { 16,
FLYING,
AirportBlock::Nothing, 21 }, { 16,
LANDING,
AirportBlock::InWay, 17 }, { 16,
HELILANDING, {}, 25 },
487 { 26,
HELIENDLANDING,
AirportBlock::PreHelipad, 26 }, { 26,
HELIPAD1, {}, 27 }, { 26,
HELIPAD2, {}, 28 }, { 26,
HANGAR, {}, 33 },
505static const uint8_t _airport_terminal_city[] = { 1, 3 };
506static const uint8_t _airport_entries_city[] = {26, 29, 27, 28};
508 { 0,
HANGAR,
AirportBlock::Nothing, 1 }, { 0,
TAKEOFF,
AirportBlock::OutWay, 1 }, { 0,
TO_ALL, {}, 1 },
509 { 1,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 1,
HANGAR, {}, 0 }, { 1,
TERM2, {}, 6 }, { 1,
TERM3, {}, 6 }, { 1,
TO_ALL, {}, 7 },
510 { 2,
TERM1,
AirportBlock::Term1, 7 }, { 2,
TAKEOFF,
AirportBlock::OutWay, 7 }, { 2,
TO_ALL, {}, 7 },
511 { 3,
TERM2,
AirportBlock::Term2, 5 }, { 3,
TAKEOFF,
AirportBlock::OutWay, 6 }, { 3,
TO_ALL, {}, 6 },
512 { 4,
TERM3,
AirportBlock::Term3, 5 }, { 4,
TAKEOFF,
AirportBlock::OutWay, 5 }, { 4,
TO_ALL, {}, 5 },
513 { 5,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 5,
TERM2,
AirportBlock::Term2, 3 }, { 5,
TERM3,
AirportBlock::Term3, 4 }, { 5,
TO_ALL, {}, 6 },
514 { 6,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 6,
TERM2,
AirportBlock::Term2, 3 }, { 6,
TERM3, {}, 5 }, { 6,
HANGAR, {}, 1 }, { 6,
TO_ALL, {}, 7 },
515 { 7,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 7,
TERM1,
AirportBlock::Term1, 2 }, { 7,
TAKEOFF,
AirportBlock::OutWay, 8 }, { 7,
HELITAKEOFF, {}, 22 }, { 7,
HANGAR, {}, 1 }, { 7,
TO_ALL, {}, 6 },
523 { 13,
FLYING,
AirportBlock::Nothing, 18 }, { 13,
LANDING, {}, 14 }, { 13,
HELILANDING, {}, 23 },
546static const uint8_t _airport_terminal_metropolitan[] = { 1, 3 };
547static const uint8_t _airport_entries_metropolitan[] = {20, 19, 22, 21};
550 { 1,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 1,
HANGAR, {}, 0 }, { 1,
TERM2, {}, 6 }, { 1,
TERM3, {}, 6 }, { 1,
TO_ALL, {}, 7 },
554 { 5,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 5,
TERM2,
AirportBlock::Term2, 3 }, { 5,
TERM3,
AirportBlock::Term3, 4 }, { 5,
TO_ALL, {}, 6 },
555 { 6,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 6,
TERM2,
AirportBlock::Term2, 3 }, { 6,
TERM3, {}, 5 }, { 6,
HANGAR, {}, 1 }, { 6,
TO_ALL, {}, 7 },
556 { 7,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 7,
TERM1,
AirportBlock::Term1, 2 }, { 7,
TAKEOFF, {}, 8 }, { 7,
HELITAKEOFF, {}, 23 }, { 7,
HANGAR, {}, 1 }, { 7,
TO_ALL, {}, 6 },
564 { 13,
FLYING,
AirportBlock::Nothing, 19 }, { 13,
LANDING, {}, 14 }, { 13,
HELILANDING, {}, 25 },
580 { 27,
TERMGROUP,
AirportBlock::TaxiwayBusy, 27 }, { 27,
TERM1,
AirportBlock::Term1, 2 }, { 27,
TO_ALL, {}, 7 },
585static const uint8_t _airport_terminal_international[] = { 2, 3, 3 };
586static const uint8_t _airport_entries_international[] = { 38, 37, 40, 39 };
588 { 0,
HANGAR,
AirportBlock::Nothing, 2 }, { 0,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 0,
TERMGROUP,
AirportBlock::TermGroup2Enter1, 1 }, { 0,
HELITAKEOFF,
AirportBlock::AirportEntrance, 2 }, { 0,
TO_ALL, {}, 2 },
589 { 1,
HANGAR,
AirportBlock::Nothing, 3 }, { 1,
TERMGROUP,
AirportBlock::Hangar2Area, 1 }, { 1,
HELITAKEOFF,
AirportBlock::Hangar2Area, 3 }, { 1,
TO_ALL, {}, 3 },
590 { 2,
TERMGROUP,
AirportBlock::AirportEntrance, 0 }, { 2,
HANGAR, {}, 0 }, { 2,
TERM4, {}, 12 }, { 2,
TERM5, {}, 12 }, { 2,
TERM6, {}, 12 }, { 2,
HELIPAD1, {}, 12 }, { 2,
HELIPAD2, {}, 12 }, { 2,
HELITAKEOFF, {}, 51 }, { 2,
TO_ALL, {}, 23 },
591 { 3,
TERMGROUP,
AirportBlock::Hangar2Area, 0 }, { 3,
HANGAR, {}, 1 }, { 3,
HELITAKEOFF, {}, 52 }, { 3,
TO_ALL, {}, 18 },
592 { 4,
TERM1,
AirportBlock::Term1, 23 }, { 4,
HANGAR,
AirportBlock::AirportEntrance, 23 }, { 4,
TO_ALL, {}, 23 },
593 { 5,
TERM2,
AirportBlock::Term2, 24 }, { 5,
HANGAR,
AirportBlock::AirportEntrance, 24 }, { 5,
TO_ALL, {}, 24 },
594 { 6,
TERM3,
AirportBlock::Term3, 25 }, { 6,
HANGAR,
AirportBlock::AirportEntrance, 25 }, { 6,
TO_ALL, {}, 25 },
595 { 7,
TERM4,
AirportBlock::Term4, 16 }, { 7,
HANGAR,
AirportBlock::Hangar2Area, 16 }, { 7,
TO_ALL, {}, 16 },
596 { 8,
TERM5,
AirportBlock::Term5, 17 }, { 8,
HANGAR,
AirportBlock::Hangar2Area, 17 }, { 8,
TO_ALL, {}, 17 },
597 { 9,
TERM6,
AirportBlock::Term6, 18 }, { 9,
HANGAR,
AirportBlock::Hangar2Area, 18 }, { 9,
TO_ALL, {}, 18 },
598 { 10,
HELIPAD1,
AirportBlock::Helipad1, 10 }, { 10,
HANGAR,
AirportBlock::Hangar2Area, 16 }, { 10,
HELITAKEOFF, {}, 47 },
599 { 11,
HELIPAD2,
AirportBlock::Helipad2, 11 }, { 11,
HANGAR,
AirportBlock::Hangar2Area, 17 }, { 11,
HELITAKEOFF, {}, 48 },
604 { 16,
TERMGROUP,
AirportBlock::TermGroup2, 0 }, { 16,
TERM4,
AirportBlock::Term4, 7 }, { 16,
HELIPAD1,
AirportBlock::Helipad1, 10 }, { 16,
HELITAKEOFF,
AirportBlock::Helipad1, 10 }, { 16,
TO_ALL, {}, 17 },
605 { 17,
TERMGROUP,
AirportBlock::TermGroup2, 0 }, { 17,
TERM5,
AirportBlock::Term5, 8 }, { 17,
TERM4, {}, 16 }, { 17,
HELIPAD1, {}, 16 }, { 17,
HELIPAD2,
AirportBlock::Helipad2, 11 }, { 17,
HELITAKEOFF,
AirportBlock::Helipad2, 11 }, { 17,
TO_ALL, {}, 18 },
606 { 18,
TERMGROUP,
AirportBlock::TermGroup2, 0 }, { 18,
TERM6,
AirportBlock::Term6, 9 }, { 18,
TAKEOFF, {}, 19 }, { 18,
HANGAR,
AirportBlock::Hangar2Area, 3 }, { 18,
TO_ALL, {}, 17 },
611 { 23,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 23,
TERM1,
AirportBlock::Term1, 4 }, { 23,
HANGAR,
AirportBlock::AirportEntrance, 2 }, { 23,
TO_ALL, {}, 24 },
612 { 24,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 24,
TERM2,
AirportBlock::Term2, 5 }, { 24,
TERM1, {}, 23 }, { 24,
HANGAR, {}, 23 }, { 24,
TO_ALL, {}, 25 },
613 { 25,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 25,
TERM3,
AirportBlock::Term3, 6 }, { 25,
TAKEOFF, {}, 26 }, { 25,
TO_ALL, {}, 24 },
614 { 26,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 26,
TAKEOFF, {}, 27 }, { 26,
TO_ALL, {}, 25 },
622 { 32,
FLYING,
AirportBlock::Nothing, 37 }, { 32,
LANDING, {}, 33 }, { 32,
HELILANDING, {}, 41 },
626 { 36,
ENDLANDING,
AirportBlock::InWay, 36 }, { 36,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 36,
TERMGROUP,
AirportBlock::TermGroup2Enter1, 1 }, { 36,
TERM4, {}, 12 }, { 36,
TERM5, {}, 12 }, { 36,
TERM6, {}, 12 }, { 36,
TO_ALL, {}, 2 },
634 { 42,
HELIENDLANDING,
AirportBlock::PreHelipad, 42 }, { 42,
HELIPAD1, {}, 43 }, { 42,
HELIPAD2, {}, 44 }, { 42,
HANGAR, {}, 49 },
652static const uint8_t _airport_terminal_intercontinental[] = { 2, 4, 4 };
653static const uint8_t _airport_entries_intercontinental[] = { 44, 43, 46, 45 };
655 { 0,
HANGAR,
AirportBlock::Nothing, 2 }, { 0,
TERMGROUP, {
AirportBlock::Hangar1Area,
AirportBlock::TermGroup1}, 0 }, { 0,
TERMGROUP, {
AirportBlock::Hangar1Area,
AirportBlock::TermGroup1}, 1 }, { 0,
TAKEOFF, {
AirportBlock::Hangar1Area,
AirportBlock::TermGroup1}, 2 }, { 0,
TO_ALL, {}, 2 },
656 { 1,
HANGAR,
AirportBlock::Nothing, 3 }, { 1,
TERMGROUP,
AirportBlock::Hangar2Area, 1 }, { 1,
TERMGROUP,
AirportBlock::Hangar2Area, 0 }, { 1,
TO_ALL, {}, 3 },
657 { 2,
TERMGROUP,
AirportBlock::Hangar1Area, 0 }, { 2,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 2,
TERMGROUP,
AirportBlock::TermGroup1, 1 }, { 2,
HANGAR, {}, 0 }, { 2,
TAKEOFF,
AirportBlock::TermGroup1, 27 }, { 2,
TERM5, {}, 26 }, { 2,
TERM6, {}, 26 }, { 2,
TERM7, {}, 26 }, { 2,
TERM8, {}, 26 }, { 2,
HELIPAD1, {}, 26 }, { 2,
HELIPAD2, {}, 26 }, { 2,
HELITAKEOFF, {}, 74 }, { 2,
TO_ALL, {}, 27 },
658 { 3,
TERMGROUP,
AirportBlock::Hangar2Area, 0 }, { 3,
HANGAR, {}, 1 }, { 3,
HELITAKEOFF, {}, 75 }, {3,
TAKEOFF, {}, 59}, { 3,
TO_ALL, {}, 20 },
659 { 4,
TERM1,
AirportBlock::Term1, 26 }, { 4,
HANGAR, {
AirportBlock::Hangar1Area,
AirportBlock::TermGroup1}, 26 }, { 4,
TO_ALL, {}, 26 },
660 { 5,
TERM2,
AirportBlock::Term2, 27 }, { 5,
HANGAR, {
AirportBlock::Hangar1Area,
AirportBlock::TermGroup1}, 27 }, { 5,
TO_ALL, {}, 27 },
661 { 6,
TERM3,
AirportBlock::Term3, 28 }, { 6,
HANGAR, {
AirportBlock::Hangar1Area,
AirportBlock::TermGroup1}, 28 }, { 6,
TO_ALL, {}, 28 },
662 { 7,
TERM4,
AirportBlock::Term4, 29 }, { 7,
HANGAR, {
AirportBlock::Hangar1Area,
AirportBlock::TermGroup1}, 29 }, { 7,
TO_ALL, {}, 29 },
663 { 8,
TERM5,
AirportBlock::Term5, 18 }, { 8,
HANGAR,
AirportBlock::Hangar2Area, 18 }, { 8,
TO_ALL, {}, 18 },
664 { 9,
TERM6,
AirportBlock::Term6, 19 }, { 9,
HANGAR,
AirportBlock::Hangar2Area, 19 }, { 9,
TO_ALL, {}, 19 },
665 { 10,
TERM7,
AirportBlock::Term7, 20 }, { 10,
HANGAR,
AirportBlock::Hangar2Area, 20 }, { 10,
TO_ALL, {}, 20 },
666 { 11,
TERM8,
AirportBlock::Term8, 21 }, { 11,
HANGAR,
AirportBlock::Hangar2Area, 21 }, { 11,
TO_ALL, {}, 21 },
667 { 12,
HELIPAD1,
AirportBlock::Helipad1, 12 }, { 12,
HANGAR, {}, 70 }, { 12,
HELITAKEOFF, {}, 72 },
668 { 13,
HELIPAD2,
AirportBlock::Helipad2, 13 }, { 13,
HANGAR, {}, 71 }, { 13,
HELITAKEOFF, {}, 73 },
673 { 18,
TERMGROUP,
AirportBlock::TermGroup2, 0 }, { 18,
TERM5,
AirportBlock::Term5, 8 }, { 18,
TAKEOFF, {}, 19 }, { 18,
HELITAKEOFF,
AirportBlock::Helipad1, 19 }, { 18,
TO_ALL,
AirportBlock::TermGroup2Exit1, 19 },
674 { 19,
TERMGROUP,
AirportBlock::TermGroup2, 0 }, { 19,
TERM6,
AirportBlock::Term6, 9 }, { 19,
TERM5, {}, 18 }, { 19,
TAKEOFF, {}, 57 }, { 19,
HELITAKEOFF,
AirportBlock::Helipad1, 20 }, { 19,
TO_ALL,
AirportBlock::TermGroup2Exit1, 20 },
675 { 20,
TERMGROUP,
AirportBlock::TermGroup2, 0 }, { 20,
TERM7,
AirportBlock::Term7, 10 }, { 20,
TERM5, {}, 19 }, { 20,
TERM6, {}, 19 }, { 20,
HANGAR,
AirportBlock::Hangar2Area, 3 }, { 20,
TAKEOFF, {}, 19 }, { 20,
TO_ALL,
AirportBlock::TermGroup2Exit1, 21 },
676 { 21,
TERMGROUP,
AirportBlock::TermGroup2, 0 }, { 21,
TERM8,
AirportBlock::Term8, 11 }, { 21,
HANGAR,
AirportBlock::Hangar2Area, 20 }, { 21,
TERM5, {}, 20 }, { 21,
TERM6, {}, 20 }, { 21,
TERM7, {}, 20 }, { 21,
TAKEOFF, {}, 20 }, { 21,
TO_ALL,
AirportBlock::TermGroup2Exit1, 22 },
677 { 22,
TERMGROUP,
AirportBlock::TermGroup2, 0 }, { 22,
HANGAR, {}, 21 }, { 22,
TERM5, {}, 21 }, { 22,
TERM6, {}, 21 }, { 22,
TERM7, {}, 21 }, { 22,
TERM8, {}, 21 }, { 22,
TAKEOFF, {}, 21 }, { 22,
TO_ALL, {}, 23 },
680 { 25,
TERMGROUP,
AirportBlock::TermGroup2Exit2, 0 }, { 25,
HANGAR, {
AirportBlock::Hangar1Area,
AirportBlock::TermGroup1}, 29 }, { 25,
TO_ALL, {}, 29 },
681 { 26,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 26,
TERM1,
AirportBlock::Term1, 4 }, { 26,
HANGAR,
AirportBlock::Hangar1Area, 27 }, { 26,
TERM5,
AirportBlock::TermGroup2Enter1, 14 }, { 26,
TERM6,
AirportBlock::TermGroup2Enter1, 14 }, { 26,
TERM7,
AirportBlock::TermGroup2Enter1, 14 }, { 26,
TERM8,
AirportBlock::TermGroup2Enter1, 14 }, { 26,
HELIPAD1,
AirportBlock::TermGroup2Enter1, 14 }, { 26,
HELIPAD2,
AirportBlock::TermGroup2Enter1, 14 }, { 26,
HELITAKEOFF,
AirportBlock::TermGroup2Enter1, 14 }, { 26,
TO_ALL, {}, 27 },
682 { 27,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 27,
TERM2,
AirportBlock::Term2, 5 }, { 27,
HANGAR,
AirportBlock::Hangar1Area, 2 }, { 27,
TERM1, {}, 26 }, { 27,
TERM5, {}, 26 }, { 27,
TERM6, {}, 26 }, { 27,
TERM7, {}, 26 }, { 27,
TERM8, {}, 26 }, { 27,
HELIPAD1, {}, 14 }, { 27,
HELIPAD2, {}, 14 }, { 27,
TO_ALL, {}, 28 },
683 { 28,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 28,
TERM3,
AirportBlock::Term3, 6 }, { 28,
HANGAR,
AirportBlock::Hangar1Area, 27 }, { 28,
TERM1, {}, 27 }, { 28,
TERM2, {}, 27 }, { 28,
TERM4, {}, 29 }, { 28,
TERM5, {}, 14 }, { 28,
TERM6, {}, 14 }, { 28,
TERM7, {}, 14 }, { 28,
TERM8, {}, 14 }, { 28,
HELIPAD1, {}, 14 }, { 28,
HELIPAD2, {}, 14 }, { 28,
TO_ALL, {}, 29 },
684 { 29,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 29,
TERM4,
AirportBlock::Term4, 7 }, { 29,
HANGAR,
AirportBlock::Hangar1Area, 27 }, { 29,
TAKEOFF, {}, 30 }, { 29,
TO_ALL, {}, 28 },
699 { 42,
TERMGROUP,
AirportBlock::InWay, 0 }, { 42,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 42,
TERMGROUP,
AirportBlock::TermGroup1, 1 }, { 42,
HANGAR, {}, 2 }, { 42,
TO_ALL, {}, 26 },
702 { 44,
FLYING, {}, 45 }, { 44,
HELILANDING, {}, 47 }, { 44,
LANDING, {}, 69 }, { 44,
TO_ALL, {}, 45 },
704 { 46,
FLYING, {}, 43 }, { 46,
LANDING, {}, 76 }, { 46,
TO_ALL, {}, 43 },
707 { 48,
HELIENDLANDING,
AirportBlock::PreHelipad, 48 }, { 48,
HELIPAD1, {}, 49 }, { 48,
HELIPAD2, {}, 50 }, { 48,
HANGAR, {}, 55 },
711 { 51,
TERMGROUP,
AirportBlock::Nothing, 0 }, { 51,
HELIPAD1,
AirportBlock::Helipad1, 12 }, { 51,
HANGAR, {}, 55 }, { 51,
TO_ALL, {}, 12 },
712 { 52,
TERMGROUP,
AirportBlock::Nothing, 0 }, { 52,
HELIPAD2,
AirportBlock::Helipad2, 13 }, { 52,
HANGAR, {}, 55 }, { 52,
TO_ALL, {}, 13 },
719 { 57,
TERMGROUP,
AirportBlock::OutWay2, 0 }, { 57,
TAKEOFF, {}, 58 }, { 57,
TO_ALL, {}, 58 },
729 { 66,
ENDLANDING,
AirportBlock::RunwayIn2, 0 }, { 66,
TERMGROUP, {}, 1 }, { 66,
TERMGROUP, {}, 0 }, { 66,
TO_ALL, {}, 67 },
731 { 68,
TERMGROUP,
AirportBlock::InWay2, 0 }, { 68,
TERMGROUP,
AirportBlock::TermGroup2, 1 }, { 68,
TERMGROUP,
AirportBlock::TermGroup1, 0 }, { 68,
HANGAR,
AirportBlock::Hangar2Area, 22 }, { 68,
TO_ALL, {}, 22 },
733 { 70,
TERMGROUP,
AirportBlock::TermGroup2Exit1, 0 }, { 70,
HELIPAD1,
AirportBlock::Helipad1, 12 }, { 70,
HELITAKEOFF,
AirportBlock::Helipad1, 12 }, { 70,
TO_ALL, {}, 71 },
734 { 71,
TERMGROUP,
AirportBlock::TermGroup2Exit1, 0 }, { 71,
HELIPAD2,
AirportBlock::Helipad2, 13 }, { 71,
HELITAKEOFF,
AirportBlock::Helipad1, 12 }, { 71,
TO_ALL, {}, 24 },
745static const uint8_t _airport_entries_heliport[] = { 7, 7, 7, 7 };
749 { 2,
TERMGROUP,
AirportBlock::AirportBusy, 0 }, { 2,
HELILANDING, {}, 3 }, { 2,
HELITAKEOFF, {}, 1 },
751 { 4,
HELIENDLANDING,
AirportBlock::AirportBusy, 4 }, { 4,
HELIPAD1,
AirportBlock::Helipad1, 0 }, { 4,
HELITAKEOFF, {}, 2 },
759#define _airport_entries_oilrig _airport_entries_heliport
760#define _airport_fta_oilrig _airport_fta_heliport
764static const uint8_t _airport_entries_helidepot[] = { 4, 4, 4, 4 };
767 { 1,
TERMGROUP,
AirportBlock::Hangar2Area, 0 }, { 1,
HANGAR, {}, 0 }, { 1,
HELIPAD1,
AirportBlock::Helipad1, 14 }, { 1,
HELITAKEOFF, {}, 15 }, { 1,
TO_ALL, {}, 0 },
768 { 2,
FLYING,
AirportBlock::Nothing, 3 }, { 2,
HELILANDING,
AirportBlock::PreHelipad, 7 }, { 2,
HANGAR, {}, 12 }, { 2,
HELITAKEOFF,
AirportBlock::Nothing, 16 },
776 { 8,
HELIENDLANDING,
AirportBlock::PreHelipad, 8 }, { 8,
HELIPAD1, {}, 9 }, { 8,
HANGAR, {}, 12 }, { 8,
TO_ALL, {}, 2 },
779 { 10,
TERMGROUP,
AirportBlock::Nothing, 10 }, { 10,
HELIPAD1,
AirportBlock::Helipad1, 14 }, { 10,
HANGAR, {}, 1 }, { 10,
TO_ALL, {}, 14 },
784 { 14,
HELIPAD1,
AirportBlock::Helipad1, 14 }, { 14,
HANGAR, {}, 1 }, { 14,
HELITAKEOFF, {}, 17 },
793static const uint8_t _airport_entries_helistation[] = { 25, 25, 25, 25 };
795 { 0,
HANGAR,
AirportBlock::Nothing, 8 }, { 0,
HELIPAD1, {}, 1 }, { 0,
HELIPAD2, {}, 1 }, { 0,
HELIPAD3, {}, 1 }, { 0,
HELITAKEOFF, {}, 1 }, { 0,
TO_ALL, {}, 0 },
796 { 1,
TERMGROUP,
AirportBlock::Hangar2Area, 0 }, { 1,
HANGAR, {}, 0 }, { 1,
HELITAKEOFF, {}, 3 }, { 1,
TO_ALL, {}, 4 },
798 { 2,
FLYING,
AirportBlock::Nothing, 28 }, { 2,
HELILANDING, {}, 15 }, { 2,
TO_ALL, {}, 28 },
801 { 4,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 4,
HANGAR,
AirportBlock::Hangar2Area, 1 }, { 4,
HELITAKEOFF, {}, 1 }, { 4,
TO_ALL, {}, 5 },
802 { 5,
TERMGROUP,
AirportBlock::TaxiwayBusy, 0 }, { 5,
HELIPAD1,
AirportBlock::Helipad1, 6 }, { 5,
HELIPAD2,
AirportBlock::Helipad2, 7 }, { 5,
HELIPAD3,
AirportBlock::Helipad3, 8 }, { 5,
TO_ALL, {}, 4 },
803 { 6,
HELIPAD1,
AirportBlock::Helipad1, 5 }, { 6,
HANGAR,
AirportBlock::Hangar2Area, 5 }, { 6,
HELITAKEOFF, {}, 9 }, { 6,
TO_ALL, {}, 6 },
804 { 7,
HELIPAD2,
AirportBlock::Helipad2, 5 }, { 7,
HANGAR,
AirportBlock::Hangar2Area, 5 }, { 7,
HELITAKEOFF, {}, 10 }, { 7,
TO_ALL, {}, 7 },
805 { 8,
HELIPAD3,
AirportBlock::Helipad3, 5 }, { 8,
HANGAR,
AirportBlock::Hangar2Area, 5 }, { 8,
HELITAKEOFF, {}, 11 }, { 8,
TO_ALL, {}, 8 },
814 { 16,
HELIENDLANDING,
AirportBlock::PreHelipad, 16 }, { 16,
HELIPAD1, {}, 17 }, { 16,
HELIPAD2, {}, 18 }, { 16,
HELIPAD3, {}, 19 }, { 16,
HANGAR, {}, 23 },
819 { 20,
TERMGROUP,
AirportBlock::Nothing, 0 }, { 20,
HELIPAD1,
AirportBlock::Helipad1, 6 }, { 20,
HANGAR, {}, 23 }, { 20,
TO_ALL, {}, 6 },
820 { 21,
TERMGROUP,
AirportBlock::Nothing, 0 }, { 21,
HELIPAD2,
AirportBlock::Helipad2, 7 }, { 21,
HANGAR, {}, 23 }, { 21,
TO_ALL, {}, 7 },
821 { 22,
TERMGROUP,
AirportBlock::Nothing, 0 }, { 22,
HELIPAD3,
AirportBlock::Helipad3, 8 }, { 22,
HANGAR, {}, 23 }, { 22,
TO_ALL, {}, 8 },
static const uint MAX_ELEMENTS
maximum number of aircraft positions at airport
@ TermGroup2Enter2
Second holding point before terminal.
@ RunwayOut
Runway used for take off.
@ AirportBusy
Complete airport is busy (small airport / heliport).
@ Term2
Block belonging to terminal 2.
@ RunwayIn
Runway used for landing (metropolitan / international / intercontinental airports).
@ Term5
Block belonging to terminal 5.
@ TermGroup2
Second set of terminals.
@ InWay
Holding point just after take off.
@ Term6
Block belonging to terminal 6.
@ Term4
Block belonging to terminal 4.
@ TermGroup2Enter1
First holding point before terminal.
@ Helipad3
Block belonging to helipad 3.
@ Term7
Block belonging to terminal 7.
@ Helipad1
Block belonging to helipad 1.
@ TermGroup1
First set of terminals.
@ Term3
Block belonging to terminal 3.
@ RunwayInOut
Runway used for landing and take-off (commuter / city airports).
@ InWay2
Second holding point just after take off.
@ Term1
Block belonging to terminal 1.
@ RunwayIn2
Second runway for landing.
@ TermGroup2Exit2
Second holding point after terminal.
@ TaxiwayBusy
Taxiway is occupied (commuter / city airports / helistation).
@ TermGroup2Exit1
First holding point after terminal.
@ PreHelipad
Holding point for helicopter landings.
@ OutWay
Holding point just before take off.
@ Hangar1Area
Area in front of the first hangar.
@ Helipad2
Block belonging to helipad 2.
@ OutWay2
Second holding point just before take off.
@ Term8
Block belonging to terminal 8.
@ AirportEntrance
Entrance point before terminals.
@ OutWay3
Third holding point just before take off.
@ Nothing
Nothing is blocked, for example being in the hanger.
@ RunwayOut2
Second runway for take off.
@ Hangar2Area
Area in front of the second hangar.
@ HeliRaise
Helicopter take-off.
@ HeliLower
Helicopter landing.
@ Land
Landing onto landing strip.
@ Takeoff
Takeoff movement.
@ SlowTurn
Turn slowly (mostly used in the air).
@ Brake
Taxiing at the airport.
@ NoSpeedClamp
No speed restrictions.
@ Hold
Holding pattern movement (above the airport).
@ ExactPosition
Go exactly to the destination coordinates.
@ HELITAKEOFF
Helicopter wants to leave the airport.
@ TERM4
Heading for terminal 4.
@ STARTTAKEOFF
Airplane has arrived at a runway for take-off.
@ HELIPAD2
Heading for helipad 2.
@ ENDTAKEOFF
Airplane has reached end-point of the take-off runway.
@ TERM5
Heading for terminal 5.
@ TERM6
Heading for terminal 6.
@ TERM3
Heading for terminal 3.
@ TERM8
Heading for terminal 8.
@ HELIPAD3
Heading for helipad 3.
@ HELIPAD1
Heading for helipad 1.
@ TERM2
Heading for terminal 2.
@ HANGAR
Heading for hangar.
@ FLYING
Vehicle is flying in the air.
@ TAKEOFF
Airplane wants to leave the airport.
@ HELILANDING
Helicopter wants to land.
@ TO_ALL
Go in this direction for every target.
@ ENDLANDING
Airplane wants to finish landing.
@ HELIENDLANDING
Helicopter wants to finish landing.
@ TERM1
Heading for terminal 1.
@ LANDING
Airplane wants to land.
@ TERM7
Heading for terminal 7.
@ TERMGROUP
Aircraft is looking for a free terminal in a terminalgroup.
static const AirportMovingData _airport_moving_data_intercontinental[77]
Intercontinental Airport - 4 runways, 8 terminals, 2 dedicated helipads.
static const AirportMovingData _airport_moving_data_commuter[38]
Commuter Airfield (small) 5x4.
static const AirportMovingData _airport_moving_data_international[53]
International Airport (international) - 2 runways, 6 terminals, dedicated helipad.
static const AirportMovingData _airport_moving_data_oilrig[9]
Oilrig.
static const AirportMovingData _airport_moving_data_dummy[]
Airport movement data creation macro.
static const AirportMovingData _airport_moving_data_country[22]
Country Airfield (small) 4x3.
static const AirportMovingData _airport_moving_data_heliport[9]
Heliport (heliport).
static const AirportMovingData _airport_moving_data_helidepot[18]
HeliDepot 2x2 (heliport).
static const AirportMovingData _airport_moving_data_helistation[33]
HeliDepot 2x2 (heliport).
static const AirportMovingData _airport_moving_data_metropolitan[28]
Metropolitan Airport (metropolitan) - 2 runways.
static const AirportMovingData _airport_moving_data_city[]
City Airport (large) 6x6.
State machine input struct (from external file, etc.) Finite sTate mAchine --> FTA.
uint8_t heading
The current orders (eg. TAKEOFF, HANGAR, ENDLANDING, etc.).
AirportBlocks blocks
The block this position is on on the airport (st->airport.flags).
uint8_t next
Next position from this position.
uint8_t position
The position that an airplane is at.
A single location on an airport where aircraft can move to.
A list of all hangar tiles in an airport.