src/airport.h
branchNewGRF_ports
changeset 6715 ce1614834bc3
parent 6574 e1d1a12faaf7
child 6719 4cc327ad39d5
equal deleted inserted replaced
6714:42fa878a14fb 6715:ce1614834bc3
     5 #ifndef AIRPORT_H
     5 #ifndef AIRPORT_H
     6 #define AIRPORT_H
     6 #define AIRPORT_H
     7 
     7 
     8 #include "direction.h"
     8 #include "direction.h"
     9 
     9 
    10 enum {MAX_TERMINALS =  10};
    10 enum {MAX_TERMINALS =  12};
    11 enum {MAX_HELIPADS  =   4};
    11 enum {MAX_HELIPADS  =   4};
    12 enum {MAX_ELEMENTS  = 255};
    12 enum {MAX_ELEMENTS  = 255};
    13 enum {MAX_HEADINGS  =  22};
    13 enum {MAX_HEADINGS  =  30};
    14 
    14 
    15 // Airport types
    15 // Airport types
    16 enum {
    16 enum {
    17 	AT_SMALL         =  0,
    17 	AT_SMALL         =  0,
    18 	AT_LARGE         =  1,
    18 	AT_LARGE         =  1,
    21 	AT_INTERNATIONAL =  4,
    21 	AT_INTERNATIONAL =  4,
    22 	AT_COMMUTER      =  5,
    22 	AT_COMMUTER      =  5,
    23 	AT_HELIDEPOT     =  6,
    23 	AT_HELIDEPOT     =  6,
    24 	AT_INTERCON      =  7,
    24 	AT_INTERCON      =  7,
    25 	AT_HELISTATION   =  8,
    25 	AT_HELISTATION   =  8,
       
    26 	AT_LGA           =  9,
       
    27 	AT_MUC           = 10,
       
    28 	AT_SFO           = 11,
       
    29 	AT_AMS           = 12,
    26 	AT_OILRIG        = 15
    30 	AT_OILRIG        = 15
    27 };
    31 };
    28 
    32 
    29 
       
    30 enum {
       
    31 	AMED_NOSPDCLAMP = 1 << 0,
       
    32 	AMED_TAKEOFF    = 1 << 1,
       
    33 	AMED_SLOWTURN   = 1 << 2,
       
    34 	AMED_LAND       = 1 << 3,
       
    35 	AMED_EXACTPOS   = 1 << 4,
       
    36 	AMED_BRAKE      = 1 << 5,
       
    37 	AMED_HELI_RAISE = 1 << 6,
       
    38 	AMED_HELI_LOWER = 1 << 7,
       
    39 	AMED_HOLD       = 1 << 8
       
    40 };
       
    41 
       
    42 /* Movement States on Airports (headings target) */
       
    43 enum {
       
    44 	TO_ALL         =  0,
       
    45 	HANGAR         =  1,
       
    46 	TERM1          =  2,
       
    47 	TERM2          =  3,
       
    48 	TERM3          =  4,
       
    49 	TERM4          =  5,
       
    50 	TERM5          =  6,
       
    51 	TERM6          =  7,
       
    52 	HELIPAD1       =  8,
       
    53 	HELIPAD2       =  9,
       
    54 	TAKEOFF        = 10,
       
    55 	STARTTAKEOFF   = 11,
       
    56 	ENDTAKEOFF     = 12,
       
    57 	HELITAKEOFF    = 13,
       
    58 	FLYING         = 14,
       
    59 	LANDING        = 15,
       
    60 	ENDLANDING     = 16,
       
    61 	HELILANDING    = 17,
       
    62 	HELIENDLANDING = 18,
       
    63 	TERM7          = 19,
       
    64 	TERM8          = 20,
       
    65 	HELIPAD3       = 21,
       
    66 	HELIPAD4       = 22
       
    67 };
       
    68 
       
    69 /* Movement Blocks on Airports */
       
    70 // blocks (eg_airport_flags)
       
    71 static const uint64
       
    72 	TERM1_block              = 1 <<  0,
       
    73 	TERM2_block              = 1 <<  1,
       
    74 	TERM3_block              = 1 <<  2,
       
    75 	TERM4_block              = 1 <<  3,
       
    76 	TERM5_block              = 1 <<  4,
       
    77 	TERM6_block              = 1 <<  5,
       
    78 	HELIPAD1_block           = 1 <<  6,
       
    79 	HELIPAD2_block           = 1 <<  7,
       
    80 	RUNWAY_IN_OUT_block      = 1 <<  8,
       
    81 	RUNWAY_IN_block          = 1 <<  8,
       
    82 	AIRPORT_BUSY_block       = 1 <<  8,
       
    83 	RUNWAY_OUT_block         = 1 <<  9,
       
    84 	TAXIWAY_BUSY_block       = 1 << 10,
       
    85 	OUT_WAY_block            = 1 << 11,
       
    86 	IN_WAY_block             = 1 << 12,
       
    87 	AIRPORT_ENTRANCE_block   = 1 << 13,
       
    88 	TERM_GROUP1_block        = 1 << 14,
       
    89 	TERM_GROUP2_block        = 1 << 15,
       
    90 	HANGAR2_AREA_block       = 1 << 16,
       
    91 	TERM_GROUP2_ENTER1_block = 1 << 17,
       
    92 	TERM_GROUP2_ENTER2_block = 1 << 18,
       
    93 	TERM_GROUP2_EXIT1_block  = 1 << 19,
       
    94 	TERM_GROUP2_EXIT2_block  = 1 << 20,
       
    95 	PRE_HELIPAD_block        = 1 << 21,
       
    96 
       
    97 // blocks for new airports
       
    98 	TERM7_block              = 1 << 22,
       
    99 	TERM8_block              = 1 << 23,
       
   100 	TERM9_block              = 1 << 24,
       
   101 	HELIPAD3_block           = 1 << 24,
       
   102 	TERM10_block             = 1 << 25,
       
   103 	HELIPAD4_block           = 1 << 25,
       
   104 	HANGAR1_AREA_block       = 1 << 26,
       
   105 	OUT_WAY2_block           = 1 << 27,
       
   106 	IN_WAY2_block            = 1 << 28,
       
   107 	RUNWAY_IN2_block         = 1 << 29,
       
   108 	RUNWAY_OUT2_block        = 1 << 10,   // note re-uses TAXIWAY_BUSY
       
   109 	HELIPAD_GROUP_block      = 1 << 13,   // note re-uses AIRPORT_ENTRANCE
       
   110 	OUT_WAY_block2           = 1 << 31,
       
   111 // end of new blocks
       
   112 
       
   113 	NOTHING_block            = 1 << 30;
       
   114 
    33 
   115 struct AirportMovingData {
    34 struct AirportMovingData {
   116 	int16 x;
    35 	int16 x;
   117 	int16 y;
    36 	int16 y;
   118 	uint16 flag;
    37 	uint16 flag;