# aircraft.h File Reference

Base for aircraft. More...

`#include "station_map.h"`
`#include "station_base.h"`
`#include "vehicle_base.h"`
`#include "engine_func.h"`
`#include "engine_base.h"`

Go to the source code of this file.

## Data Structures
struct | Aircraft
| This class 'wraps' Vehicle; you do not actually instantiate this class. More...
## Enumerations
enum | AircraftSubType { AIR_HELICOPTER = 0, AIR_AIRCRAFT = 2, AIR_SHADOW = 4, AIR_ROTOR = 6 }
| An aircraft can be one ot those types. More...
## Functions
static bool | IsNormalAircraft (const Vehicle *v)
| Check if the aircraft type is a normal flying device; eg not a rotor or a shadow.
uint16 | AircraftDefaultCargoCapacity (CargoID cid, const AircraftVehicleInfo *avi)
| Calculates cargo capacity based on an aircraft's passenger and mail capacities.
void | CcBuildAircraft (bool success, TileIndex tile, uint32 p1, uint32 p2)
| This is the Callback method after the construction attempt of an aircraft.
void | HandleAircraftEnterHangar (Vehicle *v)
| Handle Aircraft specific tasks when a an Aircraft enters a hangar.
void | GetAircraftSpriteSize (EngineID engine, uint &width, uint &height)
| Get the size of the sprite of an aircraft sprite heading west (used for lists).
void | UpdateAirplanesOnNewStation (const Station *st)
| Updates the status of the Aircraft heading or in the station.
void | UpdateAircraftCache (Vehicle *v)
| Update cached values of an aircraft.
void | AircraftLeaveHangar (Vehicle *v)
void | AircraftNextAirportPos_and_Order (Vehicle *v)
| set the right pos when heading to other airports after takeoff
void | SetAircraftPosition (Vehicle *v, int x, int y, int z)
byte | GetAircraftFlyingAltitude (const Vehicle *v)
| Gets the cruise altitude of an aircraft.
Station * | GetTargetAirportIfValid (const Vehicle *v)
| Returns aircraft's target station if v->u.air.target_airport is a valid station with airport.

## Detailed Description

Base for aircraft.

Definition in file aircraft.h.

## Enumeration Type Documentation

enum AircraftSubType

An aircraft can be one ot those types.

Enumerator:

  AIR_HELICOPTER | an helicopter
  AIR_AIRCRAFT | an airplane
  AIR_SHADOW | shadow of the aircraft
  AIR_ROTOR | rotor of an helicopter

Definition at line 15 of file aircraft.h.

## Function Documentation

uint16 AircraftDefaultCargoCapacity | ( | CargoID | cid,
|  | const AircraftVehicleInfo * | avi |
| ) |  |  |

Calculates cargo capacity based on an aircraft's passenger and mail capacities.

Parameters:

  | cid | Which cargo type to calculate a capacity for.
  | avi | Which engine to find a cargo capacity for.

Returns:
  New cargo capacity value.

Definition at line 224 of file aircraft_cmd.cpp.

Referenced by CmdBuildAircraft(), CmdRefitAircraft(), AIEventEnginePreview::GetCapacity(), AIEngine::GetCapacity(), and GetVehicleDefaultCapacity().

void CcBuildAircraft | ( | bool | success,
|  | TileIndex | tile,
|  | uint32 | p1,
|  | uint32 | p2 |
| ) |  |  |

This is the Callback method after the construction attempt of an aircraft.

Parameters:

  | success | indicates completion (or not) of the operation
  | tile | of depot where aircraft is built
  | p1 | unused
  | p2 | unused

Definition at line 85 of file aircraft_gui.cpp.

References RestoreVehicleOrders(), and ShowVehicleViewWindow().

byte GetAircraftFlyingAltitude | ( | const Vehicle * | v | ) |

Gets the cruise altitude of an aircraft.

The cruise altitude is determined by the velocity of the vehicle and the direction it is moving

Parameters:

  | v | The vehicle. Should be an aircraft

Returns:
  Altitude in pixel units

Definition at line 848 of file aircraft_cmd.cpp.

References DIR_E, DIR_N, DIR_NE, DIR_SE, and min().

Referenced by AircraftController(), UpdateAirplanesOnNewStation(), and UpdateOldAircraft().

void GetAircraftSpriteSize | ( | EngineID | engine,
|  | uint & | width,
|  | uint & | height |
| ) |  |  |

Get the size of the sprite of an aircraft sprite heading west (used for lists).

Parameters:

  | engine | The engine to get the sprite from
  | width | The width of the sprite
  | height | The height of the sprite

Definition at line 209 of file aircraft_cmd.cpp.

References ST_NORMAL.

Station* GetTargetAirportIfValid | ( | const Vehicle * | v | ) |

Returns aircraft's target station if v->u.air.target_airport is a valid station with airport.

Parameters:

  | v | vehicle to get target airport for

Returns:
  pointer to target station, NULL if invalid

Definition at line 2054 of file aircraft_cmd.cpp.

References Station::airport_tile, and INVALID_TILE.

Referenced by AircraftNextAirportPos_and_Order(), and MapAircraftMovementState().

void HandleAircraftEnterHangar | ( | Vehicle * | v | ) |

Handle Aircraft specific tasks when a an Aircraft enters a hangar.

Parameters:

  | *v | Vehicle that enters the hangar

Definition at line 735 of file aircraft_cmd.cpp.

static bool IsNormalAircraft | ( | const Vehicle * | v | ) | `[inline, static]`

Check if the aircraft type is a normal flying device; eg not a rotor or a shadow.

Parameters:

  | v | vehicle to check

Returns:
  Returns true if the aircraft is a helicopter/airplane and false if it is a shadow or a rotor)

Definition at line 28 of file aircraft.h.

References AIR_AIRCRAFT.

Referenced by AfterLoadVehicles(), DrawAircraftDetails(), DrawCompanyVehiclesAmount(), IsEngineCountable(), LoadUnloadVehicle(), UpdateAirplanesOnNewStation(), UpdateOldAircraft(), and Station::~Station().

void UpdateAircraftCache | ( | Vehicle * | v | ) |

Update cached values of an aircraft.

Currently caches callback 36 max speed.

Parameters:

  | v | Vehicle

Definition at line 759 of file aircraft_cmd.cpp.

Referenced by AfterLoadVehicles(), AircraftController(), CmdBuildAircraft(), StateGameLoop(), and UpdateAirplanesOnNewStation().

void UpdateAirplanesOnNewStation | ( | const Station * | st | ) |

Updates the status of the Aircraft heading or in the station.

Parameters:

  | st | Station been updated

Definition at line 2071 of file aircraft_cmd.cpp.

References AIR_HELICOPTER, AircraftGetEntryPoint(), Station::Airport(), GetAircraftFlyingAltitude(), GetNewVehiclePos(), AirportFTA::heading, PoolItem< T, Tid, Tpool >::index, IsNormalAircraft(), AirportFTAClass::layout, AirportFTAClass::nofelements, AirportFTA::position, UpdateAircraftCache(), GetNewVehiclePosResult::x, and GetNewVehiclePosResult::y.

Referenced by CmdBuildAirport().