OpenTTD Source: src/table/airport_movement.h File Reference

OpenTTD Source 14.0-beta3

Data Structures | Macros | Variables
airport_movement.h File Reference

Go to the source code of this file.

## Data Structures
struct | AirportFTAbuildup
| State machine input struct (from external file, etc.) Finite sTate mAchine --> FTA. More...

## Macros
#define | AMD(x, y, flags, dir) { x, y, flags, dir }
| Airport movement data creation macro. More...
#define | _airport_entries_oilrig _airport_entries_heliport
#define | _airport_fta_oilrig _airport_fta_heliport

## Variables
static const AirportMovingData | _airport_moving_data_dummy []
| Dummy airport. More...
static const AirportMovingData | _airport_moving_data_country [22]
| Country Airfield (small) 4x3. More...
static const AirportMovingData | _airport_moving_data_commuter [38]
| Commuter Airfield (small) 5x4.
static const AirportMovingData | _airport_moving_data_city []
| City Airport (large) 6x6.
static const AirportMovingData | _airport_moving_data_metropolitan [28]
| Metropolitan Airport (metropolitan) - 2 runways. More...
static const AirportMovingData | _airport_moving_data_international [53]
| International Airport (international) - 2 runways, 6 terminals, dedicated helipad.
static const AirportMovingData | _airport_moving_data_intercontinental [77]
| Intercontinental Airport - 4 runways, 8 terminals, 2 dedicated helipads.
static const AirportMovingData | _airport_moving_data_heliport [9]
| Heliport (heliport). More...
static const AirportMovingData | _airport_moving_data_helidepot [18]
| HeliDepot 2x2 (heliport). More...
static const AirportMovingData | _airport_moving_data_helistation [33]
| HeliDepot 2x2 (heliport).
static const AirportMovingData | _airport_moving_data_oilrig [9]
| Oilrig. More...
static const byte | _airport_entries_dummy [] = {0, 1, 2, 3}
static const AirportFTAbuildup | _airport_fta_dummy []
static const HangarTileTable | _airport_depots_country [] = { {{3, 0}, DIR_SE, 0} }
static const byte | _airport_terminal_country [] = {1, 2}
static const byte | _airport_entries_country [] = {16, 15, 18, 17}
static const AirportFTAbuildup | _airport_fta_country []
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 []
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 []
static const HangarTileTable | _airport_depots_metropolitan [] = { {{5, 0}, DIR_SE, 0} }
static const byte | _airport_terminal_metropolitan [] = { 1, 3 }
static const byte | _airport_entries_metropolitan [] = {20, 19, 22, 21}
static const AirportFTAbuildup | _airport_fta_metropolitan []
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 []
static const HangarTileTable | _airport_depots_intercontinental [] = { {{0, 5}, DIR_SE, 0}, {{8, 4}, DIR_SE, 1} }
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 []
static const byte | _airport_entries_heliport [] = { 7, 7, 7, 7 }
static const AirportFTAbuildup | _airport_fta_heliport []
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 []
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 []

## Detailed Description

Heart of the airports and their finite state machines

Definition in file airport_movement.h.

## Macro Definition Documentation

## ◆ AMD

#define AMD | ( |  | x,
|  |  | y,
|  |  | flags,
|  |  | dir
| ) |  | { x, y, flags, dir }

Airport movement data creation macro.

Parameters

  x | X position.
  y | Y position.
  flags | Movement flags.
  dir | Direction.

Definition at line 35 of file airport_movement.h.

## Variable Documentation

## ◆ _airport_fta_country

const AirportFTAbuildup _airport_fta_country[]
| static

Initial value:
= {
{ 0, HANGAR, NOTHING_block, 1 },
{ 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, 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 },
{ 7, TAKEOFF, AIRPORT_BUSY_block, 8 },
{ 8, STARTTAKEOFF, NOTHING_block, 9 },
{ 9, ENDTAKEOFF, NOTHING_block, 0 },
{ 10, FLYING, NOTHING_block, 15 }, { 10, LANDING, 0, 11 }, { 10, HELILANDING, 0, 20 },
{ 11, LANDING, AIRPORT_BUSY_block, 12 },
{ 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 },
{ 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, TO_ALL, 0, 0 }
}

