OpenTTD Source 20241224-master-gf74b0cf984
Airport Struct Reference

All airport-related information. More...

#include <station_base.h>

Inheritance diagram for Airport:
OrthogonalTileArea

Public Member Functions

const AirportSpecGetSpec () const
 Get the AirportSpec that from the airport type of this airport.
 
const AirportFTAClassGetFTA () const
 Get the finite-state machine for this airport or the finite-state machine for the dummy airport in case this isn't an airport.
 
bool HasHangar () const
 Check if this airport has at least one hangar.
 
TileIndex GetRotatedTileFromOffset (TileIndexDiffC tidc) const
 Add the tileoffset to the base tile of this airport but rotate it first.
 
TileIndex GetHangarTile (uint hangar_num) const
 Get the first tile of the given hangar.
 
Direction GetHangarExitDirection (TileIndex tile) const
 Get the exit direction of the hangar at a specific tile.
 
uint GetHangarNum (TileIndex tile) const
 Get the hangar number of the hangar at a specific tile.
 
uint GetNumHangars () const
 Get the number of hangars on this airport.
 
- Public Member Functions inherited from OrthogonalTileArea
 OrthogonalTileArea (TileIndex tile=INVALID_TILE, uint16_t w=0, uint16_t h=0)
 Construct this tile area with some set values.
 
 OrthogonalTileArea (TileIndex start, TileIndex end)
 Construct this tile area based on two points.
 
void Add (TileIndex to_add)
 Add a single tile to a tile area; enlarge if needed.
 
void Clear ()
 Clears the 'tile area', i.e.
 
bool Intersects (const OrthogonalTileArea &ta) const
 Does this tile area intersect with another?
 
bool Contains (TileIndex tile) const
 Does this tile area contain a tile?
 
OrthogonalTileAreaExpand (int rad)
 Expand a tile area by rad tiles in each direction, keeping within map bounds.
 
void ClampToMap ()
 Clamp the tile area to map borders.
 
TileIndex GetCenterTile () const
 Get the center tile.
 
OrthogonalTileIterator begin () const
 Returns an iterator to the beginning of the tile area.
 
OrthogonalTileIterator end () const
 Returns an iterator to the end of the tile area.
 

Data Fields

uint64_t flags
 stores which blocks on the airport are taken. was 16 bit earlier on, then 32
 
uint8_t type
 Type of this airport,.
 
uint8_t layout
 Airport layout number.
 
Direction rotation
 How this airport is rotated.
 
PersistentStoragepsa
 Persistent storage for NewGRF airports.
 
- Data Fields inherited from OrthogonalTileArea
TileIndex tile
 The base tile of the area.
 
uint16_t w
 The width of the area.
 
uint16_t h
 The height of the area.
 

Private Member Functions

const HangarTileTableGetHangarDataByTile (TileIndex tile) const
 Retrieve hangar information of a hangar at a given tile.
 

Detailed Description

All airport-related information.

Only valid if tile != INVALID_TILE.

Definition at line 290 of file station_base.h.

Constructor & Destructor Documentation

◆ Airport()

Airport::Airport ( )
inline

Definition at line 291 of file station_base.h.

Member Function Documentation

◆ GetFTA()

const AirportFTAClass * Airport::GetFTA ( ) const
inline

Get the finite-state machine for this airport or the finite-state machine for the dummy airport in case this isn't an airport.

Precondition
this->type < NEW_AIRPORT_OFFSET.
Returns
The state machine for this airport.

Definition at line 317 of file station_base.h.

References AirportSpec::fsm, and GetSpec().

Referenced by AircraftController(), AircraftNextAirportPos_and_Order(), CanVehicleUseStation(), CheckOrders(), FloodVehicleProc(), GetVehiclePosOnBuild(), MapAircraftMovementState(), MaybeCrashAirplane(), Vehicle::PreDestructor(), and UpdateAirplanesOnNewStation().

◆ GetHangarDataByTile()

const HangarTileTable * Airport::GetHangarDataByTile ( TileIndex  tile) const
inlineprivate

Retrieve hangar information of a hangar at a given tile.

Parameters
tileTile containing the hangar.
Returns
The requested hangar information.
Precondition
The tile must be at a hangar tile at an airport.

Definition at line 414 of file station_base.h.

References AirportSpec::depots, GetRotatedTileFromOffset(), GetSpec(), and OrthogonalTileArea::tile.

Referenced by GetHangarExitDirection(), and GetHangarNum().

◆ GetHangarExitDirection()

Direction Airport::GetHangarExitDirection ( TileIndex  tile) const
inline

