OpenTTD
Public Member Functions | Data Fields
Aircraft Struct Reference

Aircraft, helicopters, rotors and their shadows belong to this class. More...

#include <aircraft.h>

Inheritance diagram for Aircraft:
SpecializedVehicle< Aircraft, VEH_AIRCRAFT > Vehicle Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool > BaseVehicle BaseConsist

Public Member Functions

 Aircraft ()
 We don't want GCC to zero our struct! It already is zeroed and has an index!
virtual ~Aircraft ()
 We want to 'destruct' the right class.
void MarkDirty ()
 Marks the vehicles to be redrawn and updates cached variables.
void UpdateDeltaXY (Direction direction)
 Updates the x and y offsets and the size of the sprite used for this vehicle.
ExpensesType GetExpenseType (bool income) const
 Sets the expense type associated to this vehicle type.
bool IsPrimaryVehicle () const
 Whether this is the primary vehicle in the chain.
void GetImage (Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const
 Gets the sprite to show for the given direction.
int GetDisplaySpeed () const
 Gets the speed in km-ish/h that can be sent into SetDParam for string processing.
int GetDisplayMaxSpeed () const
 Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing.
int GetSpeedOldUnits () const
int GetCurrentMaxSpeed () const
 Calculates the maximum speed of the vehicle under its current conditions.
Money GetRunningCost () const
 Gets the running cost of a vehicle.
bool IsInDepot () const
 Check whether the vehicle is in the depot.
bool Tick ()
 Calls the tick handler of the vehicle.
void OnNewDay ()
 Calls the new day handler of the vehicle.
uint Crash (bool flooded=false)
 Crash the (whole) vehicle chain.
TileIndex GetOrderStationLocation (StationID station)
 Determine the location for the station where the vehicle goes to next.
bool FindClosestDepot (TileIndex *location, DestinationID *destination, bool *reverse)
 Find the closest depot for this vehicle and tell us the location, DestinationID and whether we should reverse.
bool IsNormalAircraft () const
 Check if the aircraft type is a normal flying device; eg not a rotor or a shadow.
uint16 GetRange () const
 Get the range of this aircraft.
- Public Member Functions inherited from SpecializedVehicle< Aircraft, VEH_AIRCRAFT >
 SpecializedVehicle ()
 Set vehicle type correctly.
AircraftFirst () const
 Get the first vehicle in the chain.
AircraftLast ()
 Get the last vehicle in the chain.
const AircraftLast () const
 Get the last vehicle in the chain.
AircraftNext () const
 Get next vehicle in the chain.
AircraftPrevious () const
 Get previous vehicle in the chain.
AircraftGetNextArticulatedPart ()
 Get the next part of an articulated engine.
AircraftGetNextArticulatedPart () const
 Get the next part of an articulated engine.
AircraftGetFirstEnginePart ()
 Get the first part of an articulated engine.
const AircraftGetFirstEnginePart () const
 Get the first part of an articulated engine.
AircraftGetLastEnginePart ()
 Get the last part of an articulated engine.
AircraftGetNextVehicle () const
 Get the next real (non-articulated part) vehicle in the consist.
AircraftGetPrevVehicle () const
 Get the previous real (non-articulated part) vehicle in the consist.
void UpdateViewport (bool force_update, bool update_delta)
 Update vehicle sprite- and position caches.
- Public Member Functions inherited from Vehicle
 Vehicle (VehicleType type=VEH_INVALID)
 Vehicle constructor.
void PreDestructor ()
 Destroy all stuff that (still) needs the virtual functions to work properly.
virtual ~Vehicle ()
 We want to 'destruct' the right class.
void BeginLoading ()
 Prepare everything to begin the loading when arriving at a station.
void CancelReservation (StationID next, Station *st)
 Return all reserved cargo packets to the station and reset all packets staged for transfer.
void LeaveStation ()
 Perform all actions when leaving a station.
GroundVehicleCacheGetGroundVehicleCache ()
 Access the ground vehicle cache of the vehicle.
const GroundVehicleCacheGetGroundVehicleCache () const
 Access the ground vehicle cache of the vehicle.
uint16 & GetGroundVehicleFlags ()
 Access the ground vehicle flags of the vehicle.
const uint16 & GetGroundVehicleFlags () const
 Access the ground vehicle flags of the vehicle.
void DeleteUnreachedImplicitOrders ()
 Delete all implicit orders which were not reached.
void HandleLoading (bool mode=false)
 Handle the loading of the vehicle; when not it skips through dummy orders and does nothing in all other cases.
void GetConsistFreeCapacities (SmallMap< CargoID, uint > &capacities) const
 Get a map of cargoes and free capacities in the consist.
uint GetConsistTotalCapacity () const
uint GetOldAdvanceSpeed (uint speed)
 Determines the effective direction-specific vehicle movement speed.
uint GetAdvanceDistance ()
 Determines the vehicle "progress" needed for moving a step.
virtual void PlayLeaveStationSound () const
 Play the sound associated with leaving the station.
const EngineGetEngine () const
 Retrieves the engine of the vehicle.
const GRFFileGetGRF () const
 Retrieve the NewGRF the vehicle is tied to.
uint32 GetGRFID () const
 Retrieve the GRF ID of the NewGRF the vehicle is tied to.
void InvalidateNewGRFCache ()
 Invalidates cached NewGRF variables.
void InvalidateNewGRFCacheOfChain ()
 Invalidates cached NewGRF variables of all vehicles in the chain (after the current vehicle)
bool IsGroundVehicle () const
 Check if the vehicle is a ground vehicle.
virtual bool IsChainInDepot () const
 Check whether the whole vehicle chain is in the depot.
bool IsStoppedInDepot () const
 Check whether the vehicle is in the depot and stopped.
virtual Trackdir GetVehicleTrackdir () const
 Returns the Trackdir on which the vehicle is currently located.
Money GetDisplayRunningCost () const
 Gets the running cost of a vehicle that can be sent into SetDParam for string processing.
Money GetDisplayProfitThisYear () const
 Gets the profit vehicle had this year.
Money GetDisplayProfitLastYear () const
 Gets the profit vehicle had last year.
void SetNext (Vehicle *next)
 Set the next vehicle of this vehicle.
VehicleMove (int n)
 Get the vehicle at offset n of this vehicle chain.
const VehicleMove (int n) const
 Get the vehicle at offset n of this vehicle chain.
OrderGetFirstOrder () const
 Get the first order of the vehicles order list.
void AddToShared (Vehicle *shared_chain)
 Adds this vehicle to a shared vehicle chain.
void RemoveFromShared ()
 Removes the vehicle from the shared order list.
VehicleNextShared () const
 Get the next vehicle of the shared vehicle chain.
VehiclePreviousShared () const
 Get the previous vehicle of the shared vehicle chain.
VehicleFirstShared () const
 Get the first vehicle of this vehicle chain.
bool IsOrderListShared () const
 Check if we share our orders with another vehicle.
VehicleOrderID GetNumOrders () const
 Get the number of orders this vehicle has.
VehicleOrderID GetNumManualOrders () const
 Get the number of manually added orders this vehicle has.
StationIDStack GetNextStoppingStation () const
 Get the next station the vehicle will stop at.
void ResetRefitCaps ()
 Reset all refit_cap in the consist to cargo_cap.
void CopyVehicleConfigAndStatistics (const Vehicle *src)
 Copy certain configurations and statistics of a vehicle after successful autoreplace/renew The function shall copy everything that cannot be copied by a command (like orders / group etc), and that shall not be resetted for the new vehicle.
bool HandleBreakdown ()
 Handle all of the aspects of a vehicle breakdown This includes adding smoke and sounds, and ending the breakdown when appropriate.
bool NeedsAutorenewing (const Company *c, bool use_renew_setting=true) const
 Function to tell if a vehicle needs to be autorenewed.
bool NeedsServicing () const
 Check if the vehicle needs to go to a depot in near future (if a opportunity presents itself) for service or replacement.
bool NeedsAutomaticServicing () const
 Checks if the current order should be interrupted for a service-in-depot order.
CommandCost SendToDepot (DoCommandFlag flags, DepotCommand command)
 Send this vehicle to the depot using the given command(s).
void UpdateVisualEffect (bool allow_power_change=true)
 Update the cached visual effect.
void ShowVisualEffect () const
 Draw visual effects (smoke and/or sparks) for a vehicle chain.
void UpdatePosition ()
 Update the position of the vehicle.
void UpdateViewport (bool dirty)
 Update the vehicle on the viewport, updating the right hash and setting the new coordinates.
void UpdatePositionAndViewport ()
 Update the position of the vehicle, and update the viewport.
void MarkAllViewportsDirty () const
 Marks viewports dirty where the vehicle's image is.
uint16 GetServiceInterval () const
void SetServiceInterval (uint16 interval)
bool ServiceIntervalIsCustom () const
bool ServiceIntervalIsPercent () const
void SetServiceIntervalIsCustom (bool on)
void SetServiceIntervalIsPercent (bool on)
void IncrementImplicitOrderIndex ()
 Increments cur_implicit_order_index, keeps care of the wrap-around and invalidates the GUI.
void IncrementRealOrderIndex ()
 Advanced cur_real_order_index to the next real order, keeps care of the wrap-around and invalidates the GUI.
void UpdateRealOrderIndex ()
 Skip implicit orders until cur_real_order_index is a non-implicit order.
OrderGetOrder (int index) const
 Returns order 'index' of a vehicle or NULL when it doesn't exists.
OrderGetLastOrder () const
 Returns the last order of a vehicle, or NULL if it doesn't exists.
bool IsEngineCountable () const
 Check if a vehicle is counted in num_engines in each company struct.
bool HasEngineType () const
 Check whether Vehicle::engine_type has any meaning.
bool HasDepotOrder () const
 Checks if a vehicle has a depot in its order list.
void HandlePathfindingResult (bool path_found)
 Handle the pathfinding result, especially the lost status.
bool IsFrontEngine () const
 Check if the vehicle is a front engine.
bool IsArticulatedPart () const
 Check if the vehicle is an articulated part of an engine.
bool HasArticulatedPart () const
 Check if an engine has an articulated part.
- Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >
void * operator new (size_t size)
 Allocates space for new Titem.
void * operator new (size_t size, size_t index)
 Allocates space for new Titem with given index.
void * operator new (size_t size, void *ptr)
 Allocates space for new Titem at given memory address.
void operator delete (void *p)
 Marks Titem as free.
- Public Member Functions inherited from BaseConsist
void CopyConsistPropertiesFrom (const BaseConsist *src)
 Copy properties of other BaseConsist.

Data Fields

uint16 crashed_counter
 Timer for handling crash animations.
byte pos
 Next desired position of the aircraft.
byte previous_pos
 Previous desired position of the aircraft.
StationID targetairport
 Airport to go to next.
byte state
 State of the airport.
DirectionByte last_direction
byte number_consecutive_turns
 Protection to prevent the aircraft of making a lot of turns in order to reach a specific point.
byte turn_counter
 Ticks between each turn to prevent > 45 degree turns.
byte flags
 Aircraft flags.
AircraftCache acache

Additional Inherited Members

- Public Types inherited from SpecializedVehicle< Aircraft, VEH_AIRCRAFT >
typedef SpecializedVehicle
< Aircraft, Type > 
SpecializedVehicleBase
 Our type.
- Static Public Member Functions inherited from SpecializedVehicle< Aircraft, VEH_AIRCRAFT >
static bool IsValidID (size_t index)
 Tests whether given index is a valid index for vehicle of this type.
static AircraftGet (size_t index)
 Gets vehicle with given index.
static AircraftGetIfValid (size_t index)
 Returns vehicle if the index is a valid index for this vehicle type.
static AircraftFrom (Vehicle *v)
 Converts a Vehicle to SpecializedVehicle with type checking.
static const AircraftFrom (const Vehicle *v)
 Converts a const Vehicle to const SpecializedVehicle with type checking.
- Static Public Attributes inherited from SpecializedVehicle< Aircraft, VEH_AIRCRAFT >
static const VehicleType EXPECTED_TYPE
 Specialized type.

Detailed Description

Aircraft, helicopters, rotors and their shadows belong to this class.

Definition at line 74 of file aircraft.h.

Constructor & Destructor Documentation

virtual Aircraft::~Aircraft ( )
inlinevirtual

We want to 'destruct' the right class.

Definition at line 90 of file aircraft.h.

References Vehicle::PreDestructor().

Member Function Documentation

uint Aircraft::Crash ( bool  flooded = false)
virtual

Crash the (whole) vehicle chain.

Parameters
floodedwhether the cause of the crash is flooding or not.
Returns
the number of lost souls.

Reimplemented from Vehicle.

Definition at line 1258 of file aircraft_cmd.cpp.

References crashed_counter.

Referenced by CrashAirplane().

bool Aircraft::FindClosestDepot ( TileIndex location,
DestinationID *  destination,
bool *  reverse 
)
virtual

Find the closest depot for this vehicle and tell us the location, DestinationID and whether we should reverse.

Parameters
locationwhere do we go to?
destinationwhat hangar do we go to?
reverseshould the vehicle be reversed?
Returns
true if a depot could be found.

Reimplemented from Vehicle.

Definition at line 377 of file aircraft_cmd.cpp.

References Station::airport, FindNearestHangar(), SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::Get(), GetTargetAirportIfValid(), Airport::HasHangar(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, and BaseStation::xy.

int Aircraft::GetCurrentMaxSpeed ( ) const
inlinevirtual

Calculates the maximum speed of the vehicle under its current conditions.

Returns
Current maximum speed in native units.

Reimplemented from Vehicle.

Definition at line 100 of file aircraft.h.

int Aircraft::GetDisplayMaxSpeed ( ) const
inlinevirtual

Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing.

Returns
the vehicle's maximum speed

Reimplemented from Vehicle.

Definition at line 98 of file aircraft.h.

References VehicleCache::cached_max_speed, and Vehicle::vcache.

int Aircraft::GetDisplaySpeed ( ) const
inlinevirtual

Gets the speed in km-ish/h that can be sent into SetDParam for string processing.

Returns
the vehicle's speed

Reimplemented from Vehicle.

Definition at line 97 of file aircraft.h.

References Vehicle::cur_speed.

ExpensesType Aircraft::GetExpenseType ( bool  income) const
inlinevirtual

Sets the expense type associated to this vehicle type.

Parameters
incomewhether this is income or (running) expenses of the vehicle

Reimplemented from Vehicle.

Definition at line 94 of file aircraft.h.

References EXPENSES_AIRCRAFT_INC, and EXPENSES_AIRCRAFT_RUN.

void Aircraft::GetImage ( Direction  direction,
EngineImageType  image_type,
VehicleSpriteSeq result 
) const
virtual

Gets the sprite to show for the given direction.

Parameters
directionthe direction the vehicle is facing
[out]resultVehicle sprite sequence.

Reimplemented from Vehicle.

Definition at line 155 of file aircraft_cmd.cpp.

References Vehicle::GetEngine(), VehicleSpriteSeq::IsValid(), Engine::original_image_index, VehicleSpriteSeq::Set(), and Vehicle::spritenum.

TileIndex Aircraft::GetOrderStationLocation ( StationID  station)
virtual

Determine the location for the station where the vehicle goes to next.

Things done for example are allocating slots in a road stop or exact location of the platform is determined for ships.

Parameters
stationthe station to make the next location of the vehicle.
Returns
the location (tile) to aim for.

Reimplemented from Vehicle.

Definition at line 1237 of file aircraft_cmd.cpp.

References AircraftNextAirportPos_and_Order(), FLYING, and state.

uint16 Aircraft::GetRange ( ) const
inline

Get the range of this aircraft.

Returns
Range in tiles or 0 if unlimited range.

Definition at line 133 of file aircraft.h.

References AircraftCache::cached_max_range.

Referenced by DrawOrderString(), and VehicleDetailsWindow::DrawWidget().

Money Aircraft::GetRunningCost ( ) const
virtual

Gets the running cost of a vehicle.

Returns
the vehicle's running cost

Reimplemented from Vehicle.

Definition at line 422 of file aircraft_cmd.cpp.

References Vehicle::GetEngine(), Engine::GetGRF(), GetPrice(), and PROP_AIRCRAFT_RUNNING_COST_FACTOR.

Referenced by OnNewDay().

bool Aircraft::IsInDepot ( ) const
inlinevirtual

Check whether the vehicle is in the depot.

Returns
true if and only if the vehicle is in the depot.

Reimplemented from Vehicle.

Definition at line 103 of file aircraft.h.

References IsHangarTile(), IsPrimaryVehicle(), Vehicle::tile, Vehicle::vehstatus, and VS_HIDDEN.

bool Aircraft::IsNormalAircraft ( ) const
inline

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

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

Definition at line 121 of file aircraft.h.

References AIR_AIRCRAFT, and Vehicle::subtype.

Referenced by AfterLoadGame(), CalculateCompanyValue(), GetLoadAmount(), Vehicle::HasEngineType(), Vehicle::IsEngineCountable(), IsPrimaryVehicle(), IterateVehicleParts(), NewVehicleAvailable(), OnNewDay(), RemoveAirport(), ReserveConsist(), Tick(), UpdateAirplanesOnNewStation(), UpdateOldAircraft(), and Station::~Station().

void Aircraft::MarkDirty ( )
virtual

Marks the vehicles to be redrawn and updates cached variables.

This method marks the area of the vehicle on the screen as dirty. It can be use to repaint the vehicle.

Reimplemented from Vehicle.

Definition at line 1248 of file aircraft_cmd.cpp.

References AIR_HELICOPTER, Vehicle::colourmap, EIT_ON_MAP, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::Next(), Vehicle::sprite_seq, Vehicle::subtype, and SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::UpdateViewport().

bool Aircraft::Tick ( )
virtual

Calls the tick handler of the vehicle.

Returns
is this vehicle still valid?

Reimplemented from Vehicle.

Definition at line 2037 of file aircraft_cmd.cpp.

References AIR_HELICOPTER, BaseConsist::current_order_time, IsNormalAircraft(), Vehicle::running_ticks, Vehicle::subtype, Vehicle::tick_counter, Vehicle::vehstatus, and VS_STOPPED.

void Aircraft::UpdateDeltaXY ( Direction  direction)
virtual

Updates the x and y offsets and the size of the sprite used for this vehicle.

Parameters
directionthe direction the vehicle is facing

Reimplemented from Vehicle.

Definition at line 45 of file aircraft_cmd.cpp.

References AIR_AIRCRAFT, AIR_HELICOPTER, AIR_ROTOR, AIR_SHADOW, ENDTAKEOFF, FLYING, HELILANDING, LANDING, state, Vehicle::subtype, Vehicle::x_extent, Vehicle::x_offs, Vehicle::y_extent, Vehicle::y_offs, and Vehicle::z_extent.

Referenced by AircraftLandAirplane(), and CmdBuildAircraft().

Field Documentation

byte Aircraft::flags

Aircraft flags.

See Also
AirVehicleFlags

Definition at line 83 of file aircraft.h.

Referenced by AircraftHandleDestTooFar().

byte Aircraft::state

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