OpenTTD Source: src/aircraft.h File Reference

OpenTTD Source 12.2

Data Structures | Enumerations | Functions | Variables
aircraft.h File Reference
`#include "station_map.h"`
`#include "vehicle_base.h"`

Go to the source code of this file.

## Data Structures
struct | AircraftCache
| Variables that are cached to improve performance and such. More...
struct | Aircraft
| Aircraft, helicopters, rotors and their shadows belong to this class. More...

## Enumerations
enum | AircraftFlyingAltitude { AIRCRAFT_MIN_FLYING_ALTITUDE = 120, AIRCRAFT_MAX_FLYING_ALTITUDE = 360, PLANE_HOLD_MAX_FLYING_ALTITUDE = 150, HELICOPTER_HOLD_MAX_FLYING_ALTITUDE = 184 }
| Base values for flight levels above ground level for 'normal' flight and holding patterns. More...
enum | AircraftSubType { AIR_HELICOPTER = 0, AIR_AIRCRAFT = 2, AIR_SHADOW = 4, AIR_ROTOR = 6 }
| An aircraft can be one of those types. More...
enum | AirVehicleFlags { VAF_DEST_TOO_FAR = 0, VAF_IN_MAX_HEIGHT_CORRECTION = 1, VAF_IN_MIN_HEIGHT_CORRECTION = 2, VAF_HELI_DIRECT_DESCENT = 3 }
| Flags for air vehicles; shared with disaster vehicles. More...

## Functions
void | HandleAircraftEnterHangar (Aircraft *v)
| Handle Aircraft specific tasks when an Aircraft enters a hangar. More...
void | GetAircraftSpriteSize (EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type)
| Get the size of the sprite of an aircraft sprite heading west (used for lists). More...
void | UpdateAirplanesOnNewStation (const Station *st)
| Updates the status of the Aircraft heading or in the station. More...
void | UpdateAircraftCache (Aircraft *v, bool update_range=false)
| Update cached values of an aircraft. More...
void | AircraftLeaveHangar (Aircraft *v, Direction exit_dir)
| Aircraft is about to leave the hangar. More...
void | AircraftNextAirportPos_and_Order (Aircraft *v)
| set the right pos when heading to other airports after takeoff
void | SetAircraftPosition (Aircraft *v, int x, int y, int z)
| Set aircraft position. More...
void | GetAircraftFlightLevelBounds (const Vehicle *v, int *min, int *max)
| Get the 'flight level' bounds, in pixels from 'z_pos' 0 for a particular vehicle for normal flight situation. More...
template<class T >
int | GetAircraftFlightLevel (T *v, bool takeoff=false)
void | GetRotorImage (const Aircraft *v, EngineImageType image_type, VehicleSpriteSeq *result)
Station * | GetTargetAirportIfValid (const Aircraft *v)
| Returns aircraft's target station if v->target_airport is a valid station with airport. More...

## Variables
static const int | ROTOR_Z_OFFSET = 5
| Z Offset between helicopter- and rotorsprite.

## Detailed Description

Base for aircraft.

Definition in file aircraft.h.

## Enumeration Type Documentation

## ◆ AircraftFlyingAltitude

enum AircraftFlyingAltitude

Base values for flight levels above ground level for 'normal' flight and holding patterns.

Due to speed and direction, the actual flight level may be higher.

Enumerator
AIRCRAFT_MIN_FLYING_ALTITUDE | Minimum flying altitude above tile.
AIRCRAFT_MAX_FLYING_ALTITUDE | Maximum flying altitude above tile.
PLANE_HOLD_MAX_FLYING_ALTITUDE | holding flying altitude above tile of planes.
HELICOPTER_HOLD_MAX_FLYING_ALTITUDE | holding flying altitude above tile of helicopters.

Definition at line 20 of file aircraft.h.

## ◆ AircraftSubType

enum AircraftSubType

An aircraft can be one of 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 30 of file aircraft.h.

## ◆ AirVehicleFlags

enum AirVehicleFlags

Flags for air vehicles; shared with disaster vehicles.

Enumerator
VAF_DEST_TOO_FAR | Next destination is too far away.
VAF_IN_MAX_HEIGHT_CORRECTION | The vehicle is currently lowering its altitude because it hit the upper bound.
VAF_IN_MIN_HEIGHT_CORRECTION | The vehicle is currently raising its altitude because it hit the lower bound.
VAF_HELI_DIRECT_DESCENT | The helicopter is descending directly at its destination (helipad or in front of hangar)

Definition at line 38 of file aircraft.h.

## Function Documentation

## ◆ AircraftLeaveHangar()

void AircraftLeaveHangar | ( | Aircraft * | v,
|  | Direction | exit_dir
| ) |  |

Aircraft is about to leave the hangar.

Parameters

  v | Aircraft leaving.
  exit_dir | The direction the vehicle leaves the hangar.

Note
  This function is called in AfterLoadGame for old savegames, so don't rely on any data to be valid, especially don't rely on the fact that the vehicle is actually on the ground inside a depot.

Definition at line 1451 of file aircraft_cmd.cpp.

References Vehicle::cur_speed, Vehicle::direction, InvalidateWindowData(), Vehicle::Next(), SpecializedVehicle< T, Type >::Next(), Vehicle::progress, SetAircraftPosition(), SetWindowClassesDirty(), Vehicle::subspeed, Vehicle::tile, VehicleServiceInDepot(), Vehicle::vehstatus, VS_HIDDEN, WC_AIRCRAFT_LIST, WC_VEHICLE_DEPOT, Vehicle::x_pos, Vehicle::y_pos, and Vehicle::z_pos.

Referenced by UpdateOldAircraft().

## ◆ GetAircraftFlightLevelBounds()

void GetAircraftFlightLevelBounds | ( | const Vehicle * | v,
|  | int * | min_level,
|  | int * | max_level
| ) |  |

Get the 'flight level' bounds, in pixels from 'z_pos' 0 for a particular vehicle for normal flight situation.

When the maximum is reached the vehicle should consider descending. When the minimum is reached the vehicle should consider ascending.

Parameters

  | v | The vehicle to get the flight levels for.
  [out] | min_level | The minimum bounds for flight level.
  [out] | max_level | The maximum bounds for flight level.

Definition at line 718 of file aircraft_cmd.cpp.

References AIR_HELICOPTER, AIRCRAFT_MAX_FLYING_ALTITUDE, AIRCRAFT_MIN_FLYING_ALTITUDE, VehicleCache::cached_max_speed, DIR_E, DIR_N, DIR_NE, DIR_SE, Vehicle::direction, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::From(), GetTileHeightBelowAircraft(), HELICOPTER_HOLD_MAX_FLYING_ALTITUDE, PLANE_HOLD_MAX_FLYING_ALTITUDE, Vehicle::subtype, BaseVehicle::type, Vehicle::vcache, and VEH_AIRCRAFT.

Referenced by ReleaseDisastersTargetingVehicle().

## ◆ GetAircraftSpriteSize()

void GetAircraftSpriteSize | ( | EngineID | engine,
|  | uint & | width,
|  | uint & | height,
|  | int & | xoffs,
|  | int & | yoffs,
|  | EngineImageType | image_type
| ) |  |

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

Parameters

  | engine | The engine to get the sprite from.
  [out] | width | The width of the sprite.
  [out] | height | The height of the sprite.
  [out] | xoffs | Number of pixels to shift the sprite to the right.
  [out] | yoffs | Number of pixels to shift the sprite downwards.
  | image_type | Context the sprite is used in.

Definition at line 245 of file aircraft_cmd.cpp.

## ◆ GetTargetAirportIfValid()

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

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

Parameters

  v | vehicle to get target airport for

Returns
  pointer to target station, nullptr if invalid

Definition at line 2125 of file aircraft_cmd.cpp.

References Station::airport, SpecializedStation< Station, false >::GetIfValid(), INVALID_TILE, Aircraft::targetairport, OrthogonalTileArea::tile, BaseVehicle::type, and VEH_AIRCRAFT.

Referenced by CrashAirplane(), Aircraft::FindClosestDepot(), HandleCrashedAircraft(), and MapAircraftMovementState().

## ◆ HandleAircraftEnterHangar()

void HandleAircraftEnterHangar | ( | Aircraft * | v | ) |

Handle Aircraft specific tasks when an Aircraft enters a hangar.

Parameters

  *v | Vehicle that enters the hangar

Definition at line 561 of file aircraft_cmd.cpp.

References Vehicle::cur_speed, SpecializedVehicle< T, Type >::Next(), Vehicle::progress, SetAircraftPosition(), Vehicle::subspeed, Vehicle::vehstatus, VS_HIDDEN, Vehicle::x_pos, Vehicle::y_pos, and Vehicle::z_pos.

Referenced by VehicleEnterDepot().

## ◆ SetAircraftPosition()

void SetAircraftPosition | ( | Aircraft * | v,
|  | int | x,
|  | int | y,
|  | int | z
| ) |  |

Set aircraft position.

Parameters

  v | Aircraft to position.
  x | New X position.
  y | New y position.
  z | New z position.

Definition at line 522 of file aircraft_cmd.cpp.

Referenced by AircraftController(), AircraftLeaveHangar(), and HandleAircraftEnterHangar().

## ◆ UpdateAircraftCache()

void UpdateAircraftCache | ( | Aircraft * | v,
|  | bool | update_range
| ) |  |

Update cached values of an aircraft.

Currently caches callback 36 max speed.

Parameters

  v | Vehicle
  update_range | Update the aircraft range.

Definition at line 591 of file aircraft_cmd.cpp.

Referenced by AircraftController(), and UpdateOldAircraft().

## ◆ 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 2139 of file aircraft_cmd.cpp.

References Station::airport, Vehicle::current_order, DIR_N, FLYING, Airport::GetFTA(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_TILE, Aircraft::IsNormalAircraft(), Order::IsType(), SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::Iterate(), Airport::rotation, Aircraft::state, Aircraft::targetairport, and OrthogonalTileArea::tile.