Merge branch 'master' into jgrpp

# Conflicts:
#	Makefile.bundle.in
#	src/os/macosx/string_osx.cpp
#	src/station_cmd.cpp
This commit is contained in:
Jonathan G Rennison
2019-11-06 17:49:00 +00:00
68 changed files with 1594 additions and 1460 deletions

View File

@@ -71,10 +71,10 @@ static const AirportMovingData _airport_moving_data_country[22] = {
};
/** Commuter Airfield (small) 5x4. */
static const AirportMovingData _airport_moving_data_commuter[37] = {
static const AirportMovingData _airport_moving_data_commuter[38] = {
AMD( 69, 3, AMED_EXACTPOS, DIR_SE), // 00 In Hangar
AMD( 72, 22, 0, DIR_N ), // 01 Taxi to right outside depot
AMD( 8, 22, AMED_EXACTPOS, DIR_SW), // 01 Taxi to right outside depot
AMD( 8, 22, AMED_EXACTPOS, DIR_SW), // 02 Taxi to right outside depot
AMD( 24, 36, AMED_EXACTPOS, DIR_SE), // 03 Terminal 1
AMD( 40, 36, AMED_EXACTPOS, DIR_SE), // 04 Terminal 2
AMD( 56, 36, AMED_EXACTPOS, DIR_SE), // 05 Terminal 3
@@ -108,8 +108,9 @@ static const AirportMovingData _airport_moving_data_commuter[37] = {
AMD( 48, 8, AMED_HELI_RAISE, DIR_N ), // 32 Takeoff Helipad2
AMD( 64, 22, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ), // 33 Go to position for Hangarentrance in air
AMD( 64, 22, AMED_HELI_LOWER, DIR_N ), // 34 Land in front of hangar
AMD( 40, 8, AMED_EXACTPOS, DIR_N ), // pre-helitakeoff helipad 1
AMD( 56, 8, AMED_EXACTPOS, DIR_N ), // pre-helitakeoff helipad 2
AMD( 40, 8, AMED_EXACTPOS, DIR_N ), // 35 pre-helitakeoff helipad 1
AMD( 56, 8, AMED_EXACTPOS, DIR_N ), // 36 pre-helitakeoff helipad 2
AMD( 64, 25, AMED_HELI_RAISE, DIR_N ), // 37 Take off in front of hangar
};
/** City Airport (large) 6x6. */
@@ -179,11 +180,11 @@ static const AirportMovingData _airport_moving_data_metropolitan[28] = {
};
/** International Airport (international) - 2 runways, 6 terminals, dedicated helipad. */
static const AirportMovingData _airport_moving_data_international[51] = {
static const AirportMovingData _airport_moving_data_international[53] = {
AMD( 7, 55, AMED_EXACTPOS, DIR_SE), // 00 In Hangar 1
AMD( 100, 21, AMED_EXACTPOS, DIR_SE), // 01 In Hangar 2
AMD( 7, 70, 0, DIR_N ), // 02 Taxi to right outside depot
AMD( 100, 36, 0, DIR_N ), // 03 Taxi to right outside depot
AMD( 7, 70, 0, DIR_N ), // 02 Taxi to right outside depot (Hangar 1)
AMD( 100, 36, 0, DIR_N ), // 03 Taxi to right outside depot (Hangar 2)
AMD( 38, 70, AMED_EXACTPOS, DIR_SW), // 04 Terminal 1
AMD( 38, 54, AMED_EXACTPOS, DIR_SW), // 05 Terminal 2
AMD( 38, 38, AMED_EXACTPOS, DIR_SW), // 06 Terminal 3
@@ -232,6 +233,8 @@ static const AirportMovingData _airport_moving_data_international[51] = {
AMD( 104, 55, AMED_HELI_RAISE, DIR_N ), // 48 Takeoff Helipad2
AMD( 104, 32, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ), // 49 Go to position for Hangarentrance in air
AMD( 104, 32, AMED_HELI_LOWER, DIR_N ), // 50 Land in HANGAR2_AREA to go to hangar
AMD( 7, 70, AMED_HELI_RAISE, DIR_N ), // 51 Takeoff from HANGAR1_AREA
AMD( 100, 36, AMED_HELI_RAISE, DIR_N ), // 52 Takeoff from HANGAR2_AREA
};
/** Intercontinental Airport - 4 runways, 8 terminals, 2 dedicated helipads. */
@@ -408,11 +411,11 @@ static const AirportMovingData _airport_moving_data_oilrig[9] = {
/////**********Movement Machine on Airports*********************///////
static const byte _airport_entries_dummy[] = {0, 1, 2, 3};
static const AirportFTAbuildup _airport_fta_dummy[] = {
{ 0, 0, 0, 3},
{ 1, 0, 0, 0},
{ 2, 0, 0, 1},
{ 3, 0, 0, 2},
{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
{ 0, TO_ALL, 0, 3},
{ 1, TO_ALL, 0, 0},
{ 2, TO_ALL, 0, 1},
{ 3, TO_ALL, 0, 2},
{ MAX_ELEMENTS, TO_ALL, 0, 0 } // end marker. DO NOT REMOVE
};
/* First element of terminals array tells us how many depots there are (to know size of array)
@@ -422,11 +425,11 @@ static const byte _airport_terminal_country[] = {1, 2};
static const byte _airport_entries_country[] = {16, 15, 18, 17};
static const AirportFTAbuildup _airport_fta_country[] = {
{ 0, HANGAR, NOTHING_block, 1 },
{ 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 },
{ 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 },
{ 2, TERM1, TERM1_block, 1 },
{ 3, TERM2, TERM2_block, 5 },
{ 4, 255, AIRPORT_BUSY_block, 0 }, { 4, TERM2, 0, 5 }, { 4, HANGAR, 0, 1 }, { 4, TAKEOFF, 0, 6 }, { 4, HELITAKEOFF, 0, 1 },
{ 5, 255, AIRPORT_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, 0, 0, 4 },
{ 4, TERMGROUP, AIRPORT_BUSY_block, 0 }, { 4, TERM2, 0, 5 }, { 4, HANGAR, 0, 1 }, { 4, TAKEOFF, 0, 6 }, { 4, HELITAKEOFF, 0, 1 },
{ 5, TERMGROUP, AIRPORT_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, TO_ALL, 0, 4 },
{ 6, 0, AIRPORT_BUSY_block, 7 },
/* takeoff */
{ 7, TAKEOFF, AIRPORT_BUSY_block, 8 },
@@ -435,82 +438,83 @@ static const AirportFTAbuildup _airport_fta_country[] = {
/* landing */
{ 10, FLYING, NOTHING_block, 15 }, { 10, LANDING, 0, 11 }, { 10, HELILANDING, 0, 20 },
{ 11, LANDING, AIRPORT_BUSY_block, 12 },
{ 12, 0, AIRPORT_BUSY_block, 13 },
{ 13, ENDLANDING, AIRPORT_BUSY_block, 14 }, { 13, TERM2, 0, 5 }, { 13, 0, 0, 14 },
{ 14, 0, AIRPORT_BUSY_block, 1 },
{ 12, TO_ALL, AIRPORT_BUSY_block, 13 },
{ 13, ENDLANDING, AIRPORT_BUSY_block, 14 }, { 13, TERM2, 0, 5 }, { 13, TO_ALL, 0, 14 },
{ 14, TO_ALL, AIRPORT_BUSY_block, 1 },
/* In air */
{ 15, 0, NOTHING_block, 16 },
{ 16, 0, NOTHING_block, 17 },
{ 17, 0, NOTHING_block, 18 },
{ 18, 0, NOTHING_block, 10 },
{ 15, TO_ALL, NOTHING_block, 16 },
{ 16, TO_ALL, NOTHING_block, 17 },
{ 17, TO_ALL, NOTHING_block, 18 },
{ 18, TO_ALL, NOTHING_block, 10 },
{ 19, HELITAKEOFF, NOTHING_block, 0 },
{ 20, HELILANDING, AIRPORT_BUSY_block, 21 },
{ 21, HELIENDLANDING, AIRPORT_BUSY_block, 1 },
{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
{ MAX_ELEMENTS, TO_ALL, 0, 0 } // end marker. DO NOT REMOVE
};
static const HangarTileTable _airport_depots_commuter[] = { {{4, 0}, DIR_SE, 0} };
static const byte _airport_terminal_commuter[] = { 1, 3 };
static const byte _airport_entries_commuter[] = {22, 21, 24, 23};
static const AirportFTAbuildup _airport_fta_commuter[] = {
{ 0, HANGAR, NOTHING_block, 1 }, { 0, HELITAKEOFF, HELIPAD2_block, 1 }, { 0, 0, 0, 1 },
{ 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 },
{ 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 },
{ 3, TERM1, TERM1_block, 8 }, { 3, HANGAR, 0, 8 }, { 3, TAKEOFF, 0, 8 }, { 3, 0, 0, 3 },
{ 4, TERM2, TERM2_block, 9 }, { 4, HANGAR, 0, 9 }, { 4, TAKEOFF, 0, 9 }, { 4, 0, 0, 4 },
{ 5, TERM3, TERM3_block, 10 }, { 5, HANGAR, 0, 10 }, { 5, TAKEOFF, 0, 10 }, { 5, 0, 0, 5 },
{ 0, HANGAR, NOTHING_block, 1 }, { 0, HELITAKEOFF, TAXIWAY_BUSY_block, 1 }, { 0, TO_ALL, 0, 1 },
{ 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 },
{ 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 },
{ 3, TERM1, TERM1_block, 8 }, { 3, HANGAR, 0, 8 }, { 3, TAKEOFF, 0, 8 }, { 3, TO_ALL, 0, 3 },
{ 4, TERM2, TERM2_block, 9 }, { 4, HANGAR, 0, 9 }, { 4, TAKEOFF, 0, 9 }, { 4, TO_ALL, 0, 4 },
{ 5, TERM3, TERM3_block, 10 }, { 5, HANGAR, 0, 10 }, { 5, TAKEOFF, 0, 10 }, { 5, TO_ALL, 0, 5 },
{ 6, HELIPAD1, HELIPAD1_block, 6 }, { 6, HANGAR, TAXIWAY_BUSY_block, 9 }, { 6, HELITAKEOFF, 0, 35 },
{ 7, HELIPAD2, HELIPAD2_block, 7 }, { 7, HANGAR, TAXIWAY_BUSY_block, 10 }, { 7, HELITAKEOFF, 0, 36 },
{ 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 },
{ 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 },
{ 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 },
{ 11, 0, OUT_WAY_block, 12 },
{ 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 },
{ 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 },
{ 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 },
{ 11, TO_ALL, OUT_WAY_block, 12 },
/* takeoff */
{ 12, TAKEOFF, RUNWAY_IN_OUT_block, 13 },
{ 13, 0, RUNWAY_IN_OUT_block, 14 },
{ 13, TO_ALL, RUNWAY_IN_OUT_block, 14 },
{ 14, STARTTAKEOFF, RUNWAY_IN_OUT_block, 15 },
{ 15, ENDTAKEOFF, NOTHING_block, 0 },
/* landing */
{ 16, FLYING, NOTHING_block, 21 }, { 16, LANDING, IN_WAY_block, 17 }, { 16, HELILANDING, 0, 25 },
{ 17, LANDING, RUNWAY_IN_OUT_block, 18 },
{ 18, 0, RUNWAY_IN_OUT_block, 19 },
{ 19, 0, RUNWAY_IN_OUT_block, 20 },
{ 18, TO_ALL, RUNWAY_IN_OUT_block, 19 },
{ 19, TO_ALL, RUNWAY_IN_OUT_block, 20 },
{ 20, ENDLANDING, IN_WAY_block, 2 },
/* In Air */
{ 21, 0, NOTHING_block, 22 },
{ 22, 0, NOTHING_block, 23 },
{ 23, 0, NOTHING_block, 24 },
{ 24, 0, NOTHING_block, 16 },
{ 21, TO_ALL, NOTHING_block, 22 },
{ 22, TO_ALL, NOTHING_block, 23 },
{ 23, TO_ALL, NOTHING_block, 24 },
{ 24, TO_ALL, NOTHING_block, 16 },
/* Helicopter -- stay in air in special place as a buffer to choose from helipads */
{ 25, HELILANDING, PRE_HELIPAD_block, 26 },
{ 26, HELIENDLANDING, PRE_HELIPAD_block, 26 }, { 26, HELIPAD1, 0, 27 }, { 26, HELIPAD2, 0, 28 }, { 26, HANGAR, 0, 33 },
{ 27, 0, NOTHING_block, 29 }, // helipad1 approach
{ 28, 0, NOTHING_block, 30 },
{ 27, TO_ALL, NOTHING_block, 29 }, // helipad1 approach
{ 28, TO_ALL, NOTHING_block, 30 },
/* landing */
{ 29, 255, NOTHING_block, 0 }, { 29, HELIPAD1, HELIPAD1_block, 6 },
{ 30, 255, NOTHING_block, 0 }, { 30, HELIPAD2, HELIPAD2_block, 7 },
{ 29, TERMGROUP, NOTHING_block, 0 }, { 29, HELIPAD1, HELIPAD1_block, 6 },
{ 30, TERMGROUP, NOTHING_block, 0 }, { 30, HELIPAD2, HELIPAD2_block, 7 },
/* Helicopter -- takeoff */
{ 31, HELITAKEOFF, NOTHING_block, 0 },
{ 32, HELITAKEOFF, NOTHING_block, 0 },
{ 33, 0, TAXIWAY_BUSY_block, 34 }, // need to go to hangar when waiting in air
{ 34, 0, TAXIWAY_BUSY_block, 1 },
{ 35, 0, HELIPAD1_block, 31 },
{ 36, 0, HELIPAD2_block, 32 },
{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
{ 33, TO_ALL, TAXIWAY_BUSY_block, 34 }, // need to go to hangar when waiting in air
{ 34, TO_ALL, TAXIWAY_BUSY_block, 1 },
{ 35, TO_ALL, HELIPAD1_block, 31 },
{ 36, TO_ALL, HELIPAD2_block, 32 },
{ 37, HELITAKEOFF, NOTHING_block, 0 },
{ MAX_ELEMENTS, TO_ALL, 0, 0 } // end marker. DO NOT REMOVE
};
static const HangarTileTable _airport_depots_city[] = { {{5, 0}, DIR_SE, 0} };
static const byte _airport_terminal_city[] = { 1, 3 };
static const byte _airport_entries_city[] = {26, 29, 27, 28};
static const AirportFTAbuildup _airport_fta_city[] = {
{ 0, HANGAR, NOTHING_block, 1 }, { 0, TAKEOFF, OUT_WAY_block, 1 }, { 0, 0, 0, 1 },
{ 1, 255, TAXIWAY_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TERM2, 0, 6 }, { 1, TERM3, 0, 6 }, { 1, 0, 0, 7 }, // for all else, go to 7
{ 2, TERM1, TERM1_block, 7 }, { 2, TAKEOFF, OUT_WAY_block, 7 }, { 2, 0, 0, 7 },
{ 3, TERM2, TERM2_block, 5 }, { 3, TAKEOFF, OUT_WAY_block, 6 }, { 3, 0, 0, 6 },
{ 4, TERM3, TERM3_block, 5 }, { 4, TAKEOFF, OUT_WAY_block, 5 }, { 4, 0, 0, 5 },
{ 5, 255, TAXIWAY_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, TERM3, TERM3_block, 4 }, { 5, 0, 0, 6 },
{ 6, 255, TAXIWAY_BUSY_block, 0 }, { 6, TERM2, TERM2_block, 3 }, { 6, TERM3, 0, 5 }, { 6, HANGAR, 0, 1 }, { 6, 0, 0, 7 },
{ 7, 255, TAXIWAY_BUSY_block, 0 }, { 7, TERM1, TERM1_block, 2 }, { 7, TAKEOFF, OUT_WAY_block, 8 }, { 7, HELITAKEOFF, 0, 22 }, { 7, HANGAR, 0, 1 }, { 7, 0, 0, 6 },
{ 0, HANGAR, NOTHING_block, 1 }, { 0, TAKEOFF, OUT_WAY_block, 1 }, { 0, TO_ALL, 0, 1 },
{ 1, TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TERM2, 0, 6 }, { 1, TERM3, 0, 6 }, { 1, TO_ALL, 0, 7 }, // for all else, go to 7
{ 2, TERM1, TERM1_block, 7 }, { 2, TAKEOFF, OUT_WAY_block, 7 }, { 2, TO_ALL, 0, 7 },
{ 3, TERM2, TERM2_block, 5 }, { 3, TAKEOFF, OUT_WAY_block, 6 }, { 3, TO_ALL, 0, 6 },
{ 4, TERM3, TERM3_block, 5 }, { 4, TAKEOFF, OUT_WAY_block, 5 }, { 4, TO_ALL, 0, 5 },
{ 5, TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, TERM3, TERM3_block, 4 }, { 5, TO_ALL, 0, 6 },
{ 6, TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 6, TERM2, TERM2_block, 3 }, { 6, TERM3, 0, 5 }, { 6, HANGAR, 0, 1 }, { 6, TO_ALL, 0, 7 },
{ 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 },
{ 8, 0, OUT_WAY_block, 9 },
{ 9, 0, RUNWAY_IN_OUT_block, 10 },
/* takeoff */
@@ -520,24 +524,24 @@ static const AirportFTAbuildup _airport_fta_city[] = {
/* landing */
{ 13, FLYING, NOTHING_block, 18 }, { 13, LANDING, 0, 14 }, { 13, HELILANDING, 0, 23 },
{ 14, LANDING, RUNWAY_IN_OUT_block, 15 },
{ 15, 0, RUNWAY_IN_OUT_block, 17 },
{ 16, 0, RUNWAY_IN_OUT_block, 17 }, // not used, left for compatibility
{ 15, TO_ALL, RUNWAY_IN_OUT_block, 17 },
{ 16, TO_ALL, RUNWAY_IN_OUT_block, 17 }, // not used, left for compatibility
{ 17, ENDLANDING, IN_WAY_block, 7 },
/* In Air */
{ 18, 0, NOTHING_block, 25 },
{ 19, 0, NOTHING_block, 20 },
{ 20, 0, NOTHING_block, 21 },
{ 21, 0, NOTHING_block, 13 },
{ 18, TO_ALL, NOTHING_block, 25 },
{ 19, TO_ALL, NOTHING_block, 20 },
{ 20, TO_ALL, NOTHING_block, 21 },
{ 21, TO_ALL, NOTHING_block, 13 },
/* helicopter */
{ 22, HELITAKEOFF, NOTHING_block, 0 },
{ 23, HELILANDING, IN_WAY_block, 24 },
{ 24, HELIENDLANDING, IN_WAY_block, 17 },
{ 25, 0, NOTHING_block, 20},
{ 26, 0, NOTHING_block, 19},
{ 27, 0, NOTHING_block, 28},
{ 28, 0, NOTHING_block, 19},
{ 29, 0, NOTHING_block, 26},
{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
{ 25, TO_ALL, NOTHING_block, 20},
{ 26, TO_ALL, NOTHING_block, 19},
{ 27, TO_ALL, NOTHING_block, 28},
{ 28, TO_ALL, NOTHING_block, 19},
{ 29, TO_ALL, NOTHING_block, 26},
{ MAX_ELEMENTS, TO_ALL, 0, 0 } // end marker. DO NOT REMOVE
};
static const HangarTileTable _airport_depots_metropolitan[] = { {{5, 0}, DIR_SE, 0} };
@@ -545,13 +549,13 @@ static const byte _airport_terminal_metropolitan[] = { 1, 3 };
static const byte _airport_entries_metropolitan[] = {20, 19, 22, 21};
static const AirportFTAbuildup _airport_fta_metropolitan[] = {
{ 0, HANGAR, NOTHING_block, 1 },
{ 1, 255, TAXIWAY_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TERM2, 0, 6 }, { 1, TERM3, 0, 6 }, { 1, 0, 0, 7 }, // for all else, go to 7
{ 1, TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TERM2, 0, 6 }, { 1, TERM3, 0, 6 }, { 1, TO_ALL, 0, 7 }, // for all else, go to 7
{ 2, TERM1, TERM1_block, 7 },
{ 3, TERM2, TERM2_block, 6 },
{ 4, TERM3, TERM3_block, 5 },
{ 5, 255, TAXIWAY_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, TERM3, TERM3_block, 4 }, { 5, 0, 0, 6 },
{ 6, 255, TAXIWAY_BUSY_block, 0 }, { 6, TERM2, TERM2_block, 3 }, { 6, TERM3, 0, 5 }, { 6, HANGAR, 0, 1 }, { 6, 0, 0, 7 },
{ 7, 255, TAXIWAY_BUSY_block, 0 }, { 7, TERM1, TERM1_block, 2 }, { 7, TAKEOFF, 0, 8 }, { 7, HELITAKEOFF, 0, 23 }, { 7, HANGAR, 0, 1 }, { 7, 0, 0, 6 },
{ 5, TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, TERM3, TERM3_block, 4 }, { 5, TO_ALL, 0, 6 },
{ 6, TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 6, TERM2, TERM2_block, 3 }, { 6, TERM3, 0, 5 }, { 6, HANGAR, 0, 1 }, { 6, TO_ALL, 0, 7 },
{ 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 },
{ 8, 0, OUT_WAY_block, 9 },
{ 9, 0, RUNWAY_OUT_block, 10 },
/* takeoff */
@@ -561,86 +565,88 @@ static const AirportFTAbuildup _airport_fta_metropolitan[] = {
/* landing */
{ 13, FLYING, NOTHING_block, 19 }, { 13, LANDING, 0, 14 }, { 13, HELILANDING, 0, 25 },
{ 14, LANDING, RUNWAY_IN_block, 15 },
{ 15, 0, RUNWAY_IN_block, 16 },
{ 16, 255, RUNWAY_IN_block, 0 }, { 16, ENDLANDING, IN_WAY_block, 17 },
{ 17, 255, RUNWAY_OUT_block, 0 }, { 17, ENDLANDING, IN_WAY_block, 18 },
{ 15, TO_ALL, RUNWAY_IN_block, 16 },
{ 16, TERMGROUP, RUNWAY_IN_block, 0 }, { 16, ENDLANDING, IN_WAY_block, 17 },
{ 17, TERMGROUP, RUNWAY_OUT_block, 0 }, { 17, ENDLANDING, IN_WAY_block, 18 },
{ 18, ENDLANDING, IN_WAY_block, 27 },
/* In Air */
{ 19, 0, NOTHING_block, 20 },
{ 20, 0, NOTHING_block, 21 },
{ 21, 0, NOTHING_block, 22 },
{ 22, 0, NOTHING_block, 13 },
{ 19, TO_ALL, NOTHING_block, 20 },
{ 20, TO_ALL, NOTHING_block, 21 },
{ 21, TO_ALL, NOTHING_block, 22 },
{ 22, TO_ALL, NOTHING_block, 13 },
/* helicopter */
{ 23, 0, NOTHING_block, 24 },
{ 23, TO_ALL, NOTHING_block, 24 },
{ 24, HELITAKEOFF, NOTHING_block, 0 },
{ 25, HELILANDING, IN_WAY_block, 26 },
{ 26, HELIENDLANDING, IN_WAY_block, 18 },
{ 27, 255, TAXIWAY_BUSY_block, 27 }, { 27, TERM1, TERM1_block, 2 }, { 27, 0, 0, 7 },
{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
{ 27, TERMGROUP, TAXIWAY_BUSY_block, 27 }, { 27, TERM1, TERM1_block, 2 }, { 27, TO_ALL, 0, 7 },
{ MAX_ELEMENTS, TO_ALL, 0, 0 } // end marker. DO NOT REMOVE
};
static const HangarTileTable _airport_depots_international[] = { {{0, 3}, DIR_SE, 0}, {{6, 1}, DIR_SE, 1} };
static const byte _airport_terminal_international[] = { 2, 3, 3 };
static const byte _airport_entries_international[] = { 38, 37, 40, 39 };
static const AirportFTAbuildup _airport_fta_international[] = {
{ 0, HANGAR, NOTHING_block, 2 }, { 0, 255, TERM_GROUP1_block, 0 }, { 0, 255, TERM_GROUP2_ENTER1_block, 1 }, { 0, HELITAKEOFF, HELIPAD1_block, 2 }, { 0, 0, 0, 2 },
{ 1, HANGAR, NOTHING_block, 3 }, { 1, 255, HANGAR2_AREA_block, 1 }, { 1, HELITAKEOFF, HELIPAD2_block, 3 }, { 1, 0, 0, 3 },
{ 2, 255, 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, 12 }, { 2, 0, 0, 23 },
{ 3, 255, HANGAR2_AREA_block, 0 }, { 3, HANGAR, 0, 1 }, { 3, 0, 0, 18 },
{ 4, TERM1, TERM1_block, 23 }, { 4, HANGAR, AIRPORT_ENTRANCE_block, 23 }, { 4, 0, 0, 23 },
{ 5, TERM2, TERM2_block, 24 }, { 5, HANGAR, AIRPORT_ENTRANCE_block, 24 }, { 5, 0, 0, 24 },
{ 6, TERM3, TERM3_block, 25 }, { 6, HANGAR, AIRPORT_ENTRANCE_block, 25 }, { 6, 0, 0, 25 },
{ 7, TERM4, TERM4_block, 16 }, { 7, HANGAR, HANGAR2_AREA_block, 16 }, { 7, 0, 0, 16 },
{ 8, TERM5, TERM5_block, 17 }, { 8, HANGAR, HANGAR2_AREA_block, 17 }, { 8, 0, 0, 17 },
{ 9, TERM6, TERM6_block, 18 }, { 9, HANGAR, HANGAR2_AREA_block, 18 }, { 9, 0, 0, 18 },
{ 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 },
{ 1, HANGAR, NOTHING_block, 3 }, { 1, TERMGROUP, HANGAR2_AREA_block, 1 }, { 1, HELITAKEOFF, HANGAR2_AREA_block, 3 }, { 1, TO_ALL, 0, 3 },
{ 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 },
{ 3, TERMGROUP, HANGAR2_AREA_block, 0 }, { 3, HANGAR, 0, 1 }, { 3, HELITAKEOFF, 0, 52 }, { 3, TO_ALL, 0, 18 },
{ 4, TERM1, TERM1_block, 23 }, { 4, HANGAR, AIRPORT_ENTRANCE_block, 23 }, { 4, TO_ALL, 0, 23 },
{ 5, TERM2, TERM2_block, 24 }, { 5, HANGAR, AIRPORT_ENTRANCE_block, 24 }, { 5, TO_ALL, 0, 24 },
{ 6, TERM3, TERM3_block, 25 }, { 6, HANGAR, AIRPORT_ENTRANCE_block, 25 }, { 6, TO_ALL, 0, 25 },
{ 7, TERM4, TERM4_block, 16 }, { 7, HANGAR, HANGAR2_AREA_block, 16 }, { 7, TO_ALL, 0, 16 },
{ 8, TERM5, TERM5_block, 17 }, { 8, HANGAR, HANGAR2_AREA_block, 17 }, { 8, TO_ALL, 0, 17 },
{ 9, TERM6, TERM6_block, 18 }, { 9, HANGAR, HANGAR2_AREA_block, 18 }, { 9, TO_ALL, 0, 18 },
{ 10, HELIPAD1, HELIPAD1_block, 10 }, { 10, HANGAR, HANGAR2_AREA_block, 16 }, { 10, HELITAKEOFF, 0, 47 },
{ 11, HELIPAD2, HELIPAD2_block, 11 }, { 11, HANGAR, HANGAR2_AREA_block, 17 }, { 11, HELITAKEOFF, 0, 48 },
{ 12, 0, TERM_GROUP2_ENTER1_block, 13 },
{ 13, 0, TERM_GROUP2_ENTER1_block, 14 },
{ 14, 0, TERM_GROUP2_ENTER2_block, 15 },
{ 15, 0, TERM_GROUP2_ENTER2_block, 16 },
{ 16, 255, TERM_GROUP2_block, 0 }, { 16, TERM4, TERM4_block, 7 }, { 16, HELIPAD1, HELIPAD1_block, 10 }, { 16, HELITAKEOFF, HELIPAD1_block, 10 }, { 16, 0, 0, 17 },
{ 17, 255, 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, 0, 0, 18 },
{ 18, 255, TERM_GROUP2_block, 0 }, { 18, TERM6, TERM6_block, 9 }, { 18, TAKEOFF, 0, 19 }, { 18, HANGAR, HANGAR2_AREA_block, 3 }, { 18, 0, 0, 17 },
{ 19, 0, TERM_GROUP2_EXIT1_block, 20 },
{ 20, 0, TERM_GROUP2_EXIT1_block, 21 },
{ 21, 0, TERM_GROUP2_EXIT2_block, 22 },
{ 22, 0, TERM_GROUP2_EXIT2_block, 26 },
{ 23, 255, TERM_GROUP1_block, 0 }, { 23, TERM1, TERM1_block, 4 }, { 23, HANGAR, AIRPORT_ENTRANCE_block, 2 }, { 23, 0, 0, 24 },
{ 24, 255, TERM_GROUP1_block, 0 }, { 24, TERM2, TERM2_block, 5 }, { 24, TERM1, 0, 23 }, { 24, HANGAR, 0, 23 }, { 24, 0, 0, 25 },
{ 25, 255, TERM_GROUP1_block, 0 }, { 25, TERM3, TERM3_block, 6 }, { 25, TAKEOFF, 0, 26 }, { 25, 0, 0, 24 },
{ 26, 255, TAXIWAY_BUSY_block, 0 }, { 26, TAKEOFF, 0, 27 }, { 26, 0, 0, 25 },
{ 27, 0, OUT_WAY_block, 28 },
{ 12, TO_ALL, TERM_GROUP2_ENTER1_block, 13 },
{ 13, TO_ALL, TERM_GROUP2_ENTER1_block, 14 },
{ 14, TO_ALL, TERM_GROUP2_ENTER2_block, 15 },
{ 15, TO_ALL, TERM_GROUP2_ENTER2_block, 16 },
{ 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 },
{ 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 },
{ 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 },
{ 19, TO_ALL, TERM_GROUP2_EXIT1_block, 20 },
{ 20, TO_ALL, TERM_GROUP2_EXIT1_block, 21 },
{ 21, TO_ALL, TERM_GROUP2_EXIT2_block, 22 },
{ 22, TO_ALL, TERM_GROUP2_EXIT2_block, 26 },
{ 23, TERMGROUP, TERM_GROUP1_block, 0 }, { 23, TERM1, TERM1_block, 4 }, { 23, HANGAR, AIRPORT_ENTRANCE_block, 2 }, { 23, TO_ALL, 0, 24 },
{ 24, TERMGROUP, TERM_GROUP1_block, 0 }, { 24, TERM2, TERM2_block, 5 }, { 24, TERM1, 0, 23 }, { 24, HANGAR, 0, 23 }, { 24, TO_ALL, 0, 25 },
{ 25, TERMGROUP, TERM_GROUP1_block, 0 }, { 25, TERM3, TERM3_block, 6 }, { 25, TAKEOFF, 0, 26 }, { 25, TO_ALL, 0, 24 },
{ 26, TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 26, TAKEOFF, 0, 27 }, { 26, TO_ALL, 0, 25 },
{ 27, TO_ALL, OUT_WAY_block, 28 },
/* takeoff */
{ 28, TAKEOFF, OUT_WAY_block, 29 },
{ 29, 0, RUNWAY_OUT_block, 30 },
{ 29, TO_ALL, RUNWAY_OUT_block, 30 },
{ 30, STARTTAKEOFF, NOTHING_block, 31 },
{ 31, ENDTAKEOFF, NOTHING_block, 0 },
/* landing */
{ 32, FLYING, NOTHING_block, 37 }, { 32, LANDING, 0, 33 }, { 32, HELILANDING, 0, 41 },
{ 33, LANDING, RUNWAY_IN_block, 34 },
{ 34, 0, RUNWAY_IN_block, 35 },
{ 35, 0, RUNWAY_IN_block, 36 },
{ 36, ENDLANDING, IN_WAY_block, 36 }, { 36, 255, TERM_GROUP1_block, 0 }, { 36, 255, TERM_GROUP2_ENTER1_block, 1 }, { 36, TERM4, 0, 12 }, { 36, TERM5, 0, 12 }, { 36, TERM6, 0, 12 }, { 36, 0, 0, 2 },
{ 34, TO_ALL, RUNWAY_IN_block, 35 },
{ 35, TO_ALL, RUNWAY_IN_block, 36 },
{ 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 },
/* In Air */
{ 37, 0, NOTHING_block, 38 },
{ 38, 0, NOTHING_block, 39 },
{ 39, 0, NOTHING_block, 40 },
{ 40, 0, NOTHING_block, 32 },
{ 37, TO_ALL, NOTHING_block, 38 },
{ 38, TO_ALL, NOTHING_block, 39 },
{ 39, TO_ALL, NOTHING_block, 40 },
{ 40, TO_ALL, NOTHING_block, 32 },
/* Helicopter -- stay in air in special place as a buffer to choose from helipads */
{ 41, HELILANDING, PRE_HELIPAD_block, 42 },
{ 42, HELIENDLANDING, PRE_HELIPAD_block, 42 }, { 42, HELIPAD1, 0, 43 }, { 42, HELIPAD2, 0, 44 }, { 42, HANGAR, 0, 49 },
{ 43, 0, NOTHING_block, 45 },
{ 44, 0, NOTHING_block, 46 },
{ 43, TO_ALL, NOTHING_block, 45 },
{ 44, TO_ALL, NOTHING_block, 46 },
/* landing */
{ 45, 255, NOTHING_block, 0 }, { 45, HELIPAD1, HELIPAD1_block, 10 },
{ 46, 255, NOTHING_block, 0 }, { 46, HELIPAD2, HELIPAD2_block, 11 },
{ 45, TERMGROUP, NOTHING_block, 0 }, { 45, HELIPAD1, HELIPAD1_block, 10 },
{ 46, TERMGROUP, NOTHING_block, 0 }, { 46, HELIPAD2, HELIPAD2_block, 11 },
/* Helicopter -- takeoff */
{ 47, HELITAKEOFF, NOTHING_block, 0 },
{ 48, HELITAKEOFF, NOTHING_block, 0 },
{ 49, 0, HANGAR2_AREA_block, 50 }, // need to go to hangar when waiting in air
{ 50, 0, HANGAR2_AREA_block, 3 },
{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
{ 49, TO_ALL, HANGAR2_AREA_block, 50 }, // need to go to hangar when waiting in air
{ 50, TO_ALL, HANGAR2_AREA_block, 3 },
{ 51, HELITAKEOFF, NOTHING_block, 0 },
{ 52, HELITAKEOFF, NOTHING_block, 0 },
{ MAX_ELEMENTS, TO_ALL, 0, 0 } // end marker. DO NOT REMOVE
};
/* intercontinental */
@@ -648,92 +654,92 @@ static const HangarTileTable _airport_depots_intercontinental[] = { {{0, 5}, DIR
static const byte _airport_terminal_intercontinental[] = { 2, 4, 4 };
static const byte _airport_entries_intercontinental[] = { 44, 43, 46, 45 };
static const AirportFTAbuildup _airport_fta_intercontinental[] = {
{ 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 },
{ 1, HANGAR, NOTHING_block, 3 }, { 1, 255, HANGAR2_AREA_block, 1 }, { 1, 255, HANGAR2_AREA_block, 0 }, { 1, 0, 0, 3 },
{ 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 },
{ 3, 255, HANGAR2_AREA_block, 0 }, { 3, HANGAR, 0, 1 }, { 3, HELITAKEOFF, 0, 75 }, {3, TAKEOFF, 0, 59}, { 3, 0, 0, 20 },
{ 4, TERM1, TERM1_block, 26 }, { 4, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 26 }, { 4, 0, 0, 26 },
{ 5, TERM2, TERM2_block, 27 }, { 5, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 27 }, { 5, 0, 0, 27 },
{ 6, TERM3, TERM3_block, 28 }, { 6, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 28 }, { 6, 0, 0, 28 },
{ 7, TERM4, TERM4_block, 29 }, { 7, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 29 }, { 7, 0, 0, 29 },
{ 8, TERM5, TERM5_block, 18 }, { 8, HANGAR, HANGAR2_AREA_block, 18 }, { 8, 0, 0, 18 },
{ 9, TERM6, TERM6_block, 19 }, { 9, HANGAR, HANGAR2_AREA_block, 19 }, { 9, 0, 0, 19 },
{ 10, TERM7, TERM7_block, 20 }, { 10, HANGAR, HANGAR2_AREA_block, 20 }, { 10, 0, 0, 20 },
{ 11, TERM8, TERM8_block, 21 }, { 11, HANGAR, HANGAR2_AREA_block, 21 }, { 11, 0, 0, 21 },
{ 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 },
{ 1, HANGAR, NOTHING_block, 3 }, { 1, TERMGROUP, HANGAR2_AREA_block, 1 }, { 1, TERMGROUP, HANGAR2_AREA_block, 0 }, { 1, TO_ALL, 0, 3 },
{ 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 },
{ 3, TERMGROUP, HANGAR2_AREA_block, 0 }, { 3, HANGAR, 0, 1 }, { 3, HELITAKEOFF, 0, 75 }, {3, TAKEOFF, 0, 59}, { 3, TO_ALL, 0, 20 },
{ 4, TERM1, TERM1_block, 26 }, { 4, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 26 }, { 4, TO_ALL, 0, 26 },
{ 5, TERM2, TERM2_block, 27 }, { 5, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 27 }, { 5, TO_ALL, 0, 27 },
{ 6, TERM3, TERM3_block, 28 }, { 6, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 28 }, { 6, TO_ALL, 0, 28 },
{ 7, TERM4, TERM4_block, 29 }, { 7, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 29 }, { 7, TO_ALL, 0, 29 },
{ 8, TERM5, TERM5_block, 18 }, { 8, HANGAR, HANGAR2_AREA_block, 18 }, { 8, TO_ALL, 0, 18 },
{ 9, TERM6, TERM6_block, 19 }, { 9, HANGAR, HANGAR2_AREA_block, 19 }, { 9, TO_ALL, 0, 19 },
{ 10, TERM7, TERM7_block, 20 }, { 10, HANGAR, HANGAR2_AREA_block, 20 }, { 10, TO_ALL, 0, 20 },
{ 11, TERM8, TERM8_block, 21 }, { 11, HANGAR, HANGAR2_AREA_block, 21 }, { 11, TO_ALL, 0, 21 },
{ 12, HELIPAD1, HELIPAD1_block, 12 }, { 12, HANGAR, 0, 70 }, { 12, HELITAKEOFF, 0, 72 },
{ 13, HELIPAD2, HELIPAD2_block, 13 }, { 13, HANGAR, 0, 71 }, { 13, HELITAKEOFF, 0, 73 },
{ 14, 0, TERM_GROUP2_ENTER1_block, 15 },
{ 15, 0, TERM_GROUP2_ENTER1_block, 16 },
{ 16, 0, TERM_GROUP2_ENTER2_block, 17 },
{ 17, 0, TERM_GROUP2_ENTER2_block, 18 },
{ 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 },
{ 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
{ 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 },
{ 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 },
{ 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 },
{ 23, 0, TERM_GROUP2_EXIT1_block, 70 },
{ 24, 0, TERM_GROUP2_EXIT2_block, 25 },
{ 25, 255, TERM_GROUP2_EXIT2_block, 0 }, { 25, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 29 }, { 25, 0, 0, 29 },
{ 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 },
{ 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 },
{ 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 },
{ 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 },
{ 30, 0, OUT_WAY_block2, 31 },
{ 31, 0, OUT_WAY_block, 32 },
{ 14, TO_ALL, TERM_GROUP2_ENTER1_block, 15 },
{ 15, TO_ALL, TERM_GROUP2_ENTER1_block, 16 },
{ 16, TO_ALL, TERM_GROUP2_ENTER2_block, 17 },
{ 17, TO_ALL, TERM_GROUP2_ENTER2_block, 18 },
{ 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 },
{ 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 }, // add exit to runway out 2
{ 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 },
{ 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 },
{ 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 },
{ 23, TO_ALL, TERM_GROUP2_EXIT1_block, 70 },
{ 24, TO_ALL, TERM_GROUP2_EXIT2_block, 25 },
{ 25, TERMGROUP, TERM_GROUP2_EXIT2_block, 0 }, { 25, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 29 }, { 25, TO_ALL, 0, 29 },
{ 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 },
{ 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 },
{ 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 },
{ 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 },
{ 30, TO_ALL, OUT_WAY_block2, 31 },
{ 31, TO_ALL, OUT_WAY_block, 32 },
/* takeoff */
{ 32, TAKEOFF, RUNWAY_OUT_block, 33 },
{ 33, 0, RUNWAY_OUT_block, 34 },
{ 33, TO_ALL, RUNWAY_OUT_block, 34 },
{ 34, STARTTAKEOFF, NOTHING_block, 35 },
{ 35, ENDTAKEOFF, NOTHING_block, 0 },
/* landing */
{ 36, 0, 0, 0 },
{ 36, TO_ALL, 0, 0 },
{ 37, LANDING, RUNWAY_IN_block, 38 },
{ 38, 0, RUNWAY_IN_block, 39 },
{ 39, 0, RUNWAY_IN_block, 40 },
{ 38, TO_ALL, RUNWAY_IN_block, 39 },
{ 39, TO_ALL, RUNWAY_IN_block, 40 },
{ 40, ENDLANDING, RUNWAY_IN_block, 41 },
{ 41, 0, IN_WAY_block, 42 },
{ 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 },
{ 41, TO_ALL, IN_WAY_block, 42 },
{ 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 },
/* In Air */
{ 43, 0, 0, 44 },
{ 44, FLYING, 0, 45 }, { 44, HELILANDING, 0, 47 }, { 44, LANDING, 0, 69 }, { 44, 0, 0, 45 },
{ 45, 0, 0, 46 },
{ 46, FLYING, 0, 43 }, { 46, LANDING, 0, 76 }, { 46, 0, 0, 43 },
{ 43, TO_ALL, 0, 44 },
{ 44, FLYING, 0, 45 }, { 44, HELILANDING, 0, 47 }, { 44, LANDING, 0, 69 }, { 44, TO_ALL, 0, 45 },
{ 45, TO_ALL, 0, 46 },
{ 46, FLYING, 0, 43 }, { 46, LANDING, 0, 76 }, { 46, TO_ALL, 0, 43 },
/* Helicopter -- stay in air in special place as a buffer to choose from helipads */
{ 47, HELILANDING, PRE_HELIPAD_block, 48 },
{ 48, HELIENDLANDING, PRE_HELIPAD_block, 48 }, { 48, HELIPAD1, 0, 49 }, { 48, HELIPAD2, 0, 50 }, { 48, HANGAR, 0, 55 },
{ 49, 0, NOTHING_block, 51 },
{ 50, 0, NOTHING_block, 52 },
{ 49, TO_ALL, NOTHING_block, 51 },
{ 50, TO_ALL, NOTHING_block, 52 },
/* landing */
{ 51, 255, NOTHING_block, 0 }, { 51, HELIPAD1, HELIPAD1_block, 12 }, { 51, HANGAR, 0, 55 }, { 51, 0, 0, 12 },
{ 52, 255, NOTHING_block, 0 }, { 52, HELIPAD2, HELIPAD2_block, 13 }, { 52, HANGAR, 0, 55 }, { 52, 0, 0, 13 },
{ 51, TERMGROUP, NOTHING_block, 0 }, { 51, HELIPAD1, HELIPAD1_block, 12 }, { 51, HANGAR, 0, 55 }, { 51, TO_ALL, 0, 12 },
{ 52, TERMGROUP, NOTHING_block, 0 }, { 52, HELIPAD2, HELIPAD2_block, 13 }, { 52, HANGAR, 0, 55 }, { 52, TO_ALL, 0, 13 },
/* Helicopter -- takeoff */
{ 53, HELITAKEOFF, NOTHING_block, 0 },
{ 54, HELITAKEOFF, NOTHING_block, 0 },
{ 55, 0, HANGAR2_AREA_block, 56 }, // need to go to hangar when waiting in air
{ 56, 0, HANGAR2_AREA_block, 3 },
{ 55, TO_ALL, HANGAR2_AREA_block, 56 }, // need to go to hangar when waiting in air
{ 56, TO_ALL, HANGAR2_AREA_block, 3 },
/* runway 2 out support */
{ 57, 255, OUT_WAY2_block, 0 }, { 57, TAKEOFF, 0, 58 }, { 57, 0, 0, 58 },
{ 58, 0, OUT_WAY2_block, 59 },
{ 57, TERMGROUP, OUT_WAY2_block, 0 }, { 57, TAKEOFF, 0, 58 }, { 57, TO_ALL, 0, 58 },
{ 58, TO_ALL, OUT_WAY2_block, 59 },
{ 59, TAKEOFF, RUNWAY_OUT2_block, 60 }, // takeoff
{ 60, 0, RUNWAY_OUT2_block, 61 },
{ 60, TO_ALL, RUNWAY_OUT2_block, 61 },
{ 61, STARTTAKEOFF, NOTHING_block, 62 },
{ 62, ENDTAKEOFF, NOTHING_block, 0 },
/* runway 2 in support */
{ 63, LANDING, RUNWAY_IN2_block, 64 },
{ 64, 0, RUNWAY_IN2_block, 65 },
{ 65, 0, RUNWAY_IN2_block, 66 },
{ 66, ENDLANDING, RUNWAY_IN2_block, 0 }, { 66, 255, 0, 1 }, { 66, 255, 0, 0 }, { 66, 0, 0, 67 },
{ 67, 0, IN_WAY2_block, 68 },
{ 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 },
{ 69, 255, RUNWAY_IN2_block, 0 }, { 69, 0, RUNWAY_IN2_block, 63 },
{ 70, 255, TERM_GROUP2_EXIT1_block, 0 }, { 70, HELIPAD1, HELIPAD1_block, 12 }, { 70, HELITAKEOFF, HELIPAD1_block, 12 }, { 70, 0, 0, 71 },
{ 71, 255, TERM_GROUP2_EXIT1_block, 0 }, { 71, HELIPAD2, HELIPAD2_block, 13 }, { 71, HELITAKEOFF, HELIPAD1_block, 12 }, { 71, 0, 0, 24 },
{ 72, 0, HELIPAD1_block, 53 },
{ 73, 0, HELIPAD2_block, 54 },
{ 64, TO_ALL, RUNWAY_IN2_block, 65 },
{ 65, TO_ALL, RUNWAY_IN2_block, 66 },
{ 66, ENDLANDING, RUNWAY_IN2_block, 0 }, { 66, TERMGROUP, 0, 1 }, { 66, TERMGROUP, 0, 0 }, { 66, TO_ALL, 0, 67 },
{ 67, TO_ALL, IN_WAY2_block, 68 },
{ 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 },
{ 69, TERMGROUP, RUNWAY_IN2_block, 0 }, { 69, TO_ALL, RUNWAY_IN2_block, 63 },
{ 70, TERMGROUP, TERM_GROUP2_EXIT1_block, 0 }, { 70, HELIPAD1, HELIPAD1_block, 12 }, { 70, HELITAKEOFF, HELIPAD1_block, 12 }, { 70, TO_ALL, 0, 71 },
{ 71, TERMGROUP, TERM_GROUP2_EXIT1_block, 0 }, { 71, HELIPAD2, HELIPAD2_block, 13 }, { 71, HELITAKEOFF, HELIPAD1_block, 12 }, { 71, TO_ALL, 0, 24 },
{ 72, TO_ALL, HELIPAD1_block, 53 },
{ 73, TO_ALL, HELIPAD2_block, 54 },
{ 74, HELITAKEOFF, NOTHING_block, 0 },
{ 75, HELITAKEOFF, NOTHING_block, 0 },
{ 76, 255, RUNWAY_IN_block, 0 }, { 76, 0, RUNWAY_IN_block, 37 },
{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
{ 76, TERMGROUP, RUNWAY_IN_block, 0 }, { 76, TO_ALL, RUNWAY_IN_block, 37 },
{ MAX_ELEMENTS, TO_ALL, 0, 0 } // end marker. DO NOT REMOVE
};
@@ -742,15 +748,15 @@ static const byte _airport_entries_heliport[] = { 7, 7, 7, 7 };
static const AirportFTAbuildup _airport_fta_heliport[] = {
{ 0, HELIPAD1, HELIPAD1_block, 1 },
{ 1, HELITAKEOFF, NOTHING_block, 0 }, // takeoff
{ 2, 255, AIRPORT_BUSY_block, 0 }, { 2, HELILANDING, 0, 3 }, { 2, HELITAKEOFF, 0, 1 },
{ 2, TERMGROUP, AIRPORT_BUSY_block, 0 }, { 2, HELILANDING, 0, 3 }, { 2, HELITAKEOFF, 0, 1 },
{ 3, HELILANDING, AIRPORT_BUSY_block, 4 },
{ 4, HELIENDLANDING, AIRPORT_BUSY_block, 4 }, { 4, HELIPAD1, HELIPAD1_block, 0 }, { 4, HELITAKEOFF, 0, 2 },
/* In Air */
{ 5, 0, NOTHING_block, 6 },
{ 6, 0, NOTHING_block, 7 },
{ 7, 0, NOTHING_block, 8 },
{ 5, TO_ALL, NOTHING_block, 6 },
{ 6, TO_ALL, NOTHING_block, 7 },
{ 7, TO_ALL, NOTHING_block, 8 },
{ 8, FLYING, NOTHING_block, 5 }, { 8, HELILANDING, HELIPAD1_block, 2 }, // landing
{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
{ MAX_ELEMENTS, TO_ALL, 0, 0 } // end marker. DO NOT REMOVE
};
#define _airport_entries_oilrig _airport_entries_heliport
#define _airport_fta_oilrig _airport_fta_heliport
@@ -760,7 +766,7 @@ static const HangarTileTable _airport_depots_helidepot[] = { {{1, 0}, DIR_SE, 0}
static const byte _airport_entries_helidepot[] = { 4, 4, 4, 4 };
static const AirportFTAbuildup _airport_fta_helidepot[] = {
{ 0, HANGAR, NOTHING_block, 1 },
{ 1, 255, HANGAR2_AREA_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, HELIPAD1, HELIPAD1_block, 14 }, { 1, HELITAKEOFF, 0, 15 }, { 1, 0, 0, 0 },
{ 1, TERMGROUP, HANGAR2_AREA_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, HELIPAD1, HELIPAD1_block, 14 }, { 1, HELITAKEOFF, 0, 15 }, { 1, TO_ALL, 0, 0 },
{ 2, FLYING, NOTHING_block, 3 }, { 2, HELILANDING, PRE_HELIPAD_block, 7 }, { 2, HANGAR, 0, 12 }, { 2, HELITAKEOFF, NOTHING_block, 16 },
/* In Air */
{ 3, 0, NOTHING_block, 4 },
@@ -769,63 +775,63 @@ static const AirportFTAbuildup _airport_fta_helidepot[] = {
{ 6, 0, NOTHING_block, 2 },
/* Helicopter -- stay in air in special place as a buffer to choose from helipads */
{ 7, HELILANDING, PRE_HELIPAD_block, 8 },
{ 8, HELIENDLANDING, PRE_HELIPAD_block, 8 }, { 8, HELIPAD1, 0, 9 }, { 8, HANGAR, 0, 12 }, { 8, 0, 0, 2 },
{ 8, HELIENDLANDING, PRE_HELIPAD_block, 8 }, { 8, HELIPAD1, 0, 9 }, { 8, HANGAR, 0, 12 }, { 8, TO_ALL, 0, 2 },
{ 9, 0, NOTHING_block, 10 },
/* landing */
{ 10, 255, NOTHING_block, 10 }, { 10, HELIPAD1, HELIPAD1_block, 14 }, { 10, HANGAR, 0, 1 }, { 10, 0, 0, 14 },
{ 10, TERMGROUP, NOTHING_block, 10 }, { 10, HELIPAD1, HELIPAD1_block, 14 }, { 10, HANGAR, 0, 1 }, { 10, TO_ALL, 0, 14 },
/* Helicopter -- takeoff */
{ 11, HELITAKEOFF, NOTHING_block, 0 },
{ 12, 0, HANGAR2_AREA_block, 13 }, // need to go to hangar when waiting in air
{ 13, 0, HANGAR2_AREA_block, 1 },
{ 12, TO_ALL, HANGAR2_AREA_block, 13 }, // need to go to hangar when waiting in air
{ 13, TO_ALL, HANGAR2_AREA_block, 1 },
{ 14, HELIPAD1, HELIPAD1_block, 14 }, { 14, HANGAR, 0, 1 }, { 14, HELITAKEOFF, 0, 17 },
{ 15, HELITAKEOFF, NOTHING_block, 0 }, // takeoff outside depot
{ 16, HELITAKEOFF, 0, 14 },
{ 17, 0, NOTHING_block, 11 },
{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
{ 17, TO_ALL, NOTHING_block, 11 },
{ MAX_ELEMENTS, TO_ALL, 0, 0 } // end marker. DO NOT REMOVE
};
/* helistation */
static const HangarTileTable _airport_depots_helistation[] = { {{0, 0}, DIR_SE, 0} };
static const byte _airport_entries_helistation[] = { 25, 25, 25, 25 };
static const AirportFTAbuildup _airport_fta_helistation[] = {
{ 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 },
{ 1, 255, HANGAR2_AREA_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, HELITAKEOFF, 0, 3 }, { 1, 0, 0, 4 },
{ 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 },
{ 1, TERMGROUP, HANGAR2_AREA_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, HELITAKEOFF, 0, 3 }, { 1, TO_ALL, 0, 4 },
/* landing */
{ 2, FLYING, NOTHING_block, 28 }, { 2, HELILANDING, 0, 15 }, { 2, 0, 0, 28 },
{ 2, FLYING, NOTHING_block, 28 }, { 2, HELILANDING, 0, 15 }, { 2, TO_ALL, 0, 28 },
/* helicopter side */
{ 3, HELITAKEOFF, NOTHING_block, 0 }, // helitakeoff outside hangar2
{ 4, 255, TAXIWAY_BUSY_block, 0 }, { 4, HANGAR, HANGAR2_AREA_block, 1 }, { 4, HELITAKEOFF, 0, 1 }, { 4, 0, 0, 5 },
{ 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 },
{ 6, HELIPAD1, HELIPAD1_block, 5 }, { 6, HANGAR, HANGAR2_AREA_block, 5 }, { 6, HELITAKEOFF, 0, 9 }, { 6, 0, 0, 6 },
{ 7, HELIPAD2, HELIPAD2_block, 5 }, { 7, HANGAR, HANGAR2_AREA_block, 5 }, { 7, HELITAKEOFF, 0, 10 }, { 7, 0, 0, 7 },
{ 8, HELIPAD3, HELIPAD3_block, 5 }, { 8, HANGAR, HANGAR2_AREA_block, 5 }, { 8, HELITAKEOFF, 0, 11 }, { 8, 0, 0, 8 },
{ 4, TERMGROUP, TAXIWAY_BUSY_block, 0 }, { 4, HANGAR, HANGAR2_AREA_block, 1 }, { 4, HELITAKEOFF, 0, 1 }, { 4, TO_ALL, 0, 5 },
{ 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 },
{ 6, HELIPAD1, HELIPAD1_block, 5 }, { 6, HANGAR, HANGAR2_AREA_block, 5 }, { 6, HELITAKEOFF, 0, 9 }, { 6, TO_ALL, 0, 6 },
{ 7, HELIPAD2, HELIPAD2_block, 5 }, { 7, HANGAR, HANGAR2_AREA_block, 5 }, { 7, HELITAKEOFF, 0, 10 }, { 7, TO_ALL, 0, 7 },
{ 8, HELIPAD3, HELIPAD3_block, 5 }, { 8, HANGAR, HANGAR2_AREA_block, 5 }, { 8, HELITAKEOFF, 0, 11 }, { 8, TO_ALL, 0, 8 },
{ 9, 0, HELIPAD1_block, 12 },
{ 10, 0, HELIPAD2_block, 13 },
{ 11, 0, HELIPAD3_block, 14 },
{ 10, TO_ALL, HELIPAD2_block, 13 },
{ 11, TO_ALL, HELIPAD3_block, 14 },
{ 12, HELITAKEOFF, NOTHING_block, 0 },
{ 13, HELITAKEOFF, NOTHING_block, 0 },
{ 14, HELITAKEOFF, NOTHING_block, 0 },
/* heli - in flight moves */
{ 15, HELILANDING, PRE_HELIPAD_block, 16 },
{ 16, HELIENDLANDING, PRE_HELIPAD_block, 16 }, { 16, HELIPAD1, 0, 17 }, { 16, HELIPAD2, 0, 18 }, { 16, HELIPAD3, 0, 19 }, { 16, HANGAR, 0, 23 },
{ 17, 0, NOTHING_block, 20 },
{ 18, 0, NOTHING_block, 21 },
{ 19, 0, NOTHING_block, 22 },
{ 17, TO_ALL, NOTHING_block, 20 },
{ 18, TO_ALL, NOTHING_block, 21 },
{ 19, TO_ALL, NOTHING_block, 22 },
/* heli landing */
{ 20, 255, NOTHING_block, 0 }, { 20, HELIPAD1, HELIPAD1_block, 6 }, { 20, HANGAR, 0, 23 }, { 20, 0, 0, 6 },
{ 21, 255, NOTHING_block, 0 }, { 21, HELIPAD2, HELIPAD2_block, 7 }, { 21, HANGAR, 0, 23 }, { 21, 0, 0, 7 },
{ 22, 255, NOTHING_block, 0 }, { 22, HELIPAD3, HELIPAD3_block, 8 }, { 22, HANGAR, 0, 23 }, { 22, 0, 0, 8 },
{ 23, 0, HANGAR2_AREA_block, 24 }, // need to go to helihangar when waiting in air
{ 24, 0, HANGAR2_AREA_block, 1 },
{ 25, 0, NOTHING_block, 26 },
{ 26, 0, NOTHING_block, 27 },
{ 27, 0, NOTHING_block, 2 },
{ 28, 0, NOTHING_block, 29 },
{ 29, 0, NOTHING_block, 30 },
{ 30, 0, NOTHING_block, 31 },
{ 31, 0, NOTHING_block, 32 },
{ 32, 0, NOTHING_block, 25 },
{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
{ 20, TERMGROUP, NOTHING_block, 0 }, { 20, HELIPAD1, HELIPAD1_block, 6 }, { 20, HANGAR, 0, 23 }, { 20, TO_ALL, 0, 6 },
{ 21, TERMGROUP, NOTHING_block, 0 }, { 21, HELIPAD2, HELIPAD2_block, 7 }, { 21, HANGAR, 0, 23 }, { 21, TO_ALL, 0, 7 },
{ 22, TERMGROUP, NOTHING_block, 0 }, { 22, HELIPAD3, HELIPAD3_block, 8 }, { 22, HANGAR, 0, 23 }, { 22, TO_ALL, 0, 8 },
{ 23, TO_ALL, HANGAR2_AREA_block, 24 }, // need to go to helihangar when waiting in air
{ 24, TO_ALL, HANGAR2_AREA_block, 1 },
{ 25, TO_ALL, NOTHING_block, 26 },
{ 26, TO_ALL, NOTHING_block, 27 },
{ 27, TO_ALL, NOTHING_block, 2 },
{ 28, TO_ALL, NOTHING_block, 29 },
{ 29, TO_ALL, NOTHING_block, 30 },
{ 30, TO_ALL, NOTHING_block, 31 },
{ 31, TO_ALL, NOTHING_block, 32 },
{ 32, TO_ALL, NOTHING_block, 25 },
{ MAX_ELEMENTS, TO_ALL, 0, 0 } // end marker. DO NOT REMOVE
};
#endif /* AIRPORT_MOVEMENT_H */

View File

@@ -22,22 +22,16 @@
*/
#define MK(x, y, m) {{x, y}, m}
/**
* Terminator of industry tiles layout definition
*/
#define MKEND {{-0x80, 0}, 0}
static const IndustryTileTable _tile_table_coal_mine_0[] = {
static const IndustryTileLayout _tile_table_coal_mine_0 {
MK(1, 1, 0),
MK(1, 2, 2),
MK(0, 0, 5),
MK(1, 0, 6),
MK(2, 0, 3),
MK(2, 2, 3),
MKEND
};
static const IndustryTileTable _tile_table_coal_mine_1[] = {
static const IndustryTileLayout _tile_table_coal_mine_1 {
MK(1, 1, 0),
MK(1, 2, 2),
MK(2, 0, 0),
@@ -47,20 +41,18 @@ static const IndustryTileTable _tile_table_coal_mine_1[] = {
MK(0, 1, 4),
MK(0, 2, 4),
MK(2, 2, 4),
MKEND
};
static const IndustryTileTable _tile_table_coal_mine_2[] = {
static const IndustryTileLayout _tile_table_coal_mine_2 {
MK(0, 0, 0),
MK(0, 1, 2),
MK(0, 2, 5),
MK(1, 0, 3),
MK(1, 1, 3),
MK(1, 2, 6),
MKEND
};
static const IndustryTileTable _tile_table_coal_mine_3[] = {
static const IndustryTileLayout _tile_table_coal_mine_3 {
MK(0, 1, 0),
MK(0, 2, 2),
MK(0, 3, 4),
@@ -71,17 +63,16 @@ static const IndustryTileTable _tile_table_coal_mine_3[] = {
MK(2, 0, 6),
MK(2, 1, 4),
MK(2, 2, 3),
MKEND
};
static const IndustryTileTable * const _tile_table_coal_mine[] = {
static const std::vector<IndustryTileLayout> _tile_table_coal_mine {
_tile_table_coal_mine_0,
_tile_table_coal_mine_1,
_tile_table_coal_mine_2,
_tile_table_coal_mine_3,
};
static const IndustryTileTable _tile_table_power_station_0[] = {
static const IndustryTileLayout _tile_table_power_station_0 {
MK(0, 0, 7),
MK(0, 1, 9),
MK(1, 0, 7),
@@ -90,10 +81,9 @@ static const IndustryTileTable _tile_table_power_station_0[] = {
MK(2, 1, 8),
MK(3, 0, 10),
MK(3, 1, 10),
MKEND
};
static const IndustryTileTable _tile_table_power_station_1[] = {
static const IndustryTileLayout _tile_table_power_station_1 {
MK(0, 1, 7),
MK(0, 2, 7),
MK(1, 0, 8),
@@ -102,26 +92,24 @@ static const IndustryTileTable _tile_table_power_station_1[] = {
MK(2, 0, 9),
MK(2, 1, 10),
MK(2, 2, 9),
MKEND
};
static const IndustryTileTable _tile_table_power_station_2[] = {
static const IndustryTileLayout _tile_table_power_station_2 {
MK(0, 0, 7),
MK(0, 1, 7),
MK(1, 0, 9),
MK(1, 1, 8),
MK(2, 0, 10),
MK(2, 1, 9),
MKEND
};
static const IndustryTileTable * const _tile_table_power_station[] = {
static const std::vector<IndustryTileLayout> _tile_table_power_station {
_tile_table_power_station_0,
_tile_table_power_station_1,
_tile_table_power_station_2,
};
static const IndustryTileTable _tile_table_sawmill_0[] = {
static const IndustryTileLayout _tile_table_sawmill_0 {
MK(1, 0, 14),
MK(1, 1, 12),
MK(1, 2, 11),
@@ -130,10 +118,9 @@ static const IndustryTileTable _tile_table_sawmill_0[] = {
MK(0, 0, 15),
MK(0, 1, 15),
MK(0, 2, 12),
MKEND
};
static const IndustryTileTable _tile_table_sawmill_1[] = {
static const IndustryTileLayout _tile_table_sawmill_1 {
MK(0, 0, 15),
MK(0, 1, 11),
MK(0, 2, 14),
@@ -142,15 +129,14 @@ static const IndustryTileTable _tile_table_sawmill_1[] = {
MK(1, 2, 12),
MK(2, 0, 11),
MK(2, 1, 13),
MKEND
};
static const IndustryTileTable * const _tile_table_sawmill[] = {
static const std::vector<IndustryTileLayout> _tile_table_sawmill {
_tile_table_sawmill_0,
_tile_table_sawmill_1,
};
static const IndustryTileTable _tile_table_forest_0[] = {
static const IndustryTileLayout _tile_table_forest_0 {
MK(0, 0, 16),
MK(0, 1, 16),
MK(0, 2, 16),
@@ -169,10 +155,9 @@ static const IndustryTileTable _tile_table_forest_0[] = {
MK(3, 3, 16),
MK(1, 4, 16),
MK(2, 4, 16),
MKEND
};
static const IndustryTileTable _tile_table_forest_1[] = {
static const IndustryTileLayout _tile_table_forest_1 {
MK(0, 0, 16),
MK(1, 0, 16),
MK(2, 0, 16),
@@ -196,15 +181,14 @@ static const IndustryTileTable _tile_table_forest_1[] = {
MK(1, 4, 16),
MK(2, 4, 16),
MK(3, 4, 16),
MKEND
};
static const IndustryTileTable * const _tile_table_forest[] = {
static const std::vector<IndustryTileLayout> _tile_table_forest {
_tile_table_forest_0,
_tile_table_forest_1,
};
static const IndustryTileTable _tile_table_oil_refinery_0[] = {
static const IndustryTileLayout _tile_table_oil_refinery_0 {
MK(0, 0, 20),
MK(0, 1, 21),
MK(0, 2, 22),
@@ -220,10 +204,9 @@ static const IndustryTileTable _tile_table_oil_refinery_0[] = {
MK(3, 3, 18),
MK(2, 0, 23),
MK(3, 1, 23),
MKEND
};
static const IndustryTileTable _tile_table_oil_refinery_1[] = {
static const IndustryTileLayout _tile_table_oil_refinery_1 {
MK(0, 0, 18),
MK(0, 1, 18),
MK(0, 2, 21),
@@ -239,15 +222,14 @@ static const IndustryTileTable _tile_table_oil_refinery_1[] = {
MK(2, 3, 22),
MK(1, 4, 23),
MK(2, 4, 23),
MKEND
};
static const IndustryTileTable * const _tile_table_oil_refinery[] = {
static const std::vector<IndustryTileLayout> _tile_table_oil_refinery {
_tile_table_oil_refinery_0,
_tile_table_oil_refinery_1,
};
static const IndustryTileTable _tile_table_oil_rig_0[] = {
static const IndustryTileLayout _tile_table_oil_rig_0 {
MK(0, 0, 24),
MK(0, 1, 24),
MK(0, 2, 25),
@@ -306,14 +288,13 @@ static const IndustryTileTable _tile_table_oil_rig_0[] = {
MK(2, 3, 255),
MK(2, 2, 255),
MK(2, 1, 255),
MKEND
};
static const IndustryTileTable * const _tile_table_oil_rig[] = {
static const std::vector<IndustryTileLayout> _tile_table_oil_rig {
_tile_table_oil_rig_0,
};
static const IndustryTileTable _tile_table_factory_0[] = {
static const IndustryTileLayout _tile_table_factory_0 {
MK(0, 0, 39),
MK(0, 1, 40),
MK(1, 0, 41),
@@ -326,10 +307,9 @@ static const IndustryTileTable _tile_table_factory_0[] = {
MK(2, 2, 40),
MK(3, 1, 41),
MK(3, 2, 42),
MKEND
};
static const IndustryTileTable _tile_table_factory_1[] = {
static const IndustryTileLayout _tile_table_factory_1 {
MK(0, 0, 39),
MK(0, 1, 40),
MK(1, 0, 41),
@@ -342,15 +322,14 @@ static const IndustryTileTable _tile_table_factory_1[] = {
MK(1, 3, 40),
MK(2, 2, 41),
MK(2, 3, 42),
MKEND
};
static const IndustryTileTable * const _tile_table_factory[] = {
static const std::vector<IndustryTileLayout> _tile_table_factory {
_tile_table_factory_0,
_tile_table_factory_1,
};
static const IndustryTileTable _tile_table_printing_works_0[] = {
static const IndustryTileLayout _tile_table_printing_works_0 {
MK(0, 0, 43),
MK(0, 1, 44),
MK(1, 0, 45),
@@ -363,10 +342,9 @@ static const IndustryTileTable _tile_table_printing_works_0[] = {
MK(2, 2, 44),
MK(3, 1, 45),
MK(3, 2, 46),
MKEND
};
static const IndustryTileTable _tile_table_printing_works_1[] = {
static const IndustryTileLayout _tile_table_printing_works_1 {
MK(0, 0, 43),
MK(0, 1, 44),
MK(1, 0, 45),
@@ -379,15 +357,14 @@ static const IndustryTileTable _tile_table_printing_works_1[] = {
MK(1, 3, 44),
MK(2, 2, 45),
MK(2, 3, 46),
MKEND
};
static const IndustryTileTable * const _tile_table_printing_works[] = {
static const std::vector<IndustryTileLayout> _tile_table_printing_works {
_tile_table_printing_works_0,
_tile_table_printing_works_1,
};
static const IndustryTileTable _tile_table_steel_mill_0[] = {
static const IndustryTileLayout _tile_table_steel_mill_0 {
MK(2, 1, 52),
MK(2, 2, 53),
MK(3, 1, 54),
@@ -400,10 +377,9 @@ static const IndustryTileTable _tile_table_steel_mill_0[] = {
MK(1, 2, 57),
MK(2, 0, 56),
MK(3, 0, 57),
MKEND
};
static const IndustryTileTable _tile_table_steel_mill_1[] = {
static const IndustryTileLayout _tile_table_steel_mill_1 {
MK(0, 0, 52),
MK(0, 1, 53),
MK(1, 0, 54),
@@ -418,15 +394,14 @@ static const IndustryTileTable _tile_table_steel_mill_1[] = {
MK(3, 2, 57),
MK(1, 3, 56),
MK(2, 3, 57),
MKEND
};
static const IndustryTileTable * const _tile_table_steel_mill[] = {
static const std::vector<IndustryTileLayout> _tile_table_steel_mill {
_tile_table_steel_mill_0,
_tile_table_steel_mill_1,
};
static const IndustryTileTable _tile_table_farm_0[] = {
static const IndustryTileLayout _tile_table_farm_0 {
MK(1, 0, 33),
MK(1, 1, 34),
MK(1, 2, 36),
@@ -436,10 +411,9 @@ static const IndustryTileTable _tile_table_farm_0[] = {
MK(2, 0, 35),
MK(2, 1, 38),
MK(2, 2, 38),
MKEND
};
static const IndustryTileTable _tile_table_farm_1[] = {
static const IndustryTileLayout _tile_table_farm_1 {
MK(1, 1, 33),
MK(1, 2, 34),
MK(0, 0, 35),
@@ -452,10 +426,9 @@ static const IndustryTileTable _tile_table_farm_1[] = {
MK(2, 1, 37),
MK(2, 2, 38),
MK(2, 3, 38),
MKEND
};
static const IndustryTileTable _tile_table_farm_2[] = {
static const IndustryTileLayout _tile_table_farm_2 {
MK(2, 0, 33),
MK(2, 1, 34),
MK(0, 0, 36),
@@ -468,16 +441,15 @@ static const IndustryTileTable _tile_table_farm_2[] = {
MK(1, 3, 37),
MK(2, 2, 37),
MK(2, 3, 35),
MKEND
};
static const IndustryTileTable * const _tile_table_farm[] = {
static const std::vector<IndustryTileLayout> _tile_table_farm {
_tile_table_farm_0,
_tile_table_farm_1,
_tile_table_farm_2,
};
static const IndustryTileTable _tile_table_copper_mine_0[] = {
static const IndustryTileLayout _tile_table_copper_mine_0 {
MK(0, 0, 47),
MK(0, 1, 49),
MK(0, 2, 51),
@@ -486,10 +458,9 @@ static const IndustryTileTable _tile_table_copper_mine_0[] = {
MK(1, 2, 50),
MK(2, 0, 51),
MK(2, 1, 51),
MKEND
};
static const IndustryTileTable _tile_table_copper_mine_1[] = {
static const IndustryTileLayout _tile_table_copper_mine_1 {
MK(0, 0, 50),
MK(0, 1, 47),
MK(0, 2, 49),
@@ -499,48 +470,44 @@ static const IndustryTileTable _tile_table_copper_mine_1[] = {
MK(2, 0, 51),
MK(2, 1, 47),
MK(2, 2, 49),
MKEND
};
static const IndustryTileTable * const _tile_table_copper_mine[] = {
static const std::vector<IndustryTileLayout> _tile_table_copper_mine {
_tile_table_copper_mine_0,
_tile_table_copper_mine_1,
};
static const IndustryTileTable _tile_table_oil_well_0[] = {
static const IndustryTileLayout _tile_table_oil_well_0 {
MK(0, 0, 29),
MK(1, 0, 29),
MK(2, 0, 29),
MK(0, 1, 29),
MK(0, 2, 29),
MKEND
};
static const IndustryTileTable _tile_table_oil_well_1[] = {
static const IndustryTileLayout _tile_table_oil_well_1 {
MK(0, 0, 29),
MK(1, 0, 29),
MK(1, 1, 29),
MK(2, 2, 29),
MK(2, 3, 29),
MKEND
};
static const IndustryTileTable * const _tile_table_oil_well[] = {
static const std::vector<IndustryTileLayout> _tile_table_oil_well {
_tile_table_oil_well_0,
_tile_table_oil_well_1,
};
static const IndustryTileTable _tile_table_bank_0[] = {
static const IndustryTileLayout _tile_table_bank_0 {
MK(0, 0, 58),
MK(1, 0, 59),
MKEND
};
static const IndustryTileTable * const _tile_table_bank[] = {
static const std::vector<IndustryTileLayout> _tile_table_bank {
_tile_table_bank_0,
};
static const IndustryTileTable _tile_table_food_process_0[] = {
static const IndustryTileLayout _tile_table_food_process_0 {
MK(0, 0, 60),
MK(1, 0, 60),
MK(2, 0, 60),
@@ -553,10 +520,9 @@ static const IndustryTileTable _tile_table_food_process_0[] = {
MK(0, 3, 62),
MK(1, 3, 62),
MK(2, 3, 63),
MKEND
};
static const IndustryTileTable _tile_table_food_process_1[] = {
static const IndustryTileLayout _tile_table_food_process_1 {
MK(0, 0, 61),
MK(1, 0, 60),
MK(2, 0, 61),
@@ -571,15 +537,14 @@ static const IndustryTileTable _tile_table_food_process_1[] = {
MK(3, 2, 60),
MK(0, 3, 62),
MK(1, 3, 62),
MKEND
};
static const IndustryTileTable * const _tile_table_food_process[] = {
static const std::vector<IndustryTileLayout> _tile_table_food_process {
_tile_table_food_process_0,
_tile_table_food_process_1,
};
static const IndustryTileTable _tile_table_paper_mill_0[] = {
static const IndustryTileLayout _tile_table_paper_mill_0 {
MK(0, 0, 64),
MK(1, 0, 65),
MK(2, 0, 66),
@@ -592,14 +557,13 @@ static const IndustryTileTable _tile_table_paper_mill_0[] = {
MK(1, 2, 71),
MK(2, 2, 71),
MK(3, 2, 70),
MKEND
};
static const IndustryTileTable * const _tile_table_paper_mill[] = {
static const std::vector<IndustryTileLayout> _tile_table_paper_mill {
_tile_table_paper_mill_0,
};
static const IndustryTileTable _tile_table_gold_mine_0[] = {
static const IndustryTileLayout _tile_table_gold_mine_0 {
MK(0, 0, 72),
MK(0, 1, 73),
MK(0, 2, 74),
@@ -616,24 +580,22 @@ static const IndustryTileTable _tile_table_gold_mine_0[] = {
MK(3, 1, 85),
MK(3, 2, 86),
MK(3, 3, 87),
MKEND
};
static const IndustryTileTable * const _tile_table_gold_mine[] = {
static const std::vector<IndustryTileLayout> _tile_table_gold_mine {
_tile_table_gold_mine_0,
};
static const IndustryTileTable _tile_table_bank2_0[] = {
static const IndustryTileLayout _tile_table_bank2_0 {
MK(0, 0, 89),
MK(1, 0, 90),
MKEND
};
static const IndustryTileTable * const _tile_table_bank2[] = {
static const std::vector<IndustryTileLayout> _tile_table_bank2 {
_tile_table_bank2_0,
};
static const IndustryTileTable _tile_table_diamond_mine_0[] = {
static const IndustryTileLayout _tile_table_diamond_mine_0 {
MK(0, 0, 91),
MK(0, 1, 92),
MK(0, 2, 93),
@@ -643,14 +605,13 @@ static const IndustryTileTable _tile_table_diamond_mine_0[] = {
MK(2, 0, 97),
MK(2, 1, 98),
MK(2, 2, 99),
MKEND
};
static const IndustryTileTable * const _tile_table_diamond_mine[] = {
static const std::vector<IndustryTileLayout> _tile_table_diamond_mine {
_tile_table_diamond_mine_0,
};
static const IndustryTileTable _tile_table_iron_mine_0[] = {
static const IndustryTileLayout _tile_table_iron_mine_0 {
MK(0, 0, 100),
MK(0, 1, 101),
MK(0, 2, 102),
@@ -667,14 +628,13 @@ static const IndustryTileTable _tile_table_iron_mine_0[] = {
MK(3, 1, 113),
MK(3, 2, 114),
MK(3, 3, 115),
MKEND
};
static const IndustryTileTable * const _tile_table_iron_mine[] = {
static const std::vector<IndustryTileLayout> _tile_table_iron_mine {
_tile_table_iron_mine_0,
};
static const IndustryTileTable _tile_table_fruit_plantation_0[] = {
static const IndustryTileLayout _tile_table_fruit_plantation_0 {
MK(0, 0, 116),
MK(0, 1, 116),
MK(0, 2, 116),
@@ -695,14 +655,13 @@ static const IndustryTileTable _tile_table_fruit_plantation_0[] = {
MK(4, 1, 116),
MK(4, 2, 116),
MK(4, 3, 116),
MKEND
};
static const IndustryTileTable * const _tile_table_fruit_plantation[] = {
static const std::vector<IndustryTileLayout> _tile_table_fruit_plantation {
_tile_table_fruit_plantation_0,
};
static const IndustryTileTable _tile_table_rubber_plantation_0[] = {
static const IndustryTileLayout _tile_table_rubber_plantation_0 {
MK(0, 0, 117),
MK(0, 1, 117),
MK(0, 2, 117),
@@ -723,35 +682,32 @@ static const IndustryTileTable _tile_table_rubber_plantation_0[] = {
MK(4, 1, 117),
MK(4, 2, 117),
MK(4, 3, 117),
MKEND
};
static const IndustryTileTable * const _tile_table_rubber_plantation[] = {
static const std::vector<IndustryTileLayout> _tile_table_rubber_plantation {
_tile_table_rubber_plantation_0,
};
static const IndustryTileTable _tile_table_water_supply_0[] = {
static const IndustryTileLayout _tile_table_water_supply_0 {
MK(0, 0, 118),
MK(0, 1, 119),
MK(1, 0, 118),
MK(1, 1, 119),
MKEND
};
static const IndustryTileTable * const _tile_table_water_supply[] = {
static const std::vector<IndustryTileLayout> _tile_table_water_supply {
_tile_table_water_supply_0,
};
static const IndustryTileTable _tile_table_water_tower_0[] = {
static const IndustryTileLayout _tile_table_water_tower_0 {
MK(0, 0, 120),
MKEND
};
static const IndustryTileTable * const _tile_table_water_tower[] = {
static const std::vector<IndustryTileLayout> _tile_table_water_tower {
_tile_table_water_tower_0,
};
static const IndustryTileTable _tile_table_factory2_0[] = {
static const IndustryTileLayout _tile_table_factory2_0 {
MK(0, 0, 121),
MK(0, 1, 122),
MK(1, 0, 123),
@@ -760,10 +716,9 @@ static const IndustryTileTable _tile_table_factory2_0[] = {
MK(0, 3, 122),
MK(1, 2, 123),
MK(1, 3, 124),
MKEND
};
static const IndustryTileTable _tile_table_factory2_1[] = {
static const IndustryTileLayout _tile_table_factory2_1 {
MK(0, 0, 121),
MK(0, 1, 122),
MK(1, 0, 123),
@@ -772,15 +727,14 @@ static const IndustryTileTable _tile_table_factory2_1[] = {
MK(2, 1, 122),
MK(3, 0, 123),
MK(3, 1, 124),
MKEND
};
static const IndustryTileTable * const _tile_table_factory2[] = {
static const std::vector<IndustryTileLayout> _tile_table_factory2 {
_tile_table_factory2_0,
_tile_table_factory2_1,
};
static const IndustryTileTable _tile_table_farm2_0[] = {
static const IndustryTileLayout _tile_table_farm2_0 {
MK(1, 0, 33),
MK(1, 1, 34),
MK(1, 2, 36),
@@ -790,10 +744,9 @@ static const IndustryTileTable _tile_table_farm2_0[] = {
MK(2, 0, 35),
MK(2, 1, 38),
MK(2, 2, 38),
MKEND
};
static const IndustryTileTable _tile_table_farm2_1[] = {
static const IndustryTileLayout _tile_table_farm2_1 {
MK(1, 1, 33),
MK(1, 2, 34),
MK(0, 0, 35),
@@ -806,10 +759,9 @@ static const IndustryTileTable _tile_table_farm2_1[] = {
MK(2, 1, 37),
MK(2, 2, 38),
MK(2, 3, 38),
MKEND
};
static const IndustryTileTable _tile_table_farm2_2[] = {
static const IndustryTileLayout _tile_table_farm2_2 {
MK(2, 0, 33),
MK(2, 1, 34),
MK(0, 0, 36),
@@ -822,28 +774,26 @@ static const IndustryTileTable _tile_table_farm2_2[] = {
MK(1, 3, 37),
MK(2, 2, 37),
MK(2, 3, 35),
MKEND
};
static const IndustryTileTable * const _tile_table_farm2[] = {
static const std::vector<IndustryTileLayout> _tile_table_farm2 {
_tile_table_farm2_0,
_tile_table_farm2_1,
_tile_table_farm2_2,
};
static const IndustryTileTable _tile_table_lumber_mill_0[] = {
static const IndustryTileLayout _tile_table_lumber_mill_0 {
MK(0, 0, 125),
MK(0, 1, 126),
MK(1, 0, 127),
MK(1, 1, 128),
MKEND
};
static const IndustryTileTable * const _tile_table_lumber_mill[] = {
static const std::vector<IndustryTileLayout> _tile_table_lumber_mill {
_tile_table_lumber_mill_0,
};
static const IndustryTileTable _tile_table_cotton_candy_0[] = {
static const IndustryTileLayout _tile_table_cotton_candy_0 {
MK(0, 0, 129),
MK(0, 1, 129),
MK(0, 2, 129),
@@ -862,10 +812,9 @@ static const IndustryTileTable _tile_table_cotton_candy_0[] = {
MK(3, 3, 129),
MK(1, 4, 129),
MK(2, 4, 129),
MKEND
};
static const IndustryTileTable _tile_table_cotton_candy_1[] = {
static const IndustryTileLayout _tile_table_cotton_candy_1 {
MK(0, 0, 129),
MK(1, 0, 129),
MK(2, 0, 129),
@@ -889,15 +838,14 @@ static const IndustryTileTable _tile_table_cotton_candy_1[] = {
MK(1, 4, 129),
MK(2, 4, 129),
MK(3, 4, 129),
MKEND
};
static const IndustryTileTable * const _tile_table_cotton_candy[] = {
static const std::vector<IndustryTileLayout> _tile_table_cotton_candy {
_tile_table_cotton_candy_0,
_tile_table_cotton_candy_1,
};
static const IndustryTileTable _tile_table_candy_factory_0[] = {
static const IndustryTileLayout _tile_table_candy_factory_0 {
MK(0, 0, 131),
MK(0, 1, 132),
MK(1, 0, 133),
@@ -910,10 +858,9 @@ static const IndustryTileTable _tile_table_candy_factory_0[] = {
MK(2, 2, 132),
MK(3, 1, 133),
MK(3, 2, 134),
MKEND
};
static const IndustryTileTable _tile_table_candy_factory_1[] = {
static const IndustryTileLayout _tile_table_candy_factory_1 {
MK(0, 0, 131),
MK(0, 1, 132),
MK(1, 0, 133),
@@ -926,15 +873,14 @@ static const IndustryTileTable _tile_table_candy_factory_1[] = {
MK(1, 3, 132),
MK(2, 2, 133),
MK(2, 3, 134),
MKEND
};
static const IndustryTileTable * const _tile_table_candy_factory[] = {
static const std::vector<IndustryTileLayout> _tile_table_candy_factory {
_tile_table_candy_factory_0,
_tile_table_candy_factory_1,
};
static const IndustryTileTable _tile_table_battery_farm_0[] = {
static const IndustryTileLayout _tile_table_battery_farm_0 {
MK(0, 0, 135),
MK(0, 1, 135),
MK(0, 2, 135),
@@ -955,14 +901,13 @@ static const IndustryTileTable _tile_table_battery_farm_0[] = {
MK(4, 1, 135),
MK(4, 2, 135),
MK(4, 3, 135),
MKEND
};
static const IndustryTileTable * const _tile_table_battery_farm[] = {
static const std::vector<IndustryTileLayout> _tile_table_battery_farm {
_tile_table_battery_farm_0,
};
static const IndustryTileTable _tile_table_cola_wells_0[] = {
static const IndustryTileLayout _tile_table_cola_wells_0 {
MK(0, 0, 137),
MK(0, 1, 137),
MK(0, 2, 137),
@@ -971,10 +916,9 @@ static const IndustryTileTable _tile_table_cola_wells_0[] = {
MK(1, 2, 137),
MK(2, 1, 137),
MK(2, 2, 137),
MKEND
};
static const IndustryTileTable _tile_table_cola_wells_1[] = {
static const IndustryTileLayout _tile_table_cola_wells_1 {
MK(0, 1, 137),
MK(0, 2, 137),
MK(0, 3, 137),
@@ -982,27 +926,25 @@ static const IndustryTileTable _tile_table_cola_wells_1[] = {
MK(1, 1, 137),
MK(1, 2, 137),
MK(2, 1, 137),
MKEND
};
static const IndustryTileTable * const _tile_table_cola_wells[] = {
static const std::vector<IndustryTileLayout> _tile_table_cola_wells {
_tile_table_cola_wells_0,
_tile_table_cola_wells_1,
};
static const IndustryTileTable _tile_table_toy_shop_0[] = {
static const IndustryTileLayout _tile_table_toy_shop_0 {
MK(0, 0, 138),
MK(0, 1, 139),
MK(1, 0, 140),
MK(1, 1, 141),
MKEND
};
static const IndustryTileTable * const _tile_table_toy_shop[] = {
static const std::vector<IndustryTileLayout> _tile_table_toy_shop {
_tile_table_toy_shop_0,
};
static const IndustryTileTable _tile_table_toy_factory_0[] = {
static const IndustryTileLayout _tile_table_toy_factory_0 {
MK(0, 0, 147),
MK(0, 1, 142),
MK(1, 0, 147),
@@ -1011,45 +953,41 @@ static const IndustryTileTable _tile_table_toy_factory_0[] = {
MK(2, 1, 144),
MK(3, 0, 146),
MK(3, 1, 145),
MKEND
};
static const IndustryTileTable * const _tile_table_toy_factory[] = {
static const std::vector<IndustryTileLayout> _tile_table_toy_factory {
_tile_table_toy_factory_0,
};
static const IndustryTileTable _tile_table_plastic_fountain_0[] = {
static const IndustryTileLayout _tile_table_plastic_fountain_0 {
MK(0, 0, 148),
MK(0, 1, 151),
MK(0, 2, 154),
MKEND
};
static const IndustryTileTable _tile_table_plastic_fountain_1[] = {
static const IndustryTileLayout _tile_table_plastic_fountain_1 {
MK(0, 0, 148),
MK(1, 0, 151),
MK(2, 0, 154),
MKEND
};
static const IndustryTileTable * const _tile_table_plastic_fountain[] = {
static const std::vector<IndustryTileLayout> _tile_table_plastic_fountain {
_tile_table_plastic_fountain_0,
_tile_table_plastic_fountain_1,
};
static const IndustryTileTable _tile_table_fizzy_drink_0[] = {
static const IndustryTileLayout _tile_table_fizzy_drink_0 {
MK(0, 0, 156),
MK(0, 1, 157),
MK(1, 0, 158),
MK(1, 1, 159),
MKEND
};
static const IndustryTileTable * const _tile_table_fizzy_drink[] = {
static const std::vector<IndustryTileLayout> _tile_table_fizzy_drink {
_tile_table_fizzy_drink_0,
};
static const IndustryTileTable _tile_table_bubble_generator_0[] = {
static const IndustryTileLayout _tile_table_bubble_generator_0 {
MK(0, 0, 163),
MK(0, 1, 160),
MK(1, 0, 163),
@@ -1062,25 +1000,23 @@ static const IndustryTileTable _tile_table_bubble_generator_0[] = {
MK(1, 3, 161),
MK(2, 2, 163),
MK(2, 3, 162),
MKEND
};
static const IndustryTileTable * const _tile_table_bubble_generator[] = {
static const std::vector<IndustryTileLayout> _tile_table_bubble_generator {
_tile_table_bubble_generator_0,
};
static const IndustryTileTable _tile_table_toffee_quarry_0[] = {
static const IndustryTileLayout _tile_table_toffee_quarry_0 {
MK(0, 0, 164),
MK(1, 0, 165),
MK(2, 0, 166),
MKEND
};
static const IndustryTileTable * const _tile_table_toffee_quarry[] = {
static const std::vector<IndustryTileLayout> _tile_table_toffee_quarry {
_tile_table_toffee_quarry_0,
};
static const IndustryTileTable _tile_table_sugar_mine_0[] = {
static const IndustryTileLayout _tile_table_sugar_mine_0 {
MK(0, 0, 167),
MK(0, 1, 168),
MK(1, 0, 169),
@@ -1089,15 +1025,13 @@ static const IndustryTileTable _tile_table_sugar_mine_0[] = {
MK(2, 1, 172),
MK(3, 0, 173),
MK(3, 1, 174),
MKEND
};
static const IndustryTileTable * const _tile_table_sugar_mine[] = {
static const std::vector<IndustryTileLayout> _tile_table_sugar_mine {
_tile_table_sugar_mine_0,
};
#undef MK
#undef MKEND
/** Array with saw sound, for sawmill */
static const uint8 _sawmill_sounds[] = { SND_28_SAWMILL };
@@ -1195,7 +1129,7 @@ enum IndustryTypes {
#define MI(tbl, sndc, snd, d, pc, ai1, ai2, ai3, ai4, ag1, ag2, ag3, ag4, col, \
c1, c2, c3, proc, p1, r1, p2, r2, m, a1, im1, a2, im2, a3, im3, pr, clim, bev, in, intx, s1, s2, s3) \
{tbl, lengthof(tbl), d, 0, pc, {c1, c2, c3}, proc, \
{tbl, d, 0, pc, {c1, c2, c3}, proc, \
{p1, p2, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID}, \
{r1, r2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, m, \
{a1, a2, a3, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID}, \

View File

@@ -1929,6 +1929,20 @@ str = STR_CONFIG_SETTING_ALLOW_SHARES
strhelp = STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT
proc = InvalidateCompanyWindow
[SDT_VAR]
base = GameSettings
var = economy.min_years_for_shares
type = SLE_UINT8
from = SLV_TRADING_AGE
def = 6
min = 0
max = 255
interval = 1
str = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES
strhelp = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT
strval = STR_JUST_INT
cat = SC_EXPERT
[SDT_VAR]
base = GameSettings
var = economy.feeder_payment_share