OpenTTD: src/aircraft.h File Reference

OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Data Structures | Macros | Enumerations | Functions | Variables
aircraft.h File Reference

Base for aircraft. More...

`#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...

## Macros
#define | FOR_ALL_AIRCRAFT(var) FOR_ALL_VEHICLES_OF_TYPE(Aircraft, var)
| Macro for iterating over all aircrafts.

## 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 }
| Flags for air vehicles; shared with disaster vehicles. More...

## Functions
void | HandleAircraftEnterHangar (Aircraft *v)
| Handle Aircraft specific tasks when an Aircraft enters a hangar.
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).
void | UpdateAirplanesOnNewStation (const Station *st)
| Updates the status of the Aircraft heading or in the station.
void | UpdateAircraftCache (Aircraft *v, bool update_range=false)
| Update cached values of an aircraft.
void | AircraftLeaveHangar (Aircraft *v, Direction exit_dir)
| Aircraft is about to leave the hangar.
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.
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.
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.

## 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

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 22 of file aircraft.h.

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 32 of file aircraft.h.

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.

Definition at line 40 of file aircraft.h.

## Function Documentation

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 1393 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 AircraftEventHandler_InHangar(), and UpdateOldAircraft().

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 700 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, min(), PLANE_HOLD_MAX_FLYING_ALTITUDE, Vehicle::subtype, BaseVehicle::type, Vehicle::vcache, and VEH_AIRCRAFT.

Referenced by AfterLoadGame(), AircraftController(), DisasterVehicle::DisasterVehicle(), ReleaseDisastersTargetingVehicle(), and UpdateOldAircraft().

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 230 of file aircraft_cmd.cpp.

References VehicleSpriteSeq::GetBounds(), and UnScaleGUI().

Referenced by EnginePreviewWindow::UpdateWidgetSize().

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, NULL if invalid

Definition at line 2064 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 AfterLoadGame(), AircraftNextAirportPos_and_Order(), CrashAirplane(), Aircraft::FindClosestDepot(), FindNearestHangar(), HandleCrashedAircraft(), MapAircraftMovementState(), and Vehicle::PreDestructor().

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

Handle Aircraft specific tasks when an Aircraft enters a hangar.

Parameters

  *v | Vehicle that enters the hangar

Definition at line 546 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().

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 507 of file aircraft_cmd.cpp.

References AIR_HELICOPTER, Clamp(), VehicleSpriteSeq::CopyWithoutPalette(), EIT_ON_MAP, MapMaxX(), MapMaxY(), SpecializedVehicle< T, Type >::Next(), ROTOR_Z_OFFSET, Vehicle::sprite_seq, Vehicle::subtype, TILE_SIZE, Vehicle::UpdatePosition(), Vehicle::UpdatePositionAndViewport(), SpecializedVehicle< T, Type >::UpdateViewport(), Vehicle::x_pos, Vehicle::y_pos, and Vehicle::z_pos.

Referenced by AfterLoadGame(), AircraftController(), AircraftLeaveHangar(), HandleAircraftEnterHangar(), HandleCrashedAircraft(), and UpdateOldAircraft().

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 576 of file aircraft_cmd.cpp.

References VehicleCache::cached_cargo_age_period, AircraftCache::cached_max_range, AircraftCache::cached_max_range_sqr, VehicleCache::cached_max_speed, Vehicle::engine_type, SpecializedVehicle< T, Type >::Next(), PROP_AIRCRAFT_CARGO_AGE_PERIOD, PROP_AIRCRAFT_RANGE, PROP_AIRCRAFT_SPEED, and Vehicle::vcache.

Referenced by AfterLoadGame(), AfterLoadVehicles(), AircraftController(), CheckCaches(), CmdBuildAircraft(), CmdRefitVehicle(), UpdateAirplanesOnNewStation(), and UpdateOldAircraft().

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

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

Parameters

  st | Station been updated

Definition at line 2078 of file aircraft_cmd.cpp.

References AircraftGetEntryPoint(), Station::airport, DIR_N, FLYING, FOR_ALL_AIRCRAFT, Airport::GetFTA(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_TILE, Aircraft::IsNormalAircraft(), Aircraft::pos, Aircraft::previous_pos, Airport::rotation, Aircraft::state, Aircraft::targetairport, OrthogonalTileArea::tile, and UpdateAircraftCache().

Referenced by CmdBuildAirport().