Definition at line 424 of file airport_movement.h.

## ◆ _airport_fta_dummy

const AirportFTAbuildup _airport_fta_dummy[]
| static

Initial value:
= {
{ 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 }
}

Definition at line 411 of file airport_movement.h.

## ◆ _airport_fta_helidepot

const AirportFTAbuildup _airport_fta_helidepot[]
| static

Initial value:
= {
{ 0, HANGAR, NOTHING_block, 1 },
{ 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 },
{ 3, 0, NOTHING_block, 4 },
{ 4, 0, NOTHING_block, 5 },
{ 5, 0, NOTHING_block, 6 },
{ 6, 0, NOTHING_block, 2 },
{ 7, HELILANDING, PRE_HELIPAD_block, 8 },
{ 8, HELIENDLANDING, PRE_HELIPAD_block, 8 }, { 8, HELIPAD1, 0, 9 }, { 8, HANGAR, 0, 12 }, { 8, TO_ALL, 0, 2 },
{ 9, 0, NOTHING_block, 10 },
{ 10, TERMGROUP, NOTHING_block, 10 }, { 10, HELIPAD1, HELIPAD1_block, 14 }, { 10, HANGAR, 0, 1 }, { 10, TO_ALL, 0, 14 },
{ 11, HELITAKEOFF, NOTHING_block, 0 },
{ 12, TO_ALL, HANGAR2_AREA_block, 13 },
{ 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 },
{ 16, HELITAKEOFF, 0, 14 },
{ 17, TO_ALL, NOTHING_block, 11 },
{ MAX_ELEMENTS, TO_ALL, 0, 0 }
}

Definition at line 765 of file airport_movement.h.

## ◆ _airport_fta_heliport

const AirportFTAbuildup _airport_fta_heliport[]
| static

Initial value:
= {
{ 0, HELIPAD1, HELIPAD1_block, 1 },
{ 1, HELITAKEOFF, NOTHING_block, 0 },
{ 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 },
{ 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 },
{ MAX_ELEMENTS, TO_ALL, 0, 0 }
}

Definition at line 746 of file airport_movement.h.

## ◆ _airport_moving_data_country

const AirportMovingData _airport_moving_data_country[22]
| static

Initial value:
= {
AMD( 53, 3, AMED_EXACTPOS, DIR_SE),
AMD( 53, 27, 0, DIR_N ),
AMD( 32, 23, AMED_EXACTPOS, DIR_NW),
AMD( 10, 23, AMED_EXACTPOS, DIR_NW),
AMD( 43, 37, 0, DIR_N ),
AMD( 24, 37, 0, DIR_N ),
AMD( 53, 37, 0, DIR_N ),
AMD( 61, 40, AMED_EXACTPOS, DIR_NE),
AMD( 3, 40, AMED_NOSPDCLAMP, DIR_N ),
AMD( -79, 40, AMED_NOSPDCLAMP | AMED_TAKEOFF, DIR_N ),
AMD( 177, 40, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 56, 40, AMED_NOSPDCLAMP | AMED_LAND, DIR_N ),
AMD( 3, 40, AMED_NOSPDCLAMP | AMED_BRAKE, DIR_N ),
AMD( 7, 40, 0, DIR_N ),
AMD( 53, 40, 0, DIR_N ),
AMD( 1, 193, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 1, 1, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 257, 1, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 273, 47, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 44, 37, AMED_HELI_RAISE, DIR_N ),
AMD( 44, 40, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 44, 40, AMED_HELI_LOWER, DIR_N ),
}

Country Airfield (small) 4x3.

Definition at line 46 of file airport_movement.h.

## ◆ _airport_moving_data_dummy

const AirportMovingData _airport_moving_data_dummy[]
| static

Initial value:
= {
AMD( 0, 0, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 0, 96, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 96, 96, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 96, 0, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
}

Dummy airport.

Definition at line 38 of file airport_movement.h.

## ◆ _airport_moving_data_helidepot

const AirportMovingData _airport_moving_data_helidepot[18]
| static

Initial value:
= {
AMD( 24, 4, AMED_EXACTPOS, DIR_NE),
AMD( 24, 28, 0, DIR_N ),
AMD( 5, 38, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( -15, -15, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( -15, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 49, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 49, -15, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 8, 32, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_NW),
AMD( 8, 32, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_NW),
AMD( 8, 16, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_NW),
AMD( 8, 16, AMED_HELI_LOWER, DIR_NW),
AMD( 8, 24, AMED_HELI_RAISE, DIR_N ),
AMD( 32, 24, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_NW),
AMD( 32, 24, AMED_HELI_LOWER, DIR_NW),
AMD( 8, 24, AMED_EXACTPOS, DIR_NW),
AMD( 24, 28, AMED_HELI_RAISE, DIR_N ),
AMD( 8, 24, AMED_HELI_RAISE, DIR_SW),
AMD( 8, 24, AMED_SLOWTURN | AMED_EXACTPOS, DIR_E ),
}

HeliDepot 2x2 (heliport).

Definition at line 335 of file airport_movement.h.

## ◆ _airport_moving_data_heliport

const AirportMovingData _airport_moving_data_heliport[9]
| static

Initial value:
= {
AMD( 5, 9, AMED_EXACTPOS, DIR_NE),
AMD( 2, 9, AMED_HELI_RAISE, DIR_N ),
AMD( -3, 9, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( -3, 9, AMED_HELI_LOWER, DIR_N ),
AMD( 2, 9, 0, DIR_N ),
AMD( -31, 59, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( -31, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 49, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 70, 9, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
}

Heliport (heliport).

Definition at line 322 of file airport_movement.h.

## ◆ _airport_moving_data_metropolitan

const AirportMovingData _airport_moving_data_metropolitan[28]
| static

Initial value:
= {
AMD( 85, 3, AMED_EXACTPOS, DIR_SE),
AMD( 85, 22, 0, DIR_N ),
AMD( 26, 41, AMED_EXACTPOS, DIR_SW),
AMD( 56, 22, AMED_EXACTPOS, DIR_SE),
AMD( 38, 8, AMED_EXACTPOS, DIR_SW),
AMD( 65, 6, 0, DIR_N ),
AMD( 80, 27, 0, DIR_N ),
AMD( 49, 58, 0, DIR_N ),
AMD( 72, 58, 0, DIR_N ),
AMD( 72, 69, 0, DIR_N ),
AMD( 89, 69, AMED_EXACTPOS, DIR_NE),
AMD( 3, 69, AMED_NOSPDCLAMP, DIR_N ),
AMD( -79, 69, AMED_NOSPDCLAMP | AMED_TAKEOFF, DIR_N ),
AMD( 177, 85, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 89, 85, AMED_NOSPDCLAMP | AMED_LAND, DIR_N ),
AMD( 3, 85, AMED_NOSPDCLAMP | AMED_BRAKE, DIR_N ),
AMD( 21, 85, 0, DIR_N ),
AMD( 21, 69, 0, DIR_N ),
AMD( 21, 58, AMED_EXACTPOS, DIR_SW),
AMD( 1, 193, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 1, 1, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 257, 1, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 273, 49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 44, 58, 0, DIR_N ),
AMD( 44, 63, AMED_HELI_RAISE, DIR_N ),
AMD( 15, 54, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 15, 54, AMED_HELI_LOWER, DIR_N ),
AMD( 21, 58, AMED_EXACTPOS, DIR_SW),
}

Metropolitan Airport (metropolitan) - 2 runways.

Definition at line 149 of file airport_movement.h.

## ◆ _airport_moving_data_oilrig

const AirportMovingData _airport_moving_data_oilrig[9]
| static

Initial value:
= {
AMD( 31, 9, AMED_EXACTPOS, DIR_NE),
AMD( 28, 9, AMED_HELI_RAISE, DIR_N ),
AMD( 23, 9, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 23, 9, AMED_HELI_LOWER, DIR_N ),
AMD( 28, 9, 0, DIR_N ),
AMD( -31, 69, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( -31, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 69, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
AMD( 69, 9, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
}

Oilrig.

Definition at line 394 of file airport_movement.h.

HELILANDING
@ HELILANDING
Helicopter wants to land.
Definition: airport.h:78
DIR_SW
@ DIR_SW
Southwest.
Definition: direction_type.h:31
ENDTAKEOFF
@ ENDTAKEOFF
Airplane has reached end-point of the take-off runway.
Definition: airport.h:73
DIR_SE
@ DIR_SE
Southeast.
Definition: direction_type.h:29
AMED_LAND
@ AMED_LAND
Landing onto landing strip.
Definition: airport.h:51
HELIENDLANDING
@ HELIENDLANDING
Helicopter wants to finish landing.
Definition: airport.h:79
DIR_NW
@ DIR_NW
Northwest.
Definition: direction_type.h:33
HELIPAD1_block
static const uint64_t HELIPAD1_block
Block belonging to helipad 1.
Definition: airport.h:95
AMED_TAKEOFF
@ AMED_TAKEOFF
Takeoff movement.
Definition: airport.h:49
TERM1
@ TERM1
Heading for terminal 1.
Definition: airport.h:63
ENDLANDING
@ ENDLANDING
Airplane wants to finish landing.
Definition: airport.h:77
DIR_N
@ DIR_N
North.
Definition: direction_type.h:26
HANGAR
@ HANGAR
Heading for hangar.
Definition: airport.h:62
AMED_EXACTPOS
@ AMED_EXACTPOS
Go exactly to the destination coordinates.
Definition: airport.h:52
AMED_SLOWTURN
@ AMED_SLOWTURN
Turn slowly (mostly used in the air).
Definition: airport.h:50
DIR_E
@ DIR_E
East.
Definition: direction_type.h:28
DIR_NE
@ DIR_NE
Northeast.
Definition: direction_type.h:27
TERM2_block
static const uint64_t TERM2_block
Block belonging to terminal 2.
Definition: airport.h:90
TERM1_block
static const uint64_t TERM1_block
Movement Blocks on Airports blocks (eg_airport_flags).
Definition: airport.h:89
TERM2
@ TERM2
Heading for terminal 2.
Definition: airport.h:64
AMD
#define AMD(x, y, flags, dir)
Airport movement data creation macro.
Definition: airport_movement.h:35
MAX_ELEMENTS
static const uint MAX_ELEMENTS
maximum number of aircraft positions at airport
Definition: airport.h:19
HELIPAD1
@ HELIPAD1
Heading for helipad 1.
Definition: airport.h:69
HELITAKEOFF
@ HELITAKEOFF
Helicopter wants to leave the airport.
Definition: airport.h:74
TERMGROUP
@ TERMGROUP
Aircraft is looking for a free terminal in a terminalgroup.
Definition: airport.h:84
TO_ALL
@ TO_ALL
Go in this direction for every target.
Definition: airport.h:61
STARTTAKEOFF
@ STARTTAKEOFF
Airplane has arrived at a runway for take-off.
Definition: airport.h:72
AMED_HELI_RAISE
@ AMED_HELI_RAISE
Helicopter take-off.
Definition: airport.h:54
LANDING
@ LANDING
Airplane wants to land.
Definition: airport.h:76
TAKEOFF
@ TAKEOFF
Airplane wants to leave the airport.
Definition: airport.h:71
FLYING
@ FLYING
Vehicle is flying in the air.
Definition: airport.h:75
AMED_HELI_LOWER
@ AMED_HELI_LOWER
Helicopter landing.
Definition: airport.h:55
AMED_BRAKE
@ AMED_BRAKE
Taxiing at the airport.
Definition: airport.h:53
AMED_NOSPDCLAMP
@ AMED_NOSPDCLAMP
No speed restrictions.
Definition: airport.h:48