airport_movement.h
changeset 4059 f1442dfe1c8a
parent 3701 13911c5df3e7
child 4344 5d0e40cd67b9
equal deleted inserted replaced
4058:019da48e79d3 4059:f1442dfe1c8a
    10 	byte position;							// the position that an airplane is at
    10 	byte position;							// the position that an airplane is at
    11 	byte heading;								// the current orders (eg. TAKEOFF, HANGAR, ENDLANDING, etc.)
    11 	byte heading;								// the current orders (eg. TAKEOFF, HANGAR, ENDLANDING, etc.)
    12 	uint32 block;								// the block this position is on on the airport (st->airport_flags)
    12 	uint32 block;								// the block this position is on on the airport (st->airport_flags)
    13 	byte next_in_chain;					// next position from this position
    13 	byte next_in_chain;					// next position from this position
    14 } AirportFTAbuildup;
    14 } AirportFTAbuildup;
    15 
       
    16 
    15 
    17 ///////////////////////////////////////////////////////////////////////
    16 ///////////////////////////////////////////////////////////////////////
    18 /////*********Movement Positions on Airports********************///////
    17 /////*********Movement Positions on Airports********************///////
    19 // Country Airfield (small) 4x3
    18 // Country Airfield (small) 4x3
    20 static const AirportMovingData _airport_moving_data_country[22] = {
    19 static const AirportMovingData _airport_moving_data_country[22] = {
    38 	{257,  1,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 17 Fly around waiting for a landing spot (south-west)
    37 	{257,  1,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 17 Fly around waiting for a landing spot (south-west)
    39 	{273, 49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 18 Fly around waiting for a landing spot (south)
    38 	{273, 49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 18 Fly around waiting for a landing spot (south)
    40 	{ 44, 37,AMED_HELI_RAISE,0},									// 19 Helicopter takeoff
    39 	{ 44, 37,AMED_HELI_RAISE,0},									// 19 Helicopter takeoff
    41 	{ 44, 40,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 20 In position above landing spot helicopter
    40 	{ 44, 40,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 20 In position above landing spot helicopter
    42 	{ 44, 40,AMED_HELI_LOWER,0}										// 21 Helicopter landing
    41 	{ 44, 40,AMED_HELI_LOWER,0}										// 21 Helicopter landing
       
    42 };
       
    43 
       
    44 // Commuter Airfield (small) 5x4
       
    45 static const AirportMovingData _airport_moving_data_commuter[37] = {
       
    46 	{ 69,  3, AMED_EXACTPOS,3},										// 00 In Hangar
       
    47 	{ 72, 22,0,0},																// 01 Taxi to right outside depot
       
    48 	{ 8,  22, AMED_EXACTPOS,5},																// 01 Taxi to right outside depot
       
    49 	{ 24, 36,AMED_EXACTPOS,3},			// 03 Terminal 1
       
    50 	{ 40, 36,AMED_EXACTPOS,3},			// 04 Terminal 2
       
    51 	{ 56, 36,AMED_EXACTPOS,3},			// 05 Terminal 3
       
    52 	{ 40, 8,AMED_EXACTPOS,1},			// 06 Helipad 1
       
    53 	{ 56, 8,AMED_EXACTPOS,1},			// 07 Helipad 2
       
    54 	{ 24, 22,0,5},					// 08 Taxiing
       
    55 	{ 40, 22,0,5},					// 09 Taxiing
       
    56 	{ 56, 22,0,5},					// 10 Taxiing
       
    57 	{ 72, 40,0,3},					// 11 Airport OUTWAY
       
    58 	{ 72, 54,AMED_EXACTPOS,1},			// 12 Accelerate to end of runway
       
    59 	{  7, 54,AMED_NOSPDCLAMP,0},			// 13 Release control of runway, for smoother movement
       
    60 	{  5, 54,AMED_NOSPDCLAMP,0},			// 14 End of runway
       
    61 	{-79, 54,AMED_NOSPDCLAMP | AMED_TAKEOFF,0},	// 15 Take off
       
    62 	{145, 54,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 16 Fly to landing position in air
       
    63 	{ 73, 54,AMED_NOSPDCLAMP | AMED_LAND,0},	// 17 Going down for land
       
    64 	{  3, 54,AMED_NOSPDCLAMP | AMED_BRAKE,0},	// 18 Just landed, brake until end of runway
       
    65 	{ 12, 54,0,7},					// 19 Just landed, turn around and taxi
       
    66 	{  8, 32,0,7},					// 20 Taxi from runway to crossing
       
    67 	{-31,149,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 21 Fly around waiting for a landing spot (north-east)
       
    68 	{  1,  6,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 22 Fly around waiting for a landing spot (north-west)
       
    69 	{193,  6,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 23 Fly around waiting for a landing spot (south-west)
       
    70 	{225, 81,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 24 Fly around waiting for a landing spot (south)
       
    71 	// Helicopter
       
    72 	{ 80, 0,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 25 Bufferspace before helipad
       
    73 	{ 80, 0,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 26 Bufferspace before helipad
       
    74 	{ 32, 8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 27 Get in position for Helipad1
       
    75 	{ 48, 8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 28 Get in position for Helipad2
       
    76 	{ 32, 8,AMED_HELI_LOWER,0},			// 29 Land at Helipad1
       
    77 	{ 48, 8,AMED_HELI_LOWER,0},			// 30 Land at Helipad2
       
    78 	{ 32, 8,AMED_HELI_RAISE,0},			// 31 Takeoff Helipad1
       
    79 	{ 48, 8,AMED_HELI_RAISE,0},			// 32 Takeoff Helipad2
       
    80 	{ 64, 22,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 33 Go to position for Hangarentrance in air
       
    81 	{ 64, 22,AMED_HELI_LOWER,0},			// 34 Land in front of hangar
       
    82 	{ 40, 8,AMED_EXACTPOS,0},			// pre-helitakeoff helipad 1
       
    83 	{ 56, 8,AMED_EXACTPOS,0}			// pre-helitakeoff helipad 2
    43 };
    84 };
    44 
    85 
    45 // City Airport (large) 6x6
    86 // City Airport (large) 6x6
    46 static const AirportMovingData _airport_moving_data_town[25] = {
    87 static const AirportMovingData _airport_moving_data_town[25] = {
    47 	{ 85,  3,AMED_EXACTPOS,3},										// 00 In Hangar
    88 	{ 85,  3,AMED_EXACTPOS,3},										// 00 In Hangar
   156 	{104, 55,AMED_HELI_RAISE,0},									// 48 Takeoff Helipad2
   197 	{104, 55,AMED_HELI_RAISE,0},									// 48 Takeoff Helipad2
   157 	{104, 32,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 49 Go to position for Hangarentrance in air
   198 	{104, 32,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 49 Go to position for Hangarentrance in air
   158 	{104, 32,AMED_HELI_LOWER,0}										// 50 Land in HANGAR2_AREA to go to hangar
   199 	{104, 32,AMED_HELI_LOWER,0}										// 50 Land in HANGAR2_AREA to go to hangar
   159 };
   200 };
   160 
   201 
       
   202 // Intercontinental Airport - 4 runways, 8 terminals, 2 dedicated helipads
       
   203 static const AirportMovingData _airport_moving_data_intercontinental[77] = {
       
   204 	{  7, 87, AMED_EXACTPOS,3},			// 00 In Hangar 1
       
   205 	{135, 72, AMED_EXACTPOS,3},			// 01 In Hangar 2
       
   206 	{  7,104,0,0},					// 02 Taxi to right outside depot 1
       
   207 	{135, 88,0,0},					// 03 Taxi to right outside depot 2
       
   208 	{ 56,120,AMED_EXACTPOS,6},			// 04 Terminal 1
       
   209 	{ 56,104,AMED_EXACTPOS,5},			// 05 Terminal 2
       
   210 	{ 56, 88,AMED_EXACTPOS,5},			// 06 Terminal 3
       
   211 	{ 56, 72,AMED_EXACTPOS,5},			// 07 Terminal 4
       
   212 	{ 88,120,AMED_EXACTPOS,0},			// 08 Terminal 5
       
   213 	{ 88,104,AMED_EXACTPOS,1},			// 09 Terminal 6
       
   214 	{ 88, 88,AMED_EXACTPOS,1},			// 10 Terminal 7
       
   215 	{ 88, 72,AMED_EXACTPOS,1},			// 11 Terminal 8
       
   216 	{ 88, 56,AMED_EXACTPOS,3},			// 12 Helipad 1
       
   217 	{ 72, 56,AMED_EXACTPOS,1},			// 13 Helipad 2
       
   218 	{ 40,136,0,0},					// 14 Term group 2 enter 1 a
       
   219 	{ 56,136,0,0},					// 15 Term group 2 enter 1 b
       
   220 	{ 88,136,0,0},					// 16 Term group 2 enter 2 a
       
   221 	{104,136,0,0},					// 17 Term group 2 enter 2 b
       
   222 	{104,120,0,0},					// 18 Term group 2 - opp term 5
       
   223 	{104,104,0,0},					// 19 Term group 2 - opp term 6 & exit2
       
   224 	{104, 88,0,0},					// 20 Term group 2 - opp term 7 & hangar area 2
       
   225 	{104, 72,0,0},					// 21 Term group 2 - opp term 8
       
   226 	{104, 56,0,0},					// 22 Taxi Term group 2 exit a
       
   227 	{104, 40,0,0},					// 23 Taxi Term group 2 exit b
       
   228 	{ 56, 40,0,0},					// 24 Term group 2 exit 2a
       
   229 	{ 40, 40,0,0},					// 25 Term group 2 exit 2b
       
   230 	{ 40,120,0,0},					// 26 Term group 1 - opp term 1
       
   231 	{ 40,104,0,0},					// 27 Term group 1 - opp term 2 & hangar area 1
       
   232 	{ 40, 88,0,0},					// 28 Term group 1 - opp term 3
       
   233 	{ 40, 72,0,0},					// 29 Term group 1 - opp term 4
       
   234 	{ 18, 72,0,7},					// 30 Outway 1
       
   235 	{  8, 40,0,7},					// 31 Airport OUTWAY
       
   236 	{  8, 24,AMED_EXACTPOS,5},			// 32 Accelerate to end of runway
       
   237 	{119, 24,AMED_NOSPDCLAMP,0},			// 33 Release control of runway, for smoother movement
       
   238 	{117, 24,AMED_NOSPDCLAMP,0},			// 34 End of runway
       
   239 	{197, 24,AMED_NOSPDCLAMP | AMED_TAKEOFF,0},	// 35 Take off
       
   240 	{254, 84,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 36 Flying to landing position in air
       
   241 	{117,168,AMED_NOSPDCLAMP | AMED_LAND,0},	// 37 Going down for land
       
   242 	{  3,168,AMED_NOSPDCLAMP | AMED_BRAKE,0},	// 38 Just landed, brake until end of runway
       
   243 	{  8,168,0,0},					// 39 Just landed, turn around and taxi
       
   244 	{  8,144,0,7},					// 40 Taxi from runway
       
   245 	{  8,128,0,7},					// 41 Taxi from runway
       
   246 	{  8,120,AMED_EXACTPOS,5},			// 42 Airport entrance
       
   247 	{ 56,344,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 43 Fly around waiting for a landing spot (north-east)
       
   248 	{-200,88,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 44 Fly around waiting for a landing spot (north-west)
       
   249 	{ 56,-168,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 45 Fly around waiting for a landing spot (south-west)
       
   250 	{312, 88,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 46 Fly around waiting for a landing spot (south)
       
   251 	// Helicopter
       
   252 	{ 96,40,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 47 Bufferspace before helipad
       
   253 	{ 96,40,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 48 Bufferspace before helipad
       
   254 	{ 82,54,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 49 Get in position for Helipad1
       
   255 	{ 64,56,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 50 Get in position for Helipad2
       
   256 	{ 81,55,AMED_HELI_LOWER,0},			// 51 Land at Helipad1
       
   257 	{ 64,56,AMED_HELI_LOWER,0},			// 52 Land at Helipad2
       
   258 	{ 80,56,AMED_HELI_RAISE,0},			// 53 Takeoff Helipad1
       
   259 	{ 64,56,AMED_HELI_RAISE,0},			// 54 Takeoff Helipad2
       
   260 	{136,96,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 55 Go to position for Hangarentrance in air
       
   261 	{136,96,AMED_HELI_LOWER,0},			// 56 Land in front of hangar2
       
   262 	{126,104,0,3},					// 57 Outway 2
       
   263 	{136,136,0,1},					// 58 Airport OUTWAY 2
       
   264 	{136,152,AMED_EXACTPOS,5},			// 59 Accelerate to end of runway2
       
   265 	{ 16,152,AMED_NOSPDCLAMP,0},			// 60 Release control of runway2, for smoother movement
       
   266 	{ 20,152,AMED_NOSPDCLAMP,0},			// 61 End of runway2
       
   267 	{-56,152,AMED_NOSPDCLAMP | AMED_TAKEOFF,0},	// 62 Take off2
       
   268 	{ 24,  8,AMED_NOSPDCLAMP | AMED_LAND,0},	// 63 Going down for land2
       
   269 	{136,  8,AMED_NOSPDCLAMP | AMED_BRAKE,0},	// 64 Just landed, brake until end of runway2in
       
   270 	{136,  8,0,0},					// 65 Just landed, turn around and taxi
       
   271 	{136, 24,0,3},					// 66 Taxi from runway 2in
       
   272 	{136, 40,0,3},					// 67 Taxi from runway 2in
       
   273 	{136, 56,AMED_EXACTPOS,1},			// 68 Airport entrance2
       
   274 	{-56,  8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 69 Fly to landing position in air2
       
   275 	{ 88, 40,0,0},					// 70 Taxi Term group 2 exit - opp heli1
       
   276 	{ 72, 40,0,0},					// 71 Taxi Term group 2 exit - opp heli2
       
   277 	{ 88, 57,AMED_EXACTPOS,3},			// 72 pre-helitakeoff helipad 1
       
   278 	{ 71, 56,AMED_EXACTPOS,1},			// 73 pre-helitakeoff helipad 2
       
   279 	{  8,120,AMED_HELI_RAISE,0},			// 74 Helitakeoff outside depot 1
       
   280 	{136,104,AMED_HELI_RAISE,0},			// 75 Helitakeoff outside depot 2
       
   281 	{197,168,AMED_NOSPDCLAMP | AMED_SLOWTURN,0}	// 76 Fly to landing position in air1
       
   282 };
       
   283 
       
   284 
   161 // Heliport (heliport)
   285 // Heliport (heliport)
   162 static const AirportMovingData _airport_moving_data_heliport[9] = {
   286 static const AirportMovingData _airport_moving_data_heliport[9] = {
   163 	{  5,  9,AMED_EXACTPOS,1},										// 0 - At heliport terminal
   287 	{  5,  9,AMED_EXACTPOS,1},										// 0 - At heliport terminal
   164 	{  2,  9,AMED_HELI_RAISE,0},									// 1 - Take off (play sound)
   288 	{  2,  9,AMED_HELI_RAISE,0},									// 1 - Take off (play sound)
   165 	{ -3,  9,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 2 - In position above landing spot helicopter
   289 	{ -3,  9,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 2 - In position above landing spot helicopter
   169 	{-31,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 6 - Circle #2 (north-west)
   293 	{-31,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 6 - Circle #2 (north-west)
   170 	{ 49,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 7 - Circle #3 (south-west)
   294 	{ 49,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 7 - Circle #3 (south-west)
   171 	{ 70,  9,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 8 - Circle #4 (south)
   295 	{ 70,  9,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 8 - Circle #4 (south)
   172 };
   296 };
   173 
   297 
       
   298 // HeliDepot 2x2 (heliport)
       
   299 static const AirportMovingData _airport_moving_data_helidepot[18] = {
       
   300 	{ 24, 4,AMED_EXACTPOS,1},			// 0 - At depot
       
   301 	{ 24, 28,0,0},					// 1 Taxi to right outside depot
       
   302 	{  5, 38,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 2 Flying
       
   303 	{-15,-15,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 3 - Circle #1 (north-east)
       
   304 	{-15,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 4 - Circle #2 (north-west)
       
   305 	{ 49,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 5 - Circle #3 (south-west)
       
   306 	{ 49,-15,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 6 - Circle #4 (south-east)
       
   307 	{  8, 32,AMED_NOSPDCLAMP | AMED_SLOWTURN,7},	// 7 - PreHelipad
       
   308 	{  8, 32,AMED_NOSPDCLAMP | AMED_SLOWTURN,7},	// 8 - Helipad
       
   309 	{  8, 16,AMED_NOSPDCLAMP | AMED_SLOWTURN,7},	// 9 - Land
       
   310 	{  8, 16,AMED_HELI_LOWER,7},			// 10 - Land
       
   311 	{  8, 24,AMED_HELI_RAISE,0},			// 11 - Take off (play sound)
       
   312 	{ 32, 24,AMED_NOSPDCLAMP | AMED_SLOWTURN,7},	// 12 Air to above hangar area
       
   313 	{ 32, 24,AMED_HELI_LOWER,7},			// 13 Taxi to right outside depot
       
   314 	{  8, 24,AMED_EXACTPOS,7},			// 14 - on helipad1
       
   315 	{ 24, 28,AMED_HELI_RAISE,0},			// 15 Takeoff right outside depot
       
   316 	{  8, 24,AMED_HELI_RAISE,5},			// 16 - Take off (play sound)
       
   317 	{  8, 24,AMED_SLOWTURN | AMED_EXACTPOS,2},	// 17 - turn on helipad1 for takeoff
       
   318 };
       
   319 
       
   320 // HeliDepot 2x2 (heliport)
       
   321 static const AirportMovingData _airport_moving_data_helistation[33] = {
       
   322 	{8, 3,AMED_EXACTPOS,3},				// 00 In Hangar2
       
   323 	{8, 22,0,0},					// 01 outside hangar 2
       
   324 	{116,24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 02 Fly to landing position in air
       
   325 	{14, 22,AMED_HELI_RAISE,0},			// 03 Helitakeoff outside hangar1(play sound)
       
   326 	{24, 22,0,0},					// 04 taxiing
       
   327 	{40, 22,0,0},					// 05 taxiing
       
   328 	{40, 8,AMED_EXACTPOS,1},			// 06 Helipad 1
       
   329 	{56, 8,AMED_EXACTPOS,1},			// 07 Helipad 2
       
   330 	{56, 24,AMED_EXACTPOS,1},			// 08 Helipad 3
       
   331 	{40, 8,AMED_EXACTPOS,0},			// 09 pre-helitakeoff helipad 1
       
   332 	{56, 8,AMED_EXACTPOS,0},			// 10 pre-helitakeoff helipad 2
       
   333 	{56, 24,AMED_EXACTPOS,0},			// 11 pre-helitakeoff helipad 3
       
   334 	{32, 8,AMED_HELI_RAISE,0},			// 12 Takeoff Helipad1
       
   335 	{48, 8,AMED_HELI_RAISE,0},			// 13 Takeoff Helipad2
       
   336 	{48, 24,AMED_HELI_RAISE,0},			// 14 Takeoff Helipad3
       
   337 	{84, 24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 15 Bufferspace before helipad
       
   338 	{68, 24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 16 Bufferspace before helipad
       
   339 	{32, 8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 17 Get in position for Helipad1
       
   340 	{48, 8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 18 Get in position for Helipad2
       
   341 	{48, 24,AMED_NOSPDCLAMP | AMED_SLOWTURN,1},	// 19 Get in position for Helipad3
       
   342 	{40, 8,AMED_HELI_LOWER,0},			// 20 Land at Helipad1
       
   343 	{48, 8,AMED_HELI_LOWER,0},			// 21 Land at Helipad2
       
   344 	{48, 24,AMED_HELI_LOWER,0},			// 22 Land at Helipad3
       
   345 	{0, 22,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 23 Go to position for Hangarentrance in air
       
   346 	{0, 22,AMED_HELI_LOWER,0},			// 24 Land in front of hangar
       
   347 	{148,-8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 25 Fly around waiting for a landing spot (south-east)
       
   348 	{148,8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 26 Fly around waiting for a landing spot (south-west)
       
   349 	{132,24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 27 Fly around waiting for a landing spot (south-west)
       
   350 	{100,24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 28 Fly around waiting for a landing spot (north-east)
       
   351 	{84, 8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 29 Fly around waiting for a landing spot (south-east)
       
   352 	{84,-8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 30 Fly around waiting for a landing spot (south-west)
       
   353 	{100,-24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 31 Fly around waiting for a landing spot (north-west)
       
   354 	{132,-24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 32 Fly around waiting for a landing spot (north-east)
       
   355 };
       
   356 
   174 // Oilrig
   357 // Oilrig
   175 static const AirportMovingData _airport_moving_data_oilrig[9] = {
   358 static const AirportMovingData _airport_moving_data_oilrig[9] = {
   176 	{ 31,  9,AMED_EXACTPOS,1},										// 0 - At oilrig terminal
   359 	{ 31,  9,AMED_EXACTPOS,1},										// 0 - At oilrig terminal
   177 	{ 28,  9,AMED_HELI_RAISE,0},									// 1 - Take off (play sound)
   360 	{ 28,  9,AMED_HELI_RAISE,0},									// 1 - Take off (play sound)
   178 	{ 23,  9,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 2 - In position above landing spot helicopter
   361 	{ 23,  9,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 2 - In position above landing spot helicopter
   186 
   369 
   187 ///////////////////////////////////////////////////////////////////////
   370 ///////////////////////////////////////////////////////////////////////
   188 /////**********Movement Machine on Airports*********************///////
   371 /////**********Movement Machine on Airports*********************///////
   189 // first element of depots array tells us how many depots there are (to know size of array)
   372 // first element of depots array tells us how many depots there are (to know size of array)
   190 // this may be changed later when airports are moved to external file
   373 // this may be changed later when airports are moved to external file
       
   374 
   191 static const TileIndexDiffC _airport_depots_country[] = {{3, 0}};
   375 static const TileIndexDiffC _airport_depots_country[] = {{3, 0}};
   192 static const byte _airport_terminal_country[] = {1, 2};
   376 static const byte _airport_terminal_country[] = {1, 2};
   193 static const AirportFTAbuildup _airport_fta_country[] = {
   377 static const AirportFTAbuildup _airport_fta_country[] = {
   194 	{ 0,HANGAR,NOTHING_block,1},
   378 	{ 0,HANGAR,NOTHING_block,1},
   195 	{ 1,255,AIRPORT_BUSY_block,0}, {1,HANGAR,0,0}, {1,TERM1,TERM1_block,2}, {1,TERM2,0,4}, {1,HELITAKEOFF,0,19}, {1,0,0,6},
   379 	{ 1,255,AIRPORT_BUSY_block,0}, {1,HANGAR,0,0}, {1,TERM1,TERM1_block,2}, {1,TERM2,0,4}, {1,HELITAKEOFF,0,19}, {1,0,0,6},
   214 	{17,0,NOTHING_block,18},
   398 	{17,0,NOTHING_block,18},
   215 	{18,0,NOTHING_block,10},
   399 	{18,0,NOTHING_block,10},
   216 	{19,HELITAKEOFF,NOTHING_block,0},
   400 	{19,HELITAKEOFF,NOTHING_block,0},
   217 	{20,HELILANDING,AIRPORT_BUSY_block,21},
   401 	{20,HELILANDING,AIRPORT_BUSY_block,21},
   218 	{21,HELIENDLANDING,AIRPORT_BUSY_block,1},
   402 	{21,HELIENDLANDING,AIRPORT_BUSY_block,1},
       
   403 	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
       
   404 };
       
   405 
       
   406 static const TileIndexDiffC _airport_depots_commuter[] = {{4, 0}};
       
   407 static const byte _airport_terminal_commuter[] = {1, 3};
       
   408 static const byte _airport_helipad_commuter[] = {1, 2};
       
   409 static const AirportFTAbuildup _airport_fta_commuter[] = {
       
   410 	{ 0,HANGAR,NOTHING_block,1}, {0,HELITAKEOFF,HELIPAD2_block,1}, {0,0,0,1},
       
   411 	{ 1,255,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,10}, {1,0,0,0},
       
   412 	{ 2,255,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,0,0,2},
       
   413 	{ 3,TERM1,TERM1_block,8}, {3,HANGAR,0,8}, {3,TAKEOFF,0,8}, {3,0,0,3},
       
   414 	{ 4,TERM2,TERM2_block,9}, {4,HANGAR,0,9}, {4,TAKEOFF,0,9}, {4,0,0,4},
       
   415 	{ 5,TERM3,TERM3_block,10}, {5,HANGAR,0,10}, {5,TAKEOFF,0,10}, {5,0,0,5},
       
   416 	{ 6,HELIPAD1,HELIPAD1_block,6}, {6,HANGAR,TAXIWAY_BUSY_block,9}, {6,HELITAKEOFF,0,35},
       
   417 	{ 7,HELIPAD2,HELIPAD2_block,7}, {7,HANGAR,TAXIWAY_BUSY_block,10}, {7,HELITAKEOFF,0,36},
       
   418 	{ 8,255,TAXIWAY_BUSY_block,8}, {8,TAKEOFF,TAXIWAY_BUSY_block,9}, {8,HANGAR,TAXIWAY_BUSY_block,9}, {8,TERM1,TERM1_block,3}, {8,0,TAXIWAY_BUSY_block,9},
       
   419 	{ 9,255,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,0,TAXIWAY_BUSY_block,10},
       
   420 	{10,255,TAXIWAY_BUSY_block,10}, {10,TERM3,TERM3_block,5}, {10,HELIPAD1,0,9}, {10,HELIPAD2,HELIPAD2_block,7}, {10,HELITAKEOFF,HELIPAD2_block,7}, {10,TAKEOFF,TAXIWAY_BUSY_block,1}, {10,HANGAR,TAXIWAY_BUSY_block,1}, {10,0,TAXIWAY_BUSY_block,9},
       
   421 	{11,0,OUT_WAY_block,12},
       
   422 	// takeoff
       
   423 	{12,TAKEOFF,RUNWAY_IN_OUT_block,13},
       
   424 	{13,0,RUNWAY_IN_OUT_block,14},
       
   425 	{14,STARTTAKEOFF,RUNWAY_IN_OUT_block,15},
       
   426 	{15,ENDTAKEOFF,NOTHING_block,0},
       
   427 	// landing
       
   428 	{16,FLYING,NOTHING_block,21}, {16,LANDING,IN_WAY_block,17}, {16,HELILANDING,0,25},
       
   429 	{17,LANDING,RUNWAY_IN_OUT_block,18},
       
   430 	{18,0,RUNWAY_IN_OUT_block,19},
       
   431 	{19,0,RUNWAY_IN_OUT_block,20},
       
   432 	{20,ENDLANDING,IN_WAY_block,20}, {20,255,IN_WAY_block,2}, {20,TERM1,0,2}, {20,TERM2,0,2}, {20,TERM3,0,2}, {20,HANGAR,0,2}, {20,0,0,2},
       
   433 	// In Air
       
   434 	{21,0,NOTHING_block,22},
       
   435 	{22,0,NOTHING_block,23},
       
   436 	{23,0,NOTHING_block,24},
       
   437 	{24,0,NOTHING_block,16},
       
   438 	// Helicopter -- stay in air in special place as a buffer to choose from helipads
       
   439 	{25,HELILANDING,PRE_HELIPAD_block,26},
       
   440 	{26,HELIENDLANDING,PRE_HELIPAD_block,26}, {26,HELIPAD1,0,27}, {26,HELIPAD2,0,28}, {26,HANGAR,0,33},
       
   441 	{27,0,NOTHING_block,29}, //helipad1 approach
       
   442 	{28,0,NOTHING_block,30},
       
   443 	// landing
       
   444 	{29,255,NOTHING_block,0}, {29,HELIPAD1,HELIPAD1_block,6},
       
   445 	{30,255,NOTHING_block,0}, {30,HELIPAD2,HELIPAD2_block,7},
       
   446 	// Helicopter -- takeoff
       
   447 	{31,HELITAKEOFF,NOTHING_block,0},
       
   448 	{32,HELITAKEOFF,NOTHING_block,0},
       
   449 	{33,0,TAXIWAY_BUSY_block,34}, // need to go to hangar when waiting in air
       
   450 	{34,0,TAXIWAY_BUSY_block,1},
       
   451 	{35,0,HELIPAD1_block,31},
       
   452 	{36,0,HELIPAD2_block,32},
   219 	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
   453 	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
   220 };
   454 };
   221 
   455 
   222 static const TileIndexDiffC _airport_depots_city[] = {{5, 0}};
   456 static const TileIndexDiffC _airport_depots_city[] = {{5, 0}};
   223 static const byte _airport_terminal_city[] = {1, 3};
   457 static const byte _airport_terminal_city[] = {1, 3};
   353 	{49,0,HANGAR2_AREA_block,50}, // need to go to hangar when waiting in air
   587 	{49,0,HANGAR2_AREA_block,50}, // need to go to hangar when waiting in air
   354 	{50,0,HANGAR2_AREA_block,3},
   588 	{50,0,HANGAR2_AREA_block,3},
   355 	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
   589 	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
   356 };
   590 };
   357 
   591 
       
   592 // intercontinental
       
   593 static const TileIndexDiffC _airport_depots_intercontinental[] = {{0, 5}, {8, 4}};
       
   594 static const byte _airport_terminal_intercontinental[] = {2, 4, 4};
       
   595 static const byte _airport_helipad_intercontinental[] = {1, 2};
       
   596 static const AirportFTAbuildup _airport_fta_intercontinental[] = {
       
   597 	{ 0,HANGAR,NOTHING_block,2}, {0,255,HANGAR1_AREA_block | TERM_GROUP1_block,0}, {0,255,HANGAR1_AREA_block | TERM_GROUP1_block,1}, {0,TAKEOFF,HANGAR1_AREA_block | TERM_GROUP1_block,2}, {0,0,0,2},
       
   598 	{ 1,HANGAR,NOTHING_block,3}, {1,255,HANGAR2_AREA_block,1}, {1,255,HANGAR2_AREA_block,0}, {1,0,0,3},
       
   599 	{ 2,255,HANGAR1_AREA_block,0}, {2,255,TERM_GROUP1_block,0}, {2,255,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,0,0,27},
       
   600 	{ 3,255,HANGAR2_AREA_block,0}, {3,HANGAR,0,1}, {3,HELITAKEOFF,0,75}, {3,0,0,20},
       
   601 	{ 4,TERM1,TERM1_block,26}, {4,HANGAR,HANGAR1_AREA_block | TERM_GROUP1_block,26}, {4,0,0,26},
       
   602 	{ 5,TERM2,TERM2_block,27}, {5,HANGAR,HANGAR1_AREA_block | TERM_GROUP1_block,27}, {5,0,0,27},
       
   603 	{ 6,TERM3,TERM3_block,28}, {6,HANGAR,HANGAR1_AREA_block | TERM_GROUP1_block,28}, {6,0,0,28},
       
   604 	{ 7,TERM4,TERM4_block,29}, {7,HANGAR,HANGAR1_AREA_block | TERM_GROUP1_block,29}, {7,0,0,29},
       
   605 	{ 8,TERM5,TERM5_block,18}, {8,HANGAR,HANGAR2_AREA_block,18}, {8,0,0,18},
       
   606 	{ 9,TERM6,TERM6_block,19}, {9,HANGAR,HANGAR2_AREA_block,19}, {9,0,0,19},
       
   607 	{10,TERM7,TERM7_block,20}, {10,HANGAR,HANGAR2_AREA_block,20}, {10,0,0,20},
       
   608 	{11,TERM8,TERM8_block,21}, {11,HANGAR,HANGAR2_AREA_block,21}, {11,0,0,21},
       
   609 	{12,HELIPAD1,HELIPAD1_block,12}, {12,HANGAR,0,70}, {12,HELITAKEOFF,0,72},
       
   610 	{13,HELIPAD2,HELIPAD2_block,13}, {13,HANGAR,0,71}, {13,HELITAKEOFF,0,73},
       
   611 	{14,0,TERM_GROUP2_ENTER1_block,15},
       
   612 	{15,0,TERM_GROUP2_ENTER1_block,16},
       
   613 	{16,0,TERM_GROUP2_ENTER2_block,17},
       
   614 	{17,0,TERM_GROUP2_ENTER2_block,18},
       
   615 	{18,255,TERM_GROUP2_block,0}, {18,TERM5,TERM5_block,8}, {18,TAKEOFF,0,19}, {18,HELITAKEOFF,HELIPAD1_block,19}, {18,0,TERM_GROUP2_EXIT1_block,19},
       
   616 	{19,255,TERM_GROUP2_block,0}, {19,TERM6,TERM6_block,9}, {19,TERM5,0,18}, {19,TAKEOFF,0,57}, {19,HELITAKEOFF,HELIPAD1_block,20}, {19,0,TERM_GROUP2_EXIT1_block,20}, // add exit to runway out 2
       
   617 	{20,255,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,0,TERM_GROUP2_EXIT1_block,21},
       
   618 	{21,255,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,0,TERM_GROUP2_EXIT1_block,22},
       
   619 	{22,255,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,0,0,23},
       
   620 	{23,255,TERM_GROUP2_EXIT1_block,0}, {23,0,0,70},
       
   621 	{24,0,TERM_GROUP2_EXIT2_block,25},
       
   622 	{25,255,TERM_GROUP2_EXIT2_block,0}, {25,HANGAR,HANGAR1_AREA_block | TERM_GROUP1_block,29}, {25,0,0,29},
       
   623 	{26,255,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,0,0,27},
       
   624 	{27,255,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,0,0,28},
       
   625 	{28,255,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,0,0,29},
       
   626 	{29,255,TERM_GROUP1_block,0}, {29,TERM4,TERM4_block,7}, {29,HANGAR,HANGAR1_AREA_block,27}, {29,TAKEOFF,0,30}, {29,0,0,28},
       
   627 	{30,255,OUT_WAY_block2,0}, {30,0,0,31},
       
   628 	{31,255,OUT_WAY_block,32},
       
   629 	// takeoff
       
   630 	{32,TAKEOFF,RUNWAY_OUT_block,33},
       
   631 	{33,0,RUNWAY_OUT_block,34},
       
   632 	{34,STARTTAKEOFF,NOTHING_block,35},
       
   633 	{35,ENDTAKEOFF,NOTHING_block,0},
       
   634 	// landing
       
   635 	{36,0,0,0},
       
   636 	{37,LANDING,RUNWAY_IN_block,38},
       
   637 	{38,0,RUNWAY_IN_block,39},
       
   638 	{39,0,RUNWAY_IN_block,40},
       
   639 	{40,ENDLANDING,RUNWAY_IN_block,41},
       
   640 	{41,0,IN_WAY_block,42},
       
   641 	{42,255,IN_WAY_block,0}, {42,255,TERM_GROUP1_block,0}, {42,255,TERM_GROUP1_block,1}, {42,HANGAR,0,2}, {42,0,0,26},
       
   642 	// In Air
       
   643 	{43,0,0,44},
       
   644 	{44,FLYING,0,45}, {44,HELILANDING,0,47}, {44,LANDING,0,69}, {44,0,0,45},
       
   645 	{45,0,0,46},
       
   646 	{46,FLYING,0,43}, {46,LANDING,0,76}, {46,0,0,43},
       
   647 	// Helicopter -- stay in air in special place as a buffer to choose from helipads
       
   648 	{47,HELILANDING,PRE_HELIPAD_block,48},
       
   649 	{48,HELIENDLANDING,PRE_HELIPAD_block,48}, {48,HELIPAD1,0,49}, {48,HELIPAD2,0,50}, {48,HANGAR,0,55},
       
   650 	{49,0,NOTHING_block,51},
       
   651 	{50,0,NOTHING_block,52},
       
   652 	// landing
       
   653 	{51,255,NOTHING_block,0}, {51,HELIPAD1,HELIPAD1_block,12}, {51,HANGAR,0,55}, {51,0,0,12},
       
   654 	{52,255,NOTHING_block,0}, {52,HELIPAD2,HELIPAD2_block,13}, {52,HANGAR,0,55}, {52,0,0,13},
       
   655 	// Helicopter -- takeoff
       
   656 	{53,HELITAKEOFF,NOTHING_block,0},
       
   657 	{54,HELITAKEOFF,NOTHING_block,0},
       
   658 	{55,0,HANGAR2_AREA_block,56}, // need to go to hangar when waiting in air
       
   659 	{56,0,HANGAR2_AREA_block,3},
       
   660 	// runway 2 out support
       
   661 	{57,255,OUT_WAY2_block,0}, {57,TAKEOFF,0,58}, {57,0,0,58},
       
   662 	{58,0,OUT_WAY2_block,59},
       
   663 	{59,TAKEOFF,RUNWAY_OUT2_block,60}, // takeoff
       
   664 	{60,0,RUNWAY_OUT2_block,61},
       
   665 	{61,STARTTAKEOFF,NOTHING_block,62},
       
   666 	{62,ENDTAKEOFF,NOTHING_block,0},
       
   667 	// runway 2 in support
       
   668 	{63,LANDING,RUNWAY_IN2_block,64},
       
   669 	{64,0,RUNWAY_IN2_block,65},
       
   670 	{65,0,RUNWAY_IN2_block,66},
       
   671 	{66,ENDLANDING,RUNWAY_IN2_block,0}, {66,255,0,1}, {66,255,0,0}, {66,0,0,67},
       
   672 	{67,0,IN_WAY2_block,68},
       
   673 	{68,255,IN_WAY2_block,0}, {68,255,TERM_GROUP2_block,1}, {68,255,TERM_GROUP1_block,0}, {68,HANGAR,HANGAR2_AREA_block,22}, {68,0,0,22},
       
   674 	{69,255,RUNWAY_IN2_block,0}, {69,0,RUNWAY_IN2_block,63},
       
   675 	{70,255,TERM_GROUP2_EXIT1_block,0}, {70,HELIPAD1,HELIPAD1_block,12}, {70,HELITAKEOFF,HELIPAD1_block,12}, {70,0,0,71},
       
   676 	{71,255,TERM_GROUP2_EXIT1_block,0}, {71,HELIPAD2,HELIPAD2_block,13}, {71,HELITAKEOFF,HELIPAD1_block,12}, {71,0,0,24},
       
   677 	{72,0,HELIPAD1_block,53},
       
   678 	{73,0,HELIPAD2_block,54},
       
   679 	{74,HELITAKEOFF,NOTHING_block,0},
       
   680 	{75,HELITAKEOFF,NOTHING_block,0},
       
   681 	{76,255,RUNWAY_IN_block,0}, {76,0,RUNWAY_IN_block,37},
       
   682 	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
       
   683 };
       
   684 
       
   685 
   358 // heliports, oilrigs don't have depots
   686 // heliports, oilrigs don't have depots
   359 static const byte _airport_helipad_heliport_oilrig[] = {1, 1};
   687 static const byte _airport_helipad_heliport_oilrig[] = {1, 1};
   360 static const AirportFTAbuildup _airport_fta_heliport_oilrig[] = {
   688 static const AirportFTAbuildup _airport_fta_heliport_oilrig[] = {
   361 	{0,HELIPAD1,HELIPAD1_block,1},
   689 	{0,HELIPAD1,HELIPAD1_block,1},
   362 	{1,HELITAKEOFF,NOTHING_block,0}, // takeoff
   690 	{1,HELITAKEOFF,NOTHING_block,0}, // takeoff
   369 	{7,0,NOTHING_block,8},
   697 	{7,0,NOTHING_block,8},
   370 	{8,FLYING,NOTHING_block,5}, {8,HELILANDING,HELIPAD1_block,2}, // landing
   698 	{8,FLYING,NOTHING_block,5}, {8,HELILANDING,HELIPAD1_block,2}, // landing
   371 	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
   699 	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
   372 };
   700 };
   373 
   701 
       
   702 // helidepots
       
   703 static const TileIndexDiffC _airport_depots_helidepot[] = {{1, 0}};
       
   704 static const byte _airport_helipad_helidepot[] = {1, 1};
       
   705 static const AirportFTAbuildup _airport_fta_helidepot[] = {
       
   706 	{ 0,HANGAR,NOTHING_block,1},
       
   707 	{ 1,255,HANGAR2_AREA_block,0}, {1,HANGAR,0,0}, {1,HELIPAD1,HELIPAD1_block,14}, {1,HELITAKEOFF,0,15}, {1,0,0,0},
       
   708 	{ 2,FLYING,NOTHING_block,3}, {2,HELILANDING,PRE_HELIPAD_block,7}, {2,HANGAR,0,12}, {2,HELITAKEOFF,NOTHING_block,16},
       
   709 	// In Air
       
   710 	{ 3,0,NOTHING_block,4},
       
   711 	{ 4,0,NOTHING_block,5},
       
   712 	{ 5,0,NOTHING_block,6},
       
   713 	{ 6,0,NOTHING_block,2},
       
   714 	// Helicopter -- stay in air in special place as a buffer to choose from helipads
       
   715 	{ 7,HELILANDING,PRE_HELIPAD_block,8},
       
   716 	{ 8,HELIENDLANDING,PRE_HELIPAD_block,8}, {8,HELIPAD1,0,9}, {8,HANGAR,0,12}, {8,0,0,2},
       
   717 	{ 9,0,NOTHING_block,10},
       
   718 	// landing
       
   719 	{10,255,NOTHING_block,10}, {10,HELIPAD1,HELIPAD1_block,14}, {10,HANGAR,0,1}, {10,0,0,14},
       
   720 	// Helicopter -- takeoff
       
   721 	{11,HELITAKEOFF,NOTHING_block,0},
       
   722 	{12,0,HANGAR2_AREA_block,13}, // need to go to hangar when waiting in air
       
   723 	{13,0,HANGAR2_AREA_block,1},
       
   724 	{14,HELIPAD1,HELIPAD1_block,14}, {14,HANGAR,0,1}, {14,HELITAKEOFF,0,17},
       
   725 	{15,HELITAKEOFF,NOTHING_block,0}, // takeoff outside depot
       
   726 	{16,HELITAKEOFF,0,14},
       
   727 	{17,0,NOTHING_block,11},
       
   728 	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
       
   729 };
       
   730 
       
   731 // helistation
       
   732 static const TileIndexDiffC _airport_depots_helistation[] = {{0, 0}};
       
   733 static const byte _airport_helipad_helistation[] = {1, 3};
       
   734 static const AirportFTAbuildup _airport_fta_helistation[] = {
       
   735 	{ 0,HANGAR,NOTHING_block,8}, {0,HELIPAD1,0,1}, {0,HELIPAD2,0,1}, {0,HELIPAD3,0,1}, {0,HELITAKEOFF,0,1}, {0,0,0,0},
       
   736 	{ 1,255,HANGAR2_AREA_block,0}, {1,HANGAR,0,0}, {1,HELITAKEOFF,0,3}, {1,0,0,4},
       
   737 	// landing
       
   738 	{ 2,FLYING,NOTHING_block,28}, {2,HELILANDING,0,15}, {2,0,0,28},
       
   739 	// helicopter side
       
   740 	{3,HELITAKEOFF,NOTHING_block,0}, // helitakeoff outside hangar2
       
   741 	{4,255,TAXIWAY_BUSY_block,0}, {4,HANGAR,HANGAR2_AREA_block,1}, {4,HELITAKEOFF,0,1}, {4,0,0,5},
       
   742 	{5,255,TAXIWAY_BUSY_block,0}, {5,HELIPAD1,HELIPAD1_block,6}, {5,HELIPAD2,HELIPAD2_block,7}, {5,HELIPAD3,HELIPAD3_block,8}, {5,0,0,4},
       
   743 	{6,HELIPAD1,HELIPAD1_block,5}, {6,HANGAR, HANGAR2_AREA_block,5}, {6,HELITAKEOFF,0,9}, {6,0,0,6},
       
   744 	{7,HELIPAD2,HELIPAD2_block,5}, {7,HANGAR, HANGAR2_AREA_block,5}, {7,HELITAKEOFF,0,10}, {7,0,0,7},
       
   745 	{8,HELIPAD3,HELIPAD3_block,5}, {8,HANGAR, HANGAR2_AREA_block,5}, {8,HELITAKEOFF,0,11}, {8,0,0,8},
       
   746 	{9,0,HELIPAD1_block,12},
       
   747 	{10,0,HELIPAD2_block,13},
       
   748 	{11,0,HELIPAD3_block,14},
       
   749 	{12,HELITAKEOFF,NOTHING_block,0},
       
   750 	{13,HELITAKEOFF,NOTHING_block,0},
       
   751 	{14,HELITAKEOFF,NOTHING_block,0},
       
   752 	// heli - in flight moves
       
   753 	{15,HELILANDING,PRE_HELIPAD_block,16},
       
   754 	{16,HELIENDLANDING,PRE_HELIPAD_block,16}, {16,HELIPAD1,0,17}, {16,HELIPAD2,0,18}, {16,HELIPAD3,0,19}, {16,HANGAR,0,23},
       
   755 	{17,0,NOTHING_block,20},
       
   756 	{18,0,NOTHING_block,21},
       
   757 	{19,0,NOTHING_block,22},
       
   758 	// heli landing
       
   759 	{20,255,NOTHING_block,0}, {20,HELIPAD1,HELIPAD1_block,6}, {20,HANGAR,0,23}, {20,0,0,6},
       
   760 	{21,255,NOTHING_block,0}, {21,HELIPAD2,HELIPAD2_block,7}, {21,HANGAR,0,23}, {21,0,0,7},
       
   761 	{22,255,NOTHING_block,0}, {22,HELIPAD3,HELIPAD3_block,8}, {22,HANGAR,0,23}, {22,0,0,8},
       
   762 	{23,0,HANGAR2_AREA_block,24}, // need to go to helihangar when waiting in air
       
   763 	{24,0,HANGAR2_AREA_block,1},
       
   764 	{25,0,NOTHING_block,26},
       
   765 	{26,0,NOTHING_block,27},
       
   766 	{27,0,NOTHING_block,2},
       
   767 	{28,0,NOTHING_block,29},
       
   768 	{29,0,NOTHING_block,30},
       
   769 	{30,0,NOTHING_block,31},
       
   770 	{31,0,NOTHING_block,32},
       
   771 	{32,0,NOTHING_block,25},
       
   772 	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
       
   773 };
       
   774 
       
   775 
   374 static const AirportMovingData * const _airport_moving_datas[] = {
   776 static const AirportMovingData * const _airport_moving_datas[] = {
   375 	_airport_moving_data_country,				// Country Airfield (small) 4x3
   777 	_airport_moving_data_country,           // Country Airfield (small) 4x3
   376 	_airport_moving_data_town,					// City Airport (large) 6x6
   778 	_airport_moving_data_town,              // City Airport (large) 6x6
   377 	_airport_moving_data_heliport,			// Heliport
   779 	_airport_moving_data_heliport,          // Heliport
   378 	_airport_moving_data_metropolitan,	// Metropolitain Airport (large) - 2 runways
   780 	_airport_moving_data_metropolitan,      // Metropolitain Airport (large) - 2 runways
   379 	_airport_moving_data_international,	// International Airport (xlarge) - 2 runways
   781 	_airport_moving_data_international,     // International Airport (xlarge) - 2 runways
       
   782 	_airport_moving_data_commuter,          // Commuter Airfield (small) 5x4
       
   783 	_airport_moving_data_helidepot,         // Helidepot
       
   784 	_airport_moving_data_intercontinental,  // Intercontinental Airport (xxlarge) - 4 runways
       
   785 	_airport_moving_data_helistation,       // Helistation
   380 	NULL,
   786 	NULL,
   381 	NULL,
   787 	NULL,
   382 	NULL,
   788 	NULL,
   383 	NULL,
   789 	NULL,
   384 	NULL,
   790 	NULL,
   385 	NULL,
   791 	NULL,
   386 	NULL,
   792 	_airport_moving_data_oilrig             // Oilrig
   387 	NULL,
       
   388 	NULL,
       
   389 	NULL,
       
   390 	_airport_moving_data_oilrig					// Oilrig
       
   391 };
   793 };
   392 
   794 
   393 #endif /* AIRPORT_MOVEMENT_H */
   795 #endif /* AIRPORT_MOVEMENT_H */