Get the exit direction of the hangar at a specific tile.

Parameters
tileThe tile to query.
Precondition
IsHangarTile(tile).
Returns
The exit direction of the hangar, taking airport rotation into account.

Definition at line 374 of file station_base.h.

References ChangeDir(), HangarTileTable::dir, DirDifference(), GetHangarDataByTile(), GetSpec(), AirportSpec::layouts, and OrthogonalTileArea::tile.

Referenced by AircraftEventHandler_InHangar().

◆ GetHangarNum()

uint Airport::GetHangarNum ( TileIndex  tile) const
inline

Get the hangar number of the hangar at a specific tile.

Parameters
tileThe tile to query.
Precondition
IsHangarTile(tile).
Returns
The hangar number of the hangar at the given tile.

Definition at line 387 of file station_base.h.

References GetHangarDataByTile(), HangarTileTable::hangar_num, and OrthogonalTileArea::tile.

Referenced by CmdBuildAircraft().

◆ GetHangarTile()

TileIndex Airport::GetHangarTile ( uint  hangar_num) const
inline

Get the first tile of the given hangar.

Parameters
hangar_numThe hangar to get the location of.
Precondition
hangar_num < GetNumHangars().
Returns
A tile with the given hangar.

Definition at line 358 of file station_base.h.

References AirportSpec::depots, GetRotatedTileFromOffset(), and GetSpec().

Referenced by AircraftController(), CmdBuildAircraft(), GetVehiclePosOnBuild(), and RemoveAirport().

◆ GetNumHangars()

uint Airport::GetNumHangars ( ) const
inline

Get the number of hangars on this airport.

Definition at line 394 of file station_base.h.

References AirportSpec::depots, GetSpec(), HasBit(), and SetBit().

Referenced by RemoveAirport().

◆ GetRotatedTileFromOffset()

TileIndex Airport::GetRotatedTileFromOffset ( TileIndexDiffC  tidc) const
inline

Add the tileoffset to the base tile of this airport but rotate it first.

The base tile is the northernmost tile of this airport. This function helps to make sure that getting the tile of a hangar works even for rotated airport layouts without requiring a rotated array of hangar tiles.

Parameters
tidcThe tilediff to add to the airport tile.
Returns
The tile of this airport plus the rotated offset.

Definition at line 336 of file station_base.h.

References DIR_E, DIR_N, DIR_S, DIR_W, GetSpec(), AirportSpec::size_x, AirportSpec::size_y, OrthogonalTileArea::tile, TileDiffXY(), ToTileIndexDiff(), TileIndexDiffC::x, and TileIndexDiffC::y.

Referenced by GetHangarDataByTile(), GetHangarTile(), and IsHangar().

◆ GetSpec()

const AirportSpec * Airport::GetSpec ( ) const
inline

Get the AirportSpec that from the airport type of this airport.

If there is no airport (tile == INVALID_TILE) then return the dummy AirportSpec.

Returns
The AirportSpec for this airport.

Definition at line 305 of file station_base.h.

References AirportSpec::dummy, AirportSpec::Get(), INVALID_TILE, and OrthogonalTileArea::tile.

Referenced by AirportGetNearestTown(), Station::GetCatchmentRadius(), GetFTA(), GetHangarDataByTile(), GetHangarExitDirection(), GetHangarTile(), GetNumHangars(), GetRotatedTileFromOffset(), GetTileCatchmentRadius(), HasHangar(), IsHangar(), and RemoveAirport().

◆ HasHangar()

bool Airport::HasHangar ( ) const
inline

Check if this airport has at least one hangar.

Definition at line 323 of file station_base.h.

References AirportSpec::depots, and GetSpec().

Referenced by AircraftController(), AircraftEventHandler_AtTerminal(), CmdInsertOrder(), Aircraft::FindClosestDepot(), and UpdateAirplanesOnNewStation().

Field Documentation

◆ flags

uint64_t Airport::flags

◆ layout

uint8_t Airport::layout

Airport layout number.

Definition at line 295 of file station_base.h.

Referenced by CmdBuildAirport(), and NIHAirport::Resolve().

◆ psa

PersistentStorage* Airport::psa

Persistent storage for NewGRF airports.

Definition at line 298 of file station_base.h.

Referenced by NIHAirport::GetPSA(), AirportScopeResolver::GetVariable(), RemoveAirport(), AirportScopeResolver::StorePSA(), and Station::~Station().

◆ rotation

Direction Airport::rotation

◆ type

uint8_t Airport::type

The documentation for this struct was generated from the following file: