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};
425 { 0,
HANGAR, AirportBlock::Nothing, 1 },
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 },
431 { 6,
TO_ALL, AirportBlock::AirportBusy, 7 },
433 { 7,
TAKEOFF, AirportBlock::AirportBusy, 8 },
437 { 10,
FLYING, AirportBlock::Nothing, 15 }, { 10,
LANDING, {}, 11 }, { 10,
HELILANDING, {}, 20 },
438 { 11,
LANDING, AirportBlock::AirportBusy, 12 },
439 { 12,
TO_ALL, AirportBlock::AirportBusy, 13 },
440 { 13,
ENDLANDING, AirportBlock::AirportBusy, 14 }, { 13,
TERM2, {}, 5 }, { 13,
TO_ALL, {}, 14 },
441 { 14,
TO_ALL, AirportBlock::AirportBusy, 1 },
443 { 15,
TO_ALL, AirportBlock::Nothing, 16 },
444 { 16,
TO_ALL, AirportBlock::Nothing, 17 },
445 { 17,
TO_ALL, AirportBlock::Nothing, 18 },
446 { 18,
TO_ALL, AirportBlock::Nothing, 10 },
448 { 20,
HELILANDING, AirportBlock::AirportBusy, 21 },
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 },
468 { 11,
TO_ALL, AirportBlock::OutWay, 12 },
470 { 12,
TAKEOFF, AirportBlock::RunwayInOut, 13 },
471 { 13,
TO_ALL, AirportBlock::RunwayInOut, 14 },
475 { 16,
FLYING, AirportBlock::Nothing, 21 }, { 16,
LANDING, AirportBlock::InWay, 17 }, { 16,
HELILANDING, {}, 25 },
476 { 17,
LANDING, AirportBlock::RunwayInOut, 18 },
477 { 18,
TO_ALL, AirportBlock::RunwayInOut, 19 },
478 { 19,
TO_ALL, AirportBlock::RunwayInOut, 20 },
481 { 21,
TO_ALL, AirportBlock::Nothing, 22 },
482 { 22,
TO_ALL, AirportBlock::Nothing, 23 },
483 { 23,
TO_ALL, AirportBlock::Nothing, 24 },
484 { 24,
TO_ALL, AirportBlock::Nothing, 16 },
487 { 26,
HELIENDLANDING, AirportBlock::PreHelipad, 26 }, { 26,
HELIPAD1, {}, 27 }, { 26,
HELIPAD2, {}, 28 }, { 26,
HANGAR, {}, 33 },
488 { 27,
TO_ALL, AirportBlock::Nothing, 29 },
489 { 28,
TO_ALL, AirportBlock::Nothing, 30 },
496 { 33,
TO_ALL, AirportBlock::TaxiwayBusy, 34 },
497 { 34,
TO_ALL, AirportBlock::TaxiwayBusy, 1 },
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 },
516 { 8,
TO_ALL, AirportBlock::OutWay, 9 },
517 { 9,
TO_ALL, AirportBlock::RunwayInOut, 10 },
519 { 10,
TAKEOFF, AirportBlock::RunwayInOut, 11 },
523 { 13,
FLYING, AirportBlock::Nothing, 18 }, { 13,
LANDING, {}, 14 }, { 13,
HELILANDING, {}, 23 },
524 { 14,
LANDING, AirportBlock::RunwayInOut, 15 },
525 { 15,
TO_ALL, AirportBlock::RunwayInOut, 17 },
526 { 16,
TO_ALL, AirportBlock::RunwayInOut, 17 },
529 { 18,
TO_ALL, AirportBlock::Nothing, 25 },
530 { 19,
TO_ALL, AirportBlock::Nothing, 20 },
531 { 20,
TO_ALL, AirportBlock::Nothing, 21 },
532 { 21,
TO_ALL, AirportBlock::Nothing, 13 },
537 { 25,
TO_ALL, AirportBlock::Nothing, 20},
538 { 26,
TO_ALL, AirportBlock::Nothing, 19},
539 { 27,
TO_ALL, AirportBlock::Nothing, 28},
540 { 28,
TO_ALL, AirportBlock::Nothing, 19},
541 { 29,
TO_ALL, AirportBlock::Nothing, 26},
546static const uint8_t _airport_terminal_metropolitan[] = { 1, 3 };
547static const uint8_t _airport_entries_metropolitan[] = {20, 19, 22, 21};
549 { 0,
HANGAR, AirportBlock::Nothing, 1 },
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 },
557 { 8, 0, AirportBlock::OutWay, 9 },
558 { 9, 0, AirportBlock::RunwayOut, 10 },
560 { 10,
TAKEOFF, AirportBlock::RunwayOut, 11 },
564 { 13,
FLYING, AirportBlock::Nothing, 19 }, { 13,
LANDING, {}, 14 }, { 13,
HELILANDING, {}, 25 },
565 { 14,
LANDING, AirportBlock::RunwayIn, 15 },
566 { 15,
TO_ALL, AirportBlock::RunwayIn, 16 },
568 { 17,
TERMGROUP, AirportBlock::RunwayOut, 0 }, { 17,
ENDLANDING, AirportBlock::InWay, 18 },
571 { 19,
TO_ALL, AirportBlock::Nothing, 20 },
572 { 20,
TO_ALL, AirportBlock::Nothing, 21 },
573 { 21,
TO_ALL, AirportBlock::Nothing, 22 },
574 { 22,
TO_ALL, AirportBlock::Nothing, 13 },
576 { 23,
TO_ALL, AirportBlock::Nothing, 24 },
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 },
600 { 12,
TO_ALL, AirportBlock::TermGroup2Enter1, 13 },
601 { 13,
TO_ALL, AirportBlock::TermGroup2Enter1, 14 },
602 { 14,
TO_ALL, AirportBlock::TermGroup2Enter2, 15 },
603 { 15,
TO_ALL, AirportBlock::TermGroup2Enter2, 16 },
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 },
607 { 19,
TO_ALL, AirportBlock::TermGroup2Exit1, 20 },
608 { 20,
TO_ALL, AirportBlock::TermGroup2Exit1, 21 },
609 { 21,
TO_ALL, AirportBlock::TermGroup2Exit2, 22 },
610 { 22,
TO_ALL, AirportBlock::TermGroup2Exit2, 26 },
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 },
615 { 27,
TO_ALL, AirportBlock::OutWay, 28 },
617 { 28,
TAKEOFF, AirportBlock::OutWay, 29 },
618 { 29,
TO_ALL, AirportBlock::RunwayOut, 30 },
622 { 32,
FLYING, AirportBlock::Nothing, 37 }, { 32,
LANDING, {}, 33 }, { 32,
HELILANDING, {}, 41 },
623 { 33,
LANDING, AirportBlock::RunwayIn, 34 },
624 { 34,
TO_ALL, AirportBlock::RunwayIn, 35 },
625 { 35,
TO_ALL, AirportBlock::RunwayIn, 36 },
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 },
628 { 37,
TO_ALL, AirportBlock::Nothing, 38 },
629 { 38,
TO_ALL, AirportBlock::Nothing, 39 },
630 { 39,
TO_ALL, AirportBlock::Nothing, 40 },
631 { 40,
TO_ALL, AirportBlock::Nothing, 32 },
634 { 42,
HELIENDLANDING, AirportBlock::PreHelipad, 42 }, { 42,
HELIPAD1, {}, 43 }, { 42,
HELIPAD2, {}, 44 }, { 42,
HANGAR, {}, 49 },
635 { 43,
TO_ALL, AirportBlock::Nothing, 45 },
636 { 44,
TO_ALL, AirportBlock::Nothing, 46 },
643 { 49,
TO_ALL, AirportBlock::Hangar2Area, 50 },
644 { 50,
TO_ALL, AirportBlock::Hangar2Area, 3 },
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 },
669 { 14,
TO_ALL, AirportBlock::TermGroup2Enter1, 15 },
670 { 15,
TO_ALL, AirportBlock::TermGroup2Enter1, 16 },
671 { 16,
TO_ALL, AirportBlock::TermGroup2Enter2, 17 },
672 { 17,
TO_ALL, AirportBlock::TermGroup2Enter2, 18 },
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 },
678 { 23,
TO_ALL, AirportBlock::TermGroup2Exit1, 70 },
679 { 24,
TO_ALL, AirportBlock::TermGroup2Exit2, 25 },
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 },
685 { 30,
TO_ALL, AirportBlock::OutWay3, 31 },
686 { 31,
TO_ALL, AirportBlock::OutWay, 32 },
688 { 32,
TAKEOFF, AirportBlock::RunwayOut, 33 },
689 { 33,
TO_ALL, AirportBlock::RunwayOut, 34 },
694 { 37,
LANDING, AirportBlock::RunwayIn, 38 },
695 { 38,
TO_ALL, AirportBlock::RunwayIn, 39 },
696 { 39,
TO_ALL, AirportBlock::RunwayIn, 40 },
697 { 40,
ENDLANDING, AirportBlock::RunwayIn, 41 },
698 { 41,
TO_ALL, AirportBlock::InWay, 42 },
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 },
708 { 49,
TO_ALL, AirportBlock::Nothing, 51 },
709 { 50,
TO_ALL, AirportBlock::Nothing, 52 },
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 },
716 { 55,
TO_ALL, AirportBlock::Hangar2Area, 56 },
717 { 56,
TO_ALL, AirportBlock::Hangar2Area, 3 },
719 { 57,
TERMGROUP, AirportBlock::OutWay2, 0 }, { 57,
TAKEOFF, {}, 58 }, { 57,
TO_ALL, {}, 58 },
720 { 58,
TO_ALL, AirportBlock::OutWay2, 59 },
726 { 63,
LANDING, AirportBlock::RunwayIn2, 64 },
727 { 64,
TO_ALL, AirportBlock::RunwayIn2, 65 },
728 { 65,
TO_ALL, AirportBlock::RunwayIn2, 66 },
729 { 66,
ENDLANDING, AirportBlock::RunwayIn2, 0 }, { 66,
TERMGROUP, {}, 1 }, { 66,
TERMGROUP, {}, 0 }, { 66,
TO_ALL, {}, 67 },
730 { 67,
TO_ALL, AirportBlock::InWay2, 68 },
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 },
732 { 69,
TERMGROUP, AirportBlock::RunwayIn2, 0 }, { 69,
TO_ALL, AirportBlock::RunwayIn2, 63 },
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 },
739 { 76,
TERMGROUP, AirportBlock::RunwayIn, 0 }, { 76,
TO_ALL, AirportBlock::RunwayIn, 37 },
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 },
753 { 5,
TO_ALL, AirportBlock::Nothing, 6 },
754 { 6,
TO_ALL, AirportBlock::Nothing, 7 },
755 { 7,
TO_ALL, AirportBlock::Nothing, 8 },
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 };
766 { 0,
HANGAR, AirportBlock::Nothing, 1 },
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 },
770 { 3,
TO_ALL, AirportBlock::Nothing, 4 },
771 { 4,
TO_ALL, AirportBlock::Nothing, 5 },
772 { 5,
TO_ALL, AirportBlock::Nothing, 6 },
773 { 6,
TO_ALL, AirportBlock::Nothing, 2 },
776 { 8,
HELIENDLANDING, AirportBlock::PreHelipad, 8 }, { 8,
HELIPAD1, {}, 9 }, { 8,
HANGAR, {}, 12 }, { 8,
TO_ALL, {}, 2 },
777 { 9,
TO_ALL, AirportBlock::Nothing, 10 },
779 { 10,
TERMGROUP, AirportBlock::Nothing, 10 }, { 10,
HELIPAD1,
AirportBlock::Helipad1, 14 }, { 10,
HANGAR, {}, 1 }, { 10,
TO_ALL, {}, 14 },
782 { 12,
TO_ALL, AirportBlock::Hangar2Area, 13 },
783 { 13,
TO_ALL, AirportBlock::Hangar2Area, 1 },
784 { 14,
HELIPAD1,
AirportBlock::Helipad1, 14 }, { 14,
HANGAR, {}, 1 }, { 14,
HELITAKEOFF, {}, 17 },
787 { 17,
TO_ALL, AirportBlock::Nothing, 11 },
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 },
815 { 17,
TO_ALL, AirportBlock::Nothing, 20 },
816 { 18,
TO_ALL, AirportBlock::Nothing, 21 },
817 { 19,
TO_ALL, AirportBlock::Nothing, 22 },
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 },
822 { 23,
TO_ALL, AirportBlock::Hangar2Area, 24 },
823 { 24,
TO_ALL, AirportBlock::Hangar2Area, 1 },
824 { 25,
TO_ALL, AirportBlock::Nothing, 26 },
825 { 26,
TO_ALL, AirportBlock::Nothing, 27 },
826 { 27,
TO_ALL, AirportBlock::Nothing, 2 },
827 { 28,
TO_ALL, AirportBlock::Nothing, 29 },
828 { 29,
TO_ALL, AirportBlock::Nothing, 30 },
829 { 30,
TO_ALL, AirportBlock::Nothing, 31 },
830 { 31,
TO_ALL, AirportBlock::Nothing, 32 },
831 { 32,
TO_ALL, AirportBlock::Nothing, 25 },
static const uint MAX_ELEMENTS
maximum number of aircraft positions at airport
@ Term2
Block belonging to terminal 2.
@ Term5
Block belonging to terminal 5.
@ Term6
Block belonging to terminal 6.
@ Term4
Block belonging to terminal 4.
@ Helipad3
Block belonging to helipad 3.
@ Term7
Block belonging to terminal 7.
@ Helipad1
Block belonging to helipad 1.
@ Term3
Block belonging to terminal 3.
@ Term1
Block belonging to terminal 1.
@ Helipad2
Block belonging to helipad 2.
@ Term8
Block belonging to terminal 8.
@ SlowTurn
Turn slowly (mostly used in the air).
@ Takeoff
Takeoff movement.
@ Land
Landing onto landing strip.
@ HeliLower
Helicopter landing.
@ Hold
Holding pattern movement (above the airport).
@ NoSpeedClamp
No speed restrictions.
@ Brake
Taxiing at the airport.
@ HeliRaise
Helicopter take-off.
@ 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.