12 #ifndef AIRPORT_MOVEMENT_H 13 #define AIRPORT_MOVEMENT_H 37 #define AMD(x, y, flags, dir) { x, y, flags, dir } 412 static const byte _airport_entries_dummy[] = {0, 1, 2, 3};
424 static const byte _airport_terminal_country[] = {1, 2};
425 static const byte _airport_entries_country[] = {16, 15, 18, 17};
427 { 0,
HANGAR, NOTHING_block, 1 },
428 { 1,
TERMGROUP, AIRPORT_BUSY_block, 0 }, { 1,
HANGAR, 0, 0 }, { 1,
TERM1,
TERM1_block, 2 }, { 1,
TERM2, 0, 4 }, { 1,
HELITAKEOFF, 0, 19 }, { 1,
TO_ALL, 0, 6 },
431 { 4,
TERMGROUP, AIRPORT_BUSY_block, 0 }, { 4,
TERM2, 0, 5 }, { 4,
HANGAR, 0, 1 }, { 4,
TAKEOFF, 0, 6 }, { 4,
HELITAKEOFF, 0, 1 },
432 { 5,
TERMGROUP, AIRPORT_BUSY_block, 0 }, { 5,
TERM2,
TERM2_block, 3 }, { 5,
TO_ALL, 0, 4 },
433 { 6, 0, AIRPORT_BUSY_block, 7 },
435 { 7,
TAKEOFF, AIRPORT_BUSY_block, 8 },
439 { 10,
FLYING, NOTHING_block, 15 }, { 10,
LANDING, 0, 11 }, { 10,
HELILANDING, 0, 20 },
440 { 11,
LANDING, AIRPORT_BUSY_block, 12 },
441 { 12,
TO_ALL, AIRPORT_BUSY_block, 13 },
442 { 13,
ENDLANDING, AIRPORT_BUSY_block, 14 }, { 13,
TERM2, 0, 5 }, { 13,
TO_ALL, 0, 14 },
443 { 14,
TO_ALL, AIRPORT_BUSY_block, 1 },
445 { 15,
TO_ALL, NOTHING_block, 16 },
446 { 16,
TO_ALL, NOTHING_block, 17 },
447 { 17,
TO_ALL, NOTHING_block, 18 },
448 { 18,
TO_ALL, NOTHING_block, 10 },
456 static const byte _airport_terminal_commuter[] = { 1, 3 };
457 static const byte _airport_entries_commuter[] = {22, 21, 24, 23};
459 { 0,
HANGAR, NOTHING_block, 1 }, { 0,
HELITAKEOFF, TAXIWAY_BUSY_block, 1 }, { 0,
TO_ALL, 0, 1 },
460 { 1,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 1,
HANGAR, 0, 0 }, { 1,
TAKEOFF, 0, 11 }, { 1,
TERM1, TAXIWAY_BUSY_block, 10 }, { 1,
TERM2, TAXIWAY_BUSY_block, 10 }, { 1,
TERM3, TAXIWAY_BUSY_block, 10 }, { 1,
HELIPAD1, TAXIWAY_BUSY_block, 10 }, { 1,
HELIPAD2, TAXIWAY_BUSY_block, 10 }, { 1,
HELITAKEOFF, TAXIWAY_BUSY_block, 37 }, { 1,
TO_ALL, 0, 0 },
461 { 2,
TERMGROUP, AIRPORT_ENTRANCE_block, 2 }, { 2,
HANGAR, 0, 8 }, { 2,
TERM1, 0, 8 }, { 2,
TERM2, 0, 8 }, { 2,
TERM3, 0, 8 }, { 2,
HELIPAD1, 0, 8 }, { 2,
HELIPAD2, 0, 8 }, { 2,
HELITAKEOFF, 0, 8 }, { 2,
TO_ALL, 0, 2 },
462 { 3,
TERM1,
TERM1_block, 8 }, { 3,
HANGAR, 0, 8 }, { 3,
TAKEOFF, 0, 8 }, { 3,
TO_ALL, 0, 3 },
463 { 4,
TERM2,
TERM2_block, 9 }, { 4,
HANGAR, 0, 9 }, { 4,
TAKEOFF, 0, 9 }, { 4,
TO_ALL, 0, 4 },
464 { 5,
TERM3,
TERM3_block, 10 }, { 5,
HANGAR, 0, 10 }, { 5,
TAKEOFF, 0, 10 }, { 5,
TO_ALL, 0, 5 },
465 { 6,
HELIPAD1,
HELIPAD1_block, 6 }, { 6,
HANGAR, TAXIWAY_BUSY_block, 9 }, { 6,
HELITAKEOFF, 0, 35 },
466 { 7,
HELIPAD2,
HELIPAD2_block, 7 }, { 7,
HANGAR, TAXIWAY_BUSY_block, 10 }, { 7,
HELITAKEOFF, 0, 36 },
467 { 8,
TERMGROUP, TAXIWAY_BUSY_block, 8 }, { 8,
TAKEOFF, TAXIWAY_BUSY_block, 9 }, { 8,
HANGAR, TAXIWAY_BUSY_block, 9 }, { 8,
TERM1,
TERM1_block, 3 }, { 8,
TO_ALL, TAXIWAY_BUSY_block, 9 },
468 { 9,
TERMGROUP, TAXIWAY_BUSY_block, 9 }, { 9,
TAKEOFF, TAXIWAY_BUSY_block, 10 }, { 9,
HANGAR, TAXIWAY_BUSY_block, 10 }, { 9,
TERM2,
TERM2_block, 4 }, { 9,
HELIPAD1,
HELIPAD1_block, 6 }, { 9,
HELITAKEOFF,
HELIPAD1_block, 6 }, { 9,
TERM1, TAXIWAY_BUSY_block, 8 }, { 9,
TO_ALL, TAXIWAY_BUSY_block, 10 },
469 { 10,
TERMGROUP, TAXIWAY_BUSY_block, 10 }, { 10,
TERM3,
TERM3_block, 5 }, { 10,
HELIPAD1, 0, 9 }, { 10,
HELIPAD2,
HELIPAD2_block, 7 }, { 10,
HELITAKEOFF, 0, 1 }, { 10,
TAKEOFF, TAXIWAY_BUSY_block, 1 }, { 10,
HANGAR, TAXIWAY_BUSY_block, 1 }, { 10,
TO_ALL, TAXIWAY_BUSY_block, 9 },
470 { 11,
TO_ALL, OUT_WAY_block, 12 },
472 { 12,
TAKEOFF, RUNWAY_IN_OUT_block, 13 },
473 { 13,
TO_ALL, RUNWAY_IN_OUT_block, 14 },
477 { 16,
FLYING, NOTHING_block, 21 }, { 16,
LANDING, IN_WAY_block, 17 }, { 16,
HELILANDING, 0, 25 },
478 { 17,
LANDING, RUNWAY_IN_OUT_block, 18 },
479 { 18,
TO_ALL, RUNWAY_IN_OUT_block, 19 },
480 { 19,
TO_ALL, RUNWAY_IN_OUT_block, 20 },
483 { 21,
TO_ALL, NOTHING_block, 22 },
484 { 22,
TO_ALL, NOTHING_block, 23 },
485 { 23,
TO_ALL, NOTHING_block, 24 },
486 { 24,
TO_ALL, NOTHING_block, 16 },
489 { 26,
HELIENDLANDING, PRE_HELIPAD_block, 26 }, { 26,
HELIPAD1, 0, 27 }, { 26,
HELIPAD2, 0, 28 }, { 26,
HANGAR, 0, 33 },
490 { 27,
TO_ALL, NOTHING_block, 29 },
491 { 28,
TO_ALL, NOTHING_block, 30 },
498 { 33,
TO_ALL, TAXIWAY_BUSY_block, 34 },
499 { 34,
TO_ALL, TAXIWAY_BUSY_block, 1 },
507 static const byte _airport_terminal_city[] = { 1, 3 };
508 static const byte _airport_entries_city[] = {26, 29, 27, 28};
510 { 0,
HANGAR, NOTHING_block, 1 }, { 0,
TAKEOFF, OUT_WAY_block, 1 }, { 0,
TO_ALL, 0, 1 },
511 { 1,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 1,
HANGAR, 0, 0 }, { 1,
TERM2, 0, 6 }, { 1,
TERM3, 0, 6 }, { 1,
TO_ALL, 0, 7 },
512 { 2,
TERM1,
TERM1_block, 7 }, { 2,
TAKEOFF, OUT_WAY_block, 7 }, { 2,
TO_ALL, 0, 7 },
513 { 3,
TERM2,
TERM2_block, 5 }, { 3,
TAKEOFF, OUT_WAY_block, 6 }, { 3,
TO_ALL, 0, 6 },
514 { 4,
TERM3,
TERM3_block, 5 }, { 4,
TAKEOFF, OUT_WAY_block, 5 }, { 4,
TO_ALL, 0, 5 },
515 { 5,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 5,
TERM2,
TERM2_block, 3 }, { 5,
TERM3,
TERM3_block, 4 }, { 5,
TO_ALL, 0, 6 },
516 { 6,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 6,
TERM2,
TERM2_block, 3 }, { 6,
TERM3, 0, 5 }, { 6,
HANGAR, 0, 1 }, { 6,
TO_ALL, 0, 7 },
517 { 7,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 7,
TERM1,
TERM1_block, 2 }, { 7,
TAKEOFF, OUT_WAY_block, 8 }, { 7,
HELITAKEOFF, 0, 22 }, { 7,
HANGAR, 0, 1 }, { 7,
TO_ALL, 0, 6 },
518 { 8, 0, OUT_WAY_block, 9 },
519 { 9, 0, RUNWAY_IN_OUT_block, 10 },
521 { 10,
TAKEOFF, RUNWAY_IN_OUT_block, 11 },
525 { 13,
FLYING, NOTHING_block, 18 }, { 13,
LANDING, 0, 14 }, { 13,
HELILANDING, 0, 23 },
526 { 14,
LANDING, RUNWAY_IN_OUT_block, 15 },
527 { 15,
TO_ALL, RUNWAY_IN_OUT_block, 17 },
528 { 16,
TO_ALL, RUNWAY_IN_OUT_block, 17 },
531 { 18,
TO_ALL, NOTHING_block, 25 },
532 { 19,
TO_ALL, NOTHING_block, 20 },
533 { 20,
TO_ALL, NOTHING_block, 21 },
534 { 21,
TO_ALL, NOTHING_block, 13 },
539 { 25,
TO_ALL, NOTHING_block, 20},
540 { 26,
TO_ALL, NOTHING_block, 19},
541 { 27,
TO_ALL, NOTHING_block, 28},
542 { 28,
TO_ALL, NOTHING_block, 19},
543 { 29,
TO_ALL, NOTHING_block, 26},
548 static const byte _airport_terminal_metropolitan[] = { 1, 3 };
549 static const byte _airport_entries_metropolitan[] = {20, 19, 22, 21};
551 { 0,
HANGAR, NOTHING_block, 1 },
552 { 1,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 1,
HANGAR, 0, 0 }, { 1,
TERM2, 0, 6 }, { 1,
TERM3, 0, 6 }, { 1,
TO_ALL, 0, 7 },
556 { 5,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 5,
TERM2,
TERM2_block, 3 }, { 5,
TERM3,
TERM3_block, 4 }, { 5,
TO_ALL, 0, 6 },
557 { 6,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 6,
TERM2,
TERM2_block, 3 }, { 6,
TERM3, 0, 5 }, { 6,
HANGAR, 0, 1 }, { 6,
TO_ALL, 0, 7 },
558 { 7,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 7,
TERM1,
TERM1_block, 2 }, { 7,
TAKEOFF, 0, 8 }, { 7,
HELITAKEOFF, 0, 23 }, { 7,
HANGAR, 0, 1 }, { 7,
TO_ALL, 0, 6 },
559 { 8, 0, OUT_WAY_block, 9 },
560 { 9, 0, RUNWAY_OUT_block, 10 },
562 { 10,
TAKEOFF, RUNWAY_OUT_block, 11 },
566 { 13,
FLYING, NOTHING_block, 19 }, { 13,
LANDING, 0, 14 }, { 13,
HELILANDING, 0, 25 },
567 { 14,
LANDING, RUNWAY_IN_block, 15 },
568 { 15,
TO_ALL, RUNWAY_IN_block, 16 },
573 { 19,
TO_ALL, NOTHING_block, 20 },
574 { 20,
TO_ALL, NOTHING_block, 21 },
575 { 21,
TO_ALL, NOTHING_block, 22 },
576 { 22,
TO_ALL, NOTHING_block, 13 },
578 { 23,
TO_ALL, NOTHING_block, 24 },
582 { 27,
TERMGROUP, TAXIWAY_BUSY_block, 27 }, { 27,
TERM1,
TERM1_block, 2 }, { 27,
TO_ALL, 0, 7 },
587 static const byte _airport_terminal_international[] = { 2, 3, 3 };
588 static const byte _airport_entries_international[] = { 38, 37, 40, 39 };
590 { 0,
HANGAR, NOTHING_block, 2 }, { 0,
TERMGROUP, TERM_GROUP1_block, 0 }, { 0,
TERMGROUP, TERM_GROUP2_ENTER1_block, 1 }, { 0,
HELITAKEOFF, AIRPORT_ENTRANCE_block, 2 }, { 0,
TO_ALL, 0, 2 },
591 { 1,
HANGAR, NOTHING_block, 3 }, { 1,
TERMGROUP, HANGAR2_AREA_block, 1 }, { 1,
HELITAKEOFF, HANGAR2_AREA_block, 3 }, { 1,
TO_ALL, 0, 3 },
592 { 2,
TERMGROUP, AIRPORT_ENTRANCE_block, 0 }, { 2,
HANGAR, 0, 0 }, { 2,
TERM4, 0, 12 }, { 2,
TERM5, 0, 12 }, { 2,
TERM6, 0, 12 }, { 2,
HELIPAD1, 0, 12 }, { 2,
HELIPAD2, 0, 12 }, { 2,
HELITAKEOFF, 0, 51 }, { 2,
TO_ALL, 0, 23 },
593 { 3,
TERMGROUP, HANGAR2_AREA_block, 0 }, { 3,
HANGAR, 0, 1 }, { 3,
HELITAKEOFF, 0, 52 }, { 3,
TO_ALL, 0, 18 },
594 { 4,
TERM1,
TERM1_block, 23 }, { 4,
HANGAR, AIRPORT_ENTRANCE_block, 23 }, { 4,
TO_ALL, 0, 23 },
595 { 5,
TERM2,
TERM2_block, 24 }, { 5,
HANGAR, AIRPORT_ENTRANCE_block, 24 }, { 5,
TO_ALL, 0, 24 },
596 { 6,
TERM3,
TERM3_block, 25 }, { 6,
HANGAR, AIRPORT_ENTRANCE_block, 25 }, { 6,
TO_ALL, 0, 25 },
597 { 7,
TERM4,
TERM4_block, 16 }, { 7,
HANGAR, HANGAR2_AREA_block, 16 }, { 7,
TO_ALL, 0, 16 },
598 { 8,
TERM5,
TERM5_block, 17 }, { 8,
HANGAR, HANGAR2_AREA_block, 17 }, { 8,
TO_ALL, 0, 17 },
599 { 9,
TERM6,
TERM6_block, 18 }, { 9,
HANGAR, HANGAR2_AREA_block, 18 }, { 9,
TO_ALL, 0, 18 },
600 { 10,
HELIPAD1,
HELIPAD1_block, 10 }, { 10,
HANGAR, HANGAR2_AREA_block, 16 }, { 10,
HELITAKEOFF, 0, 47 },
601 { 11,
HELIPAD2,
HELIPAD2_block, 11 }, { 11,
HANGAR, HANGAR2_AREA_block, 17 }, { 11,
HELITAKEOFF, 0, 48 },
602 { 12,
TO_ALL, TERM_GROUP2_ENTER1_block, 13 },
603 { 13,
TO_ALL, TERM_GROUP2_ENTER1_block, 14 },
604 { 14,
TO_ALL, TERM_GROUP2_ENTER2_block, 15 },
605 { 15,
TO_ALL, TERM_GROUP2_ENTER2_block, 16 },
606 { 16,
TERMGROUP, TERM_GROUP2_block, 0 }, { 16,
TERM4,
TERM4_block, 7 }, { 16,
HELIPAD1,
HELIPAD1_block, 10 }, { 16,
HELITAKEOFF,
HELIPAD1_block, 10 }, { 16,
TO_ALL, 0, 17 },
607 { 17,
TERMGROUP, TERM_GROUP2_block, 0 }, { 17,
TERM5,
TERM5_block, 8 }, { 17,
TERM4, 0, 16 }, { 17,
HELIPAD1, 0, 16 }, { 17,
HELIPAD2,
HELIPAD2_block, 11 }, { 17,
HELITAKEOFF,
HELIPAD2_block, 11 }, { 17,
TO_ALL, 0, 18 },
608 { 18,
TERMGROUP, TERM_GROUP2_block, 0 }, { 18,
TERM6,
TERM6_block, 9 }, { 18,
TAKEOFF, 0, 19 }, { 18,
HANGAR, HANGAR2_AREA_block, 3 }, { 18,
TO_ALL, 0, 17 },
609 { 19,
TO_ALL, TERM_GROUP2_EXIT1_block, 20 },
610 { 20,
TO_ALL, TERM_GROUP2_EXIT1_block, 21 },
611 { 21,
TO_ALL, TERM_GROUP2_EXIT2_block, 22 },
612 { 22,
TO_ALL, TERM_GROUP2_EXIT2_block, 26 },
613 { 23,
TERMGROUP, TERM_GROUP1_block, 0 }, { 23,
TERM1,
TERM1_block, 4 }, { 23,
HANGAR, AIRPORT_ENTRANCE_block, 2 }, { 23,
TO_ALL, 0, 24 },
614 { 24,
TERMGROUP, TERM_GROUP1_block, 0 }, { 24,
TERM2,
TERM2_block, 5 }, { 24,
TERM1, 0, 23 }, { 24,
HANGAR, 0, 23 }, { 24,
TO_ALL, 0, 25 },
615 { 25,
TERMGROUP, TERM_GROUP1_block, 0 }, { 25,
TERM3,
TERM3_block, 6 }, { 25,
TAKEOFF, 0, 26 }, { 25,
TO_ALL, 0, 24 },
616 { 26,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 26,
TAKEOFF, 0, 27 }, { 26,
TO_ALL, 0, 25 },
617 { 27,
TO_ALL, OUT_WAY_block, 28 },
619 { 28,
TAKEOFF, OUT_WAY_block, 29 },
620 { 29,
TO_ALL, RUNWAY_OUT_block, 30 },
624 { 32,
FLYING, NOTHING_block, 37 }, { 32,
LANDING, 0, 33 }, { 32,
HELILANDING, 0, 41 },
625 { 33,
LANDING, RUNWAY_IN_block, 34 },
626 { 34,
TO_ALL, RUNWAY_IN_block, 35 },
627 { 35,
TO_ALL, RUNWAY_IN_block, 36 },
628 { 36,
ENDLANDING, IN_WAY_block, 36 }, { 36,
TERMGROUP, TERM_GROUP1_block, 0 }, { 36,
TERMGROUP, TERM_GROUP2_ENTER1_block, 1 }, { 36,
TERM4, 0, 12 }, { 36,
TERM5, 0, 12 }, { 36,
TERM6, 0, 12 }, { 36,
TO_ALL, 0, 2 },
630 { 37,
TO_ALL, NOTHING_block, 38 },
631 { 38,
TO_ALL, NOTHING_block, 39 },
632 { 39,
TO_ALL, NOTHING_block, 40 },
633 { 40,
TO_ALL, NOTHING_block, 32 },
636 { 42,
HELIENDLANDING, PRE_HELIPAD_block, 42 }, { 42,
HELIPAD1, 0, 43 }, { 42,
HELIPAD2, 0, 44 }, { 42,
HANGAR, 0, 49 },
637 { 43,
TO_ALL, NOTHING_block, 45 },
638 { 44,
TO_ALL, NOTHING_block, 46 },
645 { 49,
TO_ALL, HANGAR2_AREA_block, 50 },
646 { 50,
TO_ALL, HANGAR2_AREA_block, 3 },
654 static const byte _airport_terminal_intercontinental[] = { 2, 4, 4 };
655 static const byte _airport_entries_intercontinental[] = { 44, 43, 46, 45 };
657 { 0,
HANGAR, NOTHING_block, 2 }, { 0,
TERMGROUP, HANGAR1_AREA_block | TERM_GROUP1_block, 0 }, { 0,
TERMGROUP, HANGAR1_AREA_block | TERM_GROUP1_block, 1 }, { 0,
TAKEOFF, HANGAR1_AREA_block | TERM_GROUP1_block, 2 }, { 0,
TO_ALL, 0, 2 },
658 { 1,
HANGAR, NOTHING_block, 3 }, { 1,
TERMGROUP, HANGAR2_AREA_block, 1 }, { 1,
TERMGROUP, HANGAR2_AREA_block, 0 }, { 1,
TO_ALL, 0, 3 },
659 { 2,
TERMGROUP, HANGAR1_AREA_block, 0 }, { 2,
TERMGROUP, TERM_GROUP1_block, 0 }, { 2,
TERMGROUP, TERM_GROUP1_block, 1 }, { 2,
HANGAR, 0, 0 }, { 2,
TAKEOFF, TERM_GROUP1_block, 27 }, { 2,
TERM5, 0, 26 }, { 2,
TERM6, 0, 26 }, { 2,
TERM7, 0, 26 }, { 2,
TERM8, 0, 26 }, { 2,
HELIPAD1, 0, 26 }, { 2,
HELIPAD2, 0, 26 }, { 2,
HELITAKEOFF, 0, 74 }, { 2,
TO_ALL, 0, 27 },
660 { 3,
TERMGROUP, HANGAR2_AREA_block, 0 }, { 3,
HANGAR, 0, 1 }, { 3,
HELITAKEOFF, 0, 75 }, {3,
TAKEOFF, 0, 59}, { 3,
TO_ALL, 0, 20 },
661 { 4,
TERM1,
TERM1_block, 26 }, { 4,
HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 26 }, { 4,
TO_ALL, 0, 26 },
662 { 5,
TERM2,
TERM2_block, 27 }, { 5,
HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 27 }, { 5,
TO_ALL, 0, 27 },
663 { 6,
TERM3,
TERM3_block, 28 }, { 6,
HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 28 }, { 6,
TO_ALL, 0, 28 },
664 { 7,
TERM4,
TERM4_block, 29 }, { 7,
HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 29 }, { 7,
TO_ALL, 0, 29 },
665 { 8,
TERM5,
TERM5_block, 18 }, { 8,
HANGAR, HANGAR2_AREA_block, 18 }, { 8,
TO_ALL, 0, 18 },
666 { 9,
TERM6,
TERM6_block, 19 }, { 9,
HANGAR, HANGAR2_AREA_block, 19 }, { 9,
TO_ALL, 0, 19 },
667 { 10,
TERM7,
TERM7_block, 20 }, { 10,
HANGAR, HANGAR2_AREA_block, 20 }, { 10,
TO_ALL, 0, 20 },
668 { 11,
TERM8,
TERM8_block, 21 }, { 11,
HANGAR, HANGAR2_AREA_block, 21 }, { 11,
TO_ALL, 0, 21 },
669 { 12,
HELIPAD1,
HELIPAD1_block, 12 }, { 12,
HANGAR, 0, 70 }, { 12,
HELITAKEOFF, 0, 72 },
670 { 13,
HELIPAD2,
HELIPAD2_block, 13 }, { 13,
HANGAR, 0, 71 }, { 13,
HELITAKEOFF, 0, 73 },
671 { 14,
TO_ALL, TERM_GROUP2_ENTER1_block, 15 },
672 { 15,
TO_ALL, TERM_GROUP2_ENTER1_block, 16 },
673 { 16,
TO_ALL, TERM_GROUP2_ENTER2_block, 17 },
674 { 17,
TO_ALL, TERM_GROUP2_ENTER2_block, 18 },
675 { 18,
TERMGROUP, TERM_GROUP2_block, 0 }, { 18,
TERM5,
TERM5_block, 8 }, { 18,
TAKEOFF, 0, 19 }, { 18,
HELITAKEOFF,
HELIPAD1_block, 19 }, { 18,
TO_ALL, TERM_GROUP2_EXIT1_block, 19 },
676 { 19,
TERMGROUP, TERM_GROUP2_block, 0 }, { 19,
TERM6,
TERM6_block, 9 }, { 19,
TERM5, 0, 18 }, { 19,
TAKEOFF, 0, 57 }, { 19,
HELITAKEOFF,
HELIPAD1_block, 20 }, { 19,
TO_ALL, TERM_GROUP2_EXIT1_block, 20 },
677 { 20,
TERMGROUP, TERM_GROUP2_block, 0 }, { 20,
TERM7,
TERM7_block, 10 }, { 20,
TERM5, 0, 19 }, { 20,
TERM6, 0, 19 }, { 20,
HANGAR, HANGAR2_AREA_block, 3 }, { 20,
TAKEOFF, 0, 19 }, { 20,
TO_ALL, TERM_GROUP2_EXIT1_block, 21 },
678 { 21,
TERMGROUP, TERM_GROUP2_block, 0 }, { 21,
TERM8,
TERM8_block, 11 }, { 21,
HANGAR, HANGAR2_AREA_block, 20 }, { 21,
TERM5, 0, 20 }, { 21,
TERM6, 0, 20 }, { 21,
TERM7, 0, 20 }, { 21,
TAKEOFF, 0, 20 }, { 21,
TO_ALL, TERM_GROUP2_EXIT1_block, 22 },
679 { 22,
TERMGROUP, TERM_GROUP2_block, 0 }, { 22,
HANGAR, 0, 21 }, { 22,
TERM5, 0, 21 }, { 22,
TERM6, 0, 21 }, { 22,
TERM7, 0, 21 }, { 22,
TERM8, 0, 21 }, { 22,
TAKEOFF, 0, 21 }, { 22,
TO_ALL, 0, 23 },
680 { 23,
TO_ALL, TERM_GROUP2_EXIT1_block, 70 },
681 { 24,
TO_ALL, TERM_GROUP2_EXIT2_block, 25 },
682 { 25,
TERMGROUP, TERM_GROUP2_EXIT2_block, 0 }, { 25,
HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 29 }, { 25,
TO_ALL, 0, 29 },
683 { 26,
TERMGROUP, TERM_GROUP1_block, 0 }, { 26,
TERM1,
TERM1_block, 4 }, { 26,
HANGAR, HANGAR1_AREA_block, 27 }, { 26,
TERM5, TERM_GROUP2_ENTER1_block, 14 }, { 26,
TERM6, TERM_GROUP2_ENTER1_block, 14 }, { 26,
TERM7, TERM_GROUP2_ENTER1_block, 14 }, { 26,
TERM8, TERM_GROUP2_ENTER1_block, 14 }, { 26,
HELIPAD1, TERM_GROUP2_ENTER1_block, 14 }, { 26,
HELIPAD2, TERM_GROUP2_ENTER1_block, 14 }, { 26,
HELITAKEOFF, TERM_GROUP2_ENTER1_block, 14 }, { 26,
TO_ALL, 0, 27 },
684 { 27,
TERMGROUP, TERM_GROUP1_block, 0 }, { 27,
TERM2,
TERM2_block, 5 }, { 27,
HANGAR, HANGAR1_AREA_block, 2 }, { 27,
TERM1, 0, 26 }, { 27,
TERM5, 0, 26 }, { 27,
TERM6, 0, 26 }, { 27,
TERM7, 0, 26 }, { 27,
TERM8, 0, 26 }, { 27,
HELIPAD1, 0, 14 }, { 27,
HELIPAD2, 0, 14 }, { 27,
TO_ALL, 0, 28 },
685 { 28,
TERMGROUP, TERM_GROUP1_block, 0 }, { 28,
TERM3,
TERM3_block, 6 }, { 28,
HANGAR, HANGAR1_AREA_block, 27 }, { 28,
TERM1, 0, 27 }, { 28,
TERM2, 0, 27 }, { 28,
TERM4, 0, 29 }, { 28,
TERM5, 0, 14 }, { 28,
TERM6, 0, 14 }, { 28,
TERM7, 0, 14 }, { 28,
TERM8, 0, 14 }, { 28,
HELIPAD1, 0, 14 }, { 28,
HELIPAD2, 0, 14 }, { 28,
TO_ALL, 0, 29 },
686 { 29,
TERMGROUP, TERM_GROUP1_block, 0 }, { 29,
TERM4,
TERM4_block, 7 }, { 29,
HANGAR, HANGAR1_AREA_block, 27 }, { 29,
TAKEOFF, 0, 30 }, { 29,
TO_ALL, 0, 28 },
687 { 30,
TO_ALL, OUT_WAY_block2, 31 },
688 { 31,
TO_ALL, OUT_WAY_block, 32 },
690 { 32,
TAKEOFF, RUNWAY_OUT_block, 33 },
691 { 33,
TO_ALL, RUNWAY_OUT_block, 34 },
696 { 37,
LANDING, RUNWAY_IN_block, 38 },
697 { 38,
TO_ALL, RUNWAY_IN_block, 39 },
698 { 39,
TO_ALL, RUNWAY_IN_block, 40 },
700 { 41,
TO_ALL, IN_WAY_block, 42 },
701 { 42,
TERMGROUP, IN_WAY_block, 0 }, { 42,
TERMGROUP, TERM_GROUP1_block, 0 }, { 42,
TERMGROUP, TERM_GROUP1_block, 1 }, { 42,
HANGAR, 0, 2 }, { 42,
TO_ALL, 0, 26 },
704 { 44,
FLYING, 0, 45 }, { 44,
HELILANDING, 0, 47 }, { 44,
LANDING, 0, 69 }, { 44,
TO_ALL, 0, 45 },
706 { 46,
FLYING, 0, 43 }, { 46,
LANDING, 0, 76 }, { 46,
TO_ALL, 0, 43 },
709 { 48,
HELIENDLANDING, PRE_HELIPAD_block, 48 }, { 48,
HELIPAD1, 0, 49 }, { 48,
HELIPAD2, 0, 50 }, { 48,
HANGAR, 0, 55 },
710 { 49,
TO_ALL, NOTHING_block, 51 },
711 { 50,
TO_ALL, NOTHING_block, 52 },
713 { 51,
TERMGROUP, NOTHING_block, 0 }, { 51,
HELIPAD1,
HELIPAD1_block, 12 }, { 51,
HANGAR, 0, 55 }, { 51,
TO_ALL, 0, 12 },
714 { 52,
TERMGROUP, NOTHING_block, 0 }, { 52,
HELIPAD2,
HELIPAD2_block, 13 }, { 52,
HANGAR, 0, 55 }, { 52,
TO_ALL, 0, 13 },
718 { 55,
TO_ALL, HANGAR2_AREA_block, 56 },
719 { 56,
TO_ALL, HANGAR2_AREA_block, 3 },
721 { 57,
TERMGROUP, OUT_WAY2_block, 0 }, { 57,
TAKEOFF, 0, 58 }, { 57,
TO_ALL, 0, 58 },
722 { 58,
TO_ALL, OUT_WAY2_block, 59 },
728 { 63,
LANDING, RUNWAY_IN2_block, 64 },
729 { 64,
TO_ALL, RUNWAY_IN2_block, 65 },
730 { 65,
TO_ALL, RUNWAY_IN2_block, 66 },
731 { 66,
ENDLANDING, RUNWAY_IN2_block, 0 }, { 66,
TERMGROUP, 0, 1 }, { 66,
TERMGROUP, 0, 0 }, { 66,
TO_ALL, 0, 67 },
732 { 67,
TO_ALL, IN_WAY2_block, 68 },
733 { 68,
TERMGROUP, IN_WAY2_block, 0 }, { 68,
TERMGROUP, TERM_GROUP2_block, 1 }, { 68,
TERMGROUP, TERM_GROUP1_block, 0 }, { 68,
HANGAR, HANGAR2_AREA_block, 22 }, { 68,
TO_ALL, 0, 22 },
734 { 69,
TERMGROUP, RUNWAY_IN2_block, 0 }, { 69,
TO_ALL, RUNWAY_IN2_block, 63 },
735 { 70,
TERMGROUP, TERM_GROUP2_EXIT1_block, 0 }, { 70,
HELIPAD1,
HELIPAD1_block, 12 }, { 70,
HELITAKEOFF,
HELIPAD1_block, 12 }, { 70,
TO_ALL, 0, 71 },
736 { 71,
TERMGROUP, TERM_GROUP2_EXIT1_block, 0 }, { 71,
HELIPAD2,
HELIPAD2_block, 13 }, { 71,
HELITAKEOFF,
HELIPAD1_block, 12 }, { 71,
TO_ALL, 0, 24 },
741 { 76,
TERMGROUP, RUNWAY_IN_block, 0 }, { 76,
TO_ALL, RUNWAY_IN_block, 37 },
747 static const byte _airport_entries_heliport[] = { 7, 7, 7, 7 };
751 { 2,
TERMGROUP, AIRPORT_BUSY_block, 0 }, { 2,
HELILANDING, 0, 3 }, { 2,
HELITAKEOFF, 0, 1 },
753 { 4,
HELIENDLANDING, AIRPORT_BUSY_block, 4 }, { 4,
HELIPAD1,
HELIPAD1_block, 0 }, { 4,
HELITAKEOFF, 0, 2 },
755 { 5,
TO_ALL, NOTHING_block, 6 },
756 { 6,
TO_ALL, NOTHING_block, 7 },
757 { 7,
TO_ALL, NOTHING_block, 8 },
761 #define _airport_entries_oilrig _airport_entries_heliport 762 #define _airport_fta_oilrig _airport_fta_heliport 766 static const byte _airport_entries_helidepot[] = { 4, 4, 4, 4 };
768 { 0,
HANGAR, NOTHING_block, 1 },
769 { 1,
TERMGROUP, HANGAR2_AREA_block, 0 }, { 1,
HANGAR, 0, 0 }, { 1,
HELIPAD1,
HELIPAD1_block, 14 }, { 1,
HELITAKEOFF, 0, 15 }, { 1,
TO_ALL, 0, 0 },
770 { 2,
FLYING, NOTHING_block, 3 }, { 2,
HELILANDING, PRE_HELIPAD_block, 7 }, { 2,
HANGAR, 0, 12 }, { 2,
HELITAKEOFF, NOTHING_block, 16 },
772 { 3, 0, NOTHING_block, 4 },
773 { 4, 0, NOTHING_block, 5 },
774 { 5, 0, NOTHING_block, 6 },
775 { 6, 0, NOTHING_block, 2 },
778 { 8,
HELIENDLANDING, PRE_HELIPAD_block, 8 }, { 8,
HELIPAD1, 0, 9 }, { 8,
HANGAR, 0, 12 }, { 8,
TO_ALL, 0, 2 },
779 { 9, 0, NOTHING_block, 10 },
781 { 10,
TERMGROUP, NOTHING_block, 10 }, { 10,
HELIPAD1,
HELIPAD1_block, 14 }, { 10,
HANGAR, 0, 1 }, { 10,
TO_ALL, 0, 14 },
784 { 12,
TO_ALL, HANGAR2_AREA_block, 13 },
785 { 13,
TO_ALL, HANGAR2_AREA_block, 1 },
786 { 14,
HELIPAD1,
HELIPAD1_block, 14 }, { 14,
HANGAR, 0, 1 }, { 14,
HELITAKEOFF, 0, 17 },
789 { 17,
TO_ALL, NOTHING_block, 11 },
795 static const byte _airport_entries_helistation[] = { 25, 25, 25, 25 };
797 { 0,
HANGAR, NOTHING_block, 8 }, { 0,
HELIPAD1, 0, 1 }, { 0,
HELIPAD2, 0, 1 }, { 0,
HELIPAD3, 0, 1 }, { 0,
HELITAKEOFF, 0, 1 }, { 0,
TO_ALL, 0, 0 },
798 { 1,
TERMGROUP, HANGAR2_AREA_block, 0 }, { 1,
HANGAR, 0, 0 }, { 1,
HELITAKEOFF, 0, 3 }, { 1,
TO_ALL, 0, 4 },
800 { 2,
FLYING, NOTHING_block, 28 }, { 2,
HELILANDING, 0, 15 }, { 2,
TO_ALL, 0, 28 },
803 { 4,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 4,
HANGAR, HANGAR2_AREA_block, 1 }, { 4,
HELITAKEOFF, 0, 1 }, { 4,
TO_ALL, 0, 5 },
804 { 5,
TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 5,
HELIPAD1,
HELIPAD1_block, 6 }, { 5,
HELIPAD2,
HELIPAD2_block, 7 }, { 5,
HELIPAD3,
HELIPAD3_block, 8 }, { 5,
TO_ALL, 0, 4 },
805 { 6,
HELIPAD1,
HELIPAD1_block, 5 }, { 6,
HANGAR, HANGAR2_AREA_block, 5 }, { 6,
HELITAKEOFF, 0, 9 }, { 6,
TO_ALL, 0, 6 },
806 { 7,
HELIPAD2,
HELIPAD2_block, 5 }, { 7,
HANGAR, HANGAR2_AREA_block, 5 }, { 7,
HELITAKEOFF, 0, 10 }, { 7,
TO_ALL, 0, 7 },
807 { 8,
HELIPAD3,
HELIPAD3_block, 5 }, { 8,
HANGAR, HANGAR2_AREA_block, 5 }, { 8,
HELITAKEOFF, 0, 11 }, { 8,
TO_ALL, 0, 8 },
816 { 16,
HELIENDLANDING, PRE_HELIPAD_block, 16 }, { 16,
HELIPAD1, 0, 17 }, { 16,
HELIPAD2, 0, 18 }, { 16,
HELIPAD3, 0, 19 }, { 16,
HANGAR, 0, 23 },
817 { 17,
TO_ALL, NOTHING_block, 20 },
818 { 18,
TO_ALL, NOTHING_block, 21 },
819 { 19,
TO_ALL, NOTHING_block, 22 },
821 { 20,
TERMGROUP, NOTHING_block, 0 }, { 20,
HELIPAD1,
HELIPAD1_block, 6 }, { 20,
HANGAR, 0, 23 }, { 20,
TO_ALL, 0, 6 },
822 { 21,
TERMGROUP, NOTHING_block, 0 }, { 21,
HELIPAD2,
HELIPAD2_block, 7 }, { 21,
HANGAR, 0, 23 }, { 21,
TO_ALL, 0, 7 },
823 { 22,
TERMGROUP, NOTHING_block, 0 }, { 22,
HELIPAD3,
HELIPAD3_block, 8 }, { 22,
HANGAR, 0, 23 }, { 22,
TO_ALL, 0, 8 },
824 { 23,
TO_ALL, HANGAR2_AREA_block, 24 },
825 { 24,
TO_ALL, HANGAR2_AREA_block, 1 },
826 { 25,
TO_ALL, NOTHING_block, 26 },
827 { 26,
TO_ALL, NOTHING_block, 27 },
828 { 27,
TO_ALL, NOTHING_block, 2 },
829 { 28,
TO_ALL, NOTHING_block, 29 },
830 { 29,
TO_ALL, NOTHING_block, 30 },
831 { 30,
TO_ALL, NOTHING_block, 31 },
832 { 31,
TO_ALL, NOTHING_block, 32 },
833 { 32,
TO_ALL, NOTHING_block, 25 },
Airplane wants to leave the airport.
Airplane has reached end-point of the take-off runway.
static const uint64 HELIPAD1_block
Block belonging to helipad 1.
A single location on an airport where aircraft can move to.
static const uint64 TERM6_block
Block belonging to terminal 6.
static const AirportMovingData _airport_moving_data_oilrig[9]
Oilrig.
static const AirportMovingData _airport_moving_data_heliport[9]
Heliport (heliport).
State machine input struct (from external file, etc.) Finite sTate mAchine –> FTA.
static const AirportMovingData _airport_moving_data_commuter[38]
Commuter Airfield (small) 5x4.
Vehicle is flying in the air.
static const AirportMovingData _airport_moving_data_metropolitan[28]
Metropolitan Airport (metropolitan) - 2 runways.
A list of all hangar tiles in an airport.
static const uint64 HELIPAD3_block
Block belonging to helipad 3.
Helicopter wants to land.
byte next
Next position from this position.
Go exactly to the destination coordinates.
static const AirportMovingData _airport_moving_data_city[]
City Airport (large) 6x6.
Holding pattern movement (above the airport).
static const uint64 HELIPAD2_block
Block belonging to helipad 2.
Turn slowly (mostly used in the air).
static const AirportMovingData _airport_moving_data_international[53]
International Airport (international) - 2 runways, 6 terminals, dedicated helipad.
#define AMD(x, y, flags, dir)
Airport movement data creation macro.
byte position
The position that an airplane is at.
Airplane has arrived at a runway for take-off.
static const AirportMovingData _airport_moving_data_helistation[33]
HeliDepot 2x2 (heliport).
byte heading
The current orders (eg. TAKEOFF, HANGAR, ENDLANDING, etc.).
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.
Go in this direction for every target.
static const uint MAX_ELEMENTS
maximum number of aircraft positions at airport
static const uint64 TERM7_block
Block belonging to terminal 7.
static const uint64 TERM1_block
Movement Blocks on Airports blocks (eg_airport_flags).
static const uint64 TERM8_block
Block belonging to terminal 8.
static const uint64 TERM4_block
Block belonging to terminal 4.
static const AirportMovingData _airport_moving_data_helidepot[18]
HeliDepot 2x2 (heliport).
static const uint64 RUNWAY_OUT2_block
Landing onto landing strip.
Helicopter wants to finish landing.
static const AirportMovingData _airport_moving_data_dummy[]
Dummy airport.
static const uint64 TERM3_block
Block belonging to terminal 3.
static const uint64 TERM2_block
Block belonging to terminal 2.
static const AirportMovingData _airport_moving_data_country[22]
Country Airfield (small) 4x3.
Airplane wants to finish landing.
uint64 block
The block this position is on on the airport (st->airport.flags).
Helicopter wants to leave the airport.
static const uint64 TERM5_block
Block belonging to terminal 5.