Data Structures | Typedefs | Enumerations | Functions | Variables

aircraft_cmd.cpp File Reference

This file deals with aircraft and airport movements functionalities. More...

#include "stdafx.h"
#include "aircraft.h"
#include "landscape.h"
#include "news_func.h"
#include "newgrf_engine.h"
#include "newgrf_sound.h"
#include "spritecache.h"
#include "strings_func.h"
#include "command_func.h"
#include "window_func.h"
#include "date_func.h"
#include "vehicle_func.h"
#include "sound_func.h"
#include "cheat_type.h"
#include "company_base.h"
#include "ai/ai.hpp"
#include "game/game.hpp"
#include "company_func.h"
#include "effectvehicle_func.h"
#include "station_base.h"
#include "engine_base.h"
#include "core/random_func.hpp"
#include "core/backup_type.hpp"
#include "zoom_func.h"
#include "table/strings.h"

Go to the source code of this file.

Data Structures

struct  MovementTerminalMapping
 Combination of aircraft state for going to a certain terminal and the airport flag for that terminal block. More...

Typedefs

typedef void AircraftStateHandler (Aircraft *v, const AirportFTAClass *apc)
 Signature of the aircraft handler function.

Enumerations

enum  HelicopterRotorStates { HRS_ROTOR_STOPPED, HRS_ROTOR_MOVING_1, HRS_ROTOR_MOVING_2, HRS_ROTOR_MOVING_3 }
 

Helicopter rotor animation states.


enum  AircraftSpeedLimits {
  SPEED_LIMIT_TAXI = 50, SPEED_LIMIT_APPROACH = 230, SPEED_LIMIT_BROKEN = 320, SPEED_LIMIT_HOLD = 425,
  SPEED_LIMIT_NONE = 0xFFFF
}
 

Special velocities for aircraft.

More...

Functions

static bool AirportMove (Aircraft *v, const AirportFTAClass *apc)
static bool AirportSetBlocks (Aircraft *v, const AirportFTA *current_pos, const AirportFTAClass *apc)
 "reserve" a block for the plane
static bool AirportHasBlock (Aircraft *v, const AirportFTA *current_pos, const AirportFTAClass *apc)
 returns true if the road ahead is busy, eg.
static bool AirportFindFreeTerminal (Aircraft *v, const AirportFTAClass *apc)
 Find a free terminal, and assign it if available.
static bool AirportFindFreeHelipad (Aircraft *v, const AirportFTAClass *apc)
 Find a free helipad, and assign it if available.
static void CrashAirplane (Aircraft *v)
 Bring the aircraft in a crashed state, create the explosion animation, and create a news item about the crash.
static StationID FindNearestHangar (const Aircraft *v)
 Find the nearest hangar to v INVALID_STATION is returned, if the company does not have any suitable airports (like helipads only).
SpriteID GetRotorImage (const Aircraft *v, EngineImageType image_type)
static SpriteID GetAircraftIcon (EngineID engine, EngineImageType image_type)
void DrawAircraftEngine (int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type)
void GetAircraftSpriteSize (EngineID engine, uint &width, uint &height, EngineImageType image_type)
 Get the size of the sprite of an aircraft sprite heading west (used for lists).
CommandCost CmdBuildAircraft (TileIndex tile, DoCommandFlag flags, const Engine *e, uint16 data, Vehicle **ret)
 Build an aircraft.
static void CheckIfAircraftNeedsService (Aircraft *v)
static void HelicopterTickHandler (Aircraft *v)
void SetAircraftPosition (Aircraft *v, int x, int y, int z)
 Set aircraft position.
void HandleAircraftEnterHangar (Aircraft *v)
 Handle Aircraft specific tasks when an Aircraft enters a hangar.
static void PlayAircraftSound (const Vehicle *v)
void UpdateAircraftCache (Aircraft *v, bool update_range)
 Update cached values of an aircraft.
static int UpdateAircraftSpeed (Aircraft *v, uint speed_limit=SPEED_LIMIT_NONE, bool hard_limit=true)
 Sets the new speed for an aircraft.
int GetAircraftFlyingAltitude (const Aircraft *v)
 Gets the cruise altitude of an aircraft.
static byte AircraftGetEntryPoint (const Aircraft *v, const AirportFTAClass *apc, Direction rotation)
 Find the entry point to an airport depending on direction which the airport is being approached from.
static void MaybeCrashAirplane (Aircraft *v)
 Decide whether aircraft v should crash.
static bool AircraftController (Aircraft *v)
 Controls the movement of an aircraft.
static bool HandleCrashedAircraft (Aircraft *v)
 Handle crashed aircraft v.
static void HandleAircraftSmoke (Aircraft *v)
void HandleMissingAircraftOrders (Aircraft *v)
static void AircraftEntersTerminal (Aircraft *v)
 Aircraft arrives at a terminal.
static void AircraftLandAirplane (Aircraft *v)
 Aircraft touched down at the landing strip.
void AircraftNextAirportPos_and_Order (Aircraft *v)
 set the right pos when heading to other airports after takeoff
void AircraftLeaveHangar (Aircraft *v, Direction exit_dir)
 Aircraft is about to leave the hangar.
static void AircraftEventHandler_EnterTerminal (Aircraft *v, const AirportFTAClass *apc)
static void AircraftEventHandler_EnterHangar (Aircraft *v, const AirportFTAClass *apc)
 Aircraft arrived in an airport hangar.
static void AircraftEventHandler_InHangar (Aircraft *v, const AirportFTAClass *apc)
 Handle aircraft movement/decision making in an airport hangar.
static void AircraftEventHandler_AtTerminal (Aircraft *v, const AirportFTAClass *apc)
 At one of the Airport's Terminals.
static void AircraftEventHandler_General (Aircraft *v, const AirportFTAClass *apc)
static void AircraftEventHandler_TakeOff (Aircraft *v, const AirportFTAClass *apc)
static void AircraftEventHandler_StartTakeOff (Aircraft *v, const AirportFTAClass *apc)
static void AircraftEventHandler_EndTakeOff (Aircraft *v, const AirportFTAClass *apc)
static void AircraftEventHandler_HeliTakeOff (Aircraft *v, const AirportFTAClass *apc)
static void AircraftEventHandler_Flying (Aircraft *v, const AirportFTAClass *apc)
static void AircraftEventHandler_Landing (Aircraft *v, const AirportFTAClass *apc)
static void AircraftEventHandler_HeliLanding (Aircraft *v, const AirportFTAClass *apc)
static void AircraftEventHandler_EndLanding (Aircraft *v, const AirportFTAClass *apc)
static void AircraftEventHandler_HeliEndLanding (Aircraft *v, const AirportFTAClass *apc)
static void AirportClearBlock (const Aircraft *v, const AirportFTAClass *apc)
static void AirportGoToNextPosition (Aircraft *v)
static bool FreeTerminal (Aircraft *v, byte i, byte last_terminal)
 Find a free terminal or helipad, and if available, assign it.
static uint GetNumTerminals (const AirportFTAClass *apc)
 Get the number of terminals at the airport.
static void AircraftHandleDestTooFar (Aircraft *v, bool too_far)
 Handle the 'dest too far' flag and the corresponding news message for aircraft.
static bool AircraftEventHandler (Aircraft *v, int loop)
StationGetTargetAirportIfValid (const Aircraft *v)
 Returns aircraft's target station if v->target_airport is a valid station with airport.
void UpdateAirplanesOnNewStation (const Station *st)
 Updates the status of the Aircraft heading or in the station.

Variables

static const int ROTOR_Z_OFFSET = 5
 Z Offset between helicopter- and rotorsprite.
static const int PLANE_HOLDING_ALTITUDE = 150
 Altitude of planes in holding pattern (= lowest flight altitude).
static const int HELI_FLIGHT_ALTITUDE = 184
 Normal flight altitude of helicopters.
static const SpriteID _aircraft_sprite []
static AircraftStateHandler *const _aircraft_state_handlers []
 Array of handler functions for each target of the aircraft.
static const
MovementTerminalMapping 
_airport_terminal_mapping []
 A list of all valid terminals and their associated blocks.

Detailed Description

This file deals with aircraft and airport movements functionalities.

Definition in file aircraft_cmd.cpp.


Typedef Documentation

typedef void AircraftStateHandler(Aircraft *v, const AirportFTAClass *apc)

Signature of the aircraft handler function.

Parameters:
v Aircraft to handle.
apc Airport state machine.

Definition at line 1553 of file aircraft_cmd.cpp.


Enumeration Type Documentation

Special velocities for aircraft.

Enumerator:
SPEED_LIMIT_TAXI 

Maximum speed of an aircraft while taxiing.

SPEED_LIMIT_APPROACH 

Maximum speed of an aircraft on finals.

SPEED_LIMIT_BROKEN 

Maximum speed of an aircraft that is broken.

SPEED_LIMIT_HOLD 

Maximum speed of an aircraft that flies the holding pattern.

SPEED_LIMIT_NONE 

No environmental speed limit. Speed limit is type dependent.

Definition at line 574 of file aircraft_cmd.cpp.


Function Documentation

static bool AircraftController ( Aircraft v  )  [static]

Controls the movement of an aircraft.

This function actually moves the vehicle on the map and takes care of minor things like sound playback.

Todo:
De-mystify the cur_speed values for helicopter rotors.
Parameters:
v The vehicle that is moved. Must be the first vehicle of the chain
Returns:
Whether the position requested by the State Machine has been reached

Definition at line 728 of file aircraft_cmd.cpp.

References _settings_game, abs(), AIR_AIRCRAFT, AircraftGetEntryPoint(), AircraftNextAirportPos_and_Order(), Station::airport, AMED_BRAKE, AMED_EXACTPOS, AMED_HELI_LOWER, AMED_HELI_RAISE, AMED_HOLD, AMED_LAND, AMED_NOSPDCLAMP, AMED_SLOWTURN, AMED_TAKEOFF, AT_DUMMY, CeilDiv(), ChangeDir(), Vehicle::cur_speed, Vehicle::current_order, AirportFTAClass::delta_z, DIR_N, DIRDIFF_45LEFT, DIRDIFF_45RIGHT, DIRDIFF_REVERSE, DIRDIFF_SAME, DirDifference(), Vehicle::direction, AirportMovingData::direction, AirportMovingData::flag, GetAircraftFlyingAltitude(), GetAirport(), Order::GetDestination(), Airport::GetFTA(), SpecializedStation< Station, false >::GetIfValid(), GetNewVehiclePos(), TileArea::h, INVALID_TILE, max(), MaybeCrashAirplane(), min(), AirportFTAClass::MovingData(), GetNewVehiclePosResult::new_tile, SpecializedVehicle< T, Type >::Next(), AirportFTAClass::nofelements, Aircraft::number_consecutive_turns, GetNewVehiclePosResult::old_tile, PLANE_HOLDING_ALTITUDE, VehicleSettings::plane_speed, PlayVehicleSound(), Aircraft::pos, Aircraft::previous_pos, RotateAirportMovingData(), Airport::rotation, SetAircraftPosition(), SPEED_LIMIT_TAXI, Aircraft::state, Vehicle::subtype, Aircraft::targetairport, Vehicle::tile, TileArea::tile, TILE_SIZE, TileVirtXY(), TileX(), TileY(), Aircraft::turn_counter, Airport::type, UpdateAircraftCache(), UpdateAircraftSpeed(), GameSettings::vehicle, Vehicle::vehstatus, VS_CRASHED, VSE_START, TileArea::w, AirportMovingData::x, Vehicle::x_pos, BaseStation::xy, GetNewVehiclePosResult::y, AirportMovingData::y, Vehicle::y_pos, and Vehicle::z_pos.

static void AircraftEntersTerminal ( Aircraft v  )  [static]
static void AircraftEventHandler_EnterHangar ( Aircraft v,
const AirportFTAClass apc 
) [static]

Aircraft arrived in an airport hangar.

Parameters:
v Aircraft in the hangar.
apc Airport description containing the hangar.

Definition at line 1308 of file aircraft_cmd.cpp.

References AirportFTA::heading, AirportFTAClass::layout, Aircraft::pos, Aircraft::state, and VehicleEnterDepot().

Referenced by AircraftEventHandler_InHangar().

static void AircraftEventHandler_InHangar ( Aircraft v,
const AirportFTAClass apc 
) [static]
static byte AircraftGetEntryPoint ( const Aircraft v,
const AirportFTAClass apc,
Direction  rotation 
) [static]

Find the entry point to an airport depending on direction which the airport is being approached from.

Each airport can have up to four entry points for its approach system so that approaching aircraft do not fly through each other or are forced to do 180 degree turns during the approach. The arrivals are grouped into four sectors dependent on the DiagDirection from which the airport is approached.

Parameters:
v The vehicle that is approaching the airport
apc The Airport Class being approached.
rotation The rotation of the airport.
Returns:
The index of the entry point

Definition at line 687 of file aircraft_cmd.cpp.

References abs(), Station::airport, ChangeDiagDir(), DIAGDIR_NE, DIAGDIR_NW, DirToDiagDir(), AirportFTAClass::entry_points, SpecializedStation< Station, false >::GetIfValid(), INVALID_TILE, ReverseDiagDir(), Aircraft::targetairport, TileArea::tile, TILE_SIZE, TileX(), TileY(), Vehicle::x_pos, BaseStation::xy, and Vehicle::y_pos.

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

static void AircraftHandleDestTooFar ( Aircraft v,
bool  too_far 
) [static]

Handle the 'dest too far' flag and the corresponding news message for aircraft.

Parameters:
v The aircraft.
too_far True if the current destination is too far away.

Definition at line 1853 of file aircraft_cmd.cpp.

References _local_company, AddVehicleAdviceNewsItem(), ClrBit(), DeleteVehicleNews(), Aircraft::flags, HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, AI::NewEvent(), Vehicle::owner, SetBit(), SetDParam(), SetWindowWidgetDirty(), VAF_DEST_TOO_FAR, WC_VEHICLE_VIEW, and WID_VV_START_STOP.

static void AircraftLandAirplane ( Aircraft v  )  [static]

Aircraft touched down at the landing strip.

Parameters:
v Aircraft that landed.

Definition at line 1238 of file aircraft_cmd.cpp.

References INVALID_DIR, PlayVehicleSound(), Aircraft::UpdateDeltaXY(), and VSE_TOUCHDOWN.

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 1269 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, Vehicle::vehstatus, WC_AIRCRAFT_LIST, WC_VEHICLE_DEPOT, Vehicle::x_pos, Vehicle::y_pos, and Vehicle::z_pos.

Referenced by AircraftEventHandler_InHangar(), and UpdateOldAircraft().

static bool AirportFindFreeHelipad ( Aircraft v,
const AirportFTAClass apc 
) [static]

Find a free helipad, and assign it if available.

Parameters:
v Aircraft to handle.
apc Airport state machine.
Returns:
Found a free helipad and assigned it.

Definition at line 1838 of file aircraft_cmd.cpp.

References AirportFindFreeTerminal(), FreeTerminal(), MAX_TERMINALS, and AirportFTAClass::num_helipads.

Referenced by AircraftEventHandler_InHangar().

static bool AirportFindFreeTerminal ( Aircraft v,
const AirportFTAClass apc 
) [static]

Find a free terminal, and assign it if available.

Parameters:
v Aircraft to handle.
apc Airport state machine.
Returns:
Found a free terminal and assigned it.

Definition at line 1785 of file aircraft_cmd.cpp.

References Station::airport, AirportFTA::block, Airport::flags, FreeTerminal(), SpecializedStation< Station, false >::Get(), GetNumTerminals(), AirportFTA::heading, AirportFTAClass::layout, AirportFTA::next, AirportFTA::next_position, Aircraft::pos, Aircraft::targetairport, and AirportFTAClass::terminals.

Referenced by AircraftEventHandler_InHangar(), and AirportFindFreeHelipad().

static bool AirportHasBlock ( Aircraft v,
const AirportFTA current_pos,
const AirportFTAClass apc 
) [static]
static bool AirportSetBlocks ( Aircraft v,
const AirportFTA current_pos,
const AirportFTAClass apc 
) [static]

"reserve" a block for the plane

Parameters:
v airplane that requires the operation
current_pos of the vehicle in the list of blocks
apc airport on which block is requsted to be set
Returns:
true on success. Eg, next block was free and we have occupied it

Definition at line 1681 of file aircraft_cmd.cpp.

References Station::airport, AirportFTA::block, Vehicle::cur_speed, Airport::flags, SpecializedStation< Station, false >::Get(), AirportFTA::heading, AirportFTAClass::layout, AirportFTA::next, AirportFTA::next_position, Aircraft::pos, AirportFTA::position, SETBITS, Vehicle::subspeed, and Aircraft::targetairport.

CommandCost CmdBuildAircraft ( TileIndex  tile,
DoCommandFlag  flags,
const Engine e,
uint16  data,
Vehicle **  ret 
)

Build an aircraft.

Parameters:
tile tile of the depot where aircraft is built.
flags type of operation.
e the engine to build.
data unused.
ret[out] the vehicle that has been built.
Returns:
the cost of this operation or an error.

Definition at line 227 of file aircraft_cmd.cpp.

References _cur_year, _current_company, _date, Vehicle::acceleration, AIR_AIRCRAFT, AIR_HELICOPTER, Station::airport, Vehicle::build_year, CanVehicleUseStation(), Vehicle::cargo_cap, Vehicle::cargo_type, CMD_ERROR, Vehicle::cur_image, Vehicle::date_of_last_service, DC_EXEC, Engine::DetermineCapacity(), Vehicle::direction, ENGINE_EXCLUSIVE_PREVIEW, Vehicle::engine_type, Engine::flags, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), SpecializedStation< Station, false >::GetByTile(), Engine::GetDefaultCargoType(), Airport::GetHangarNum(), Airport::GetHangarTile(), Engine::GetLifeLengthInDays(), GetStationIndex(), GetVehiclePosOnBuild(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_DIR, Vehicle::InvalidateNewGRFCacheOfChain(), Vehicle::last_loading_station, Vehicle::last_station_visited, AircraftVehicleInfo::mail_capacity, Vehicle::max_age, Vehicle::name, Vehicle::owner, AircraftVehicleInfo::passenger_capacity, Aircraft::pos, Aircraft::previous_pos, Vehicle::random_bits, Engine::reliability, Vehicle::reliability, Engine::reliability_spd_dec, Vehicle::reliability_spd_dec, ROTOR_Z_OFFSET, Vehicle::service_interval, SetBit(), Vehicle::SetNext(), Vehicle::spritenum, Aircraft::state, AircraftVehicleInfo::subtype, Vehicle::subtype, Aircraft::targetairport, Vehicle::tile, TILE_SIZE, TileX(), TileY(), UpdateAircraftCache(), Aircraft::UpdateDeltaXY(), Vehicle::vehicle_flags, VehicleRandomBits(), VehicleUpdatePosition(), Vehicle::vehstatus, VF_BUILT_AS_PROTOTYPE, VS_HIDDEN, VS_STOPPED, VS_UNCLICKABLE, Vehicle::x_pos, Vehicle::y_pos, and Vehicle::z_pos.

Referenced by CmdBuildVehicle().

static void CrashAirplane ( Aircraft v  )  [static]
static StationID FindNearestHangar ( const Aircraft v  )  [static]

Find the nearest hangar to v INVALID_STATION is returned, if the company does not have any suitable airports (like helipads only).

Parameters:
v vehicle looking for a hangar
Returns:
the StationID if one is found, otherwise, INVALID_STATION

Definition at line 117 of file aircraft_cmd.cpp.

References _cheats, Station::airport, DistanceSquare(), Vehicle::engine_type, FACIL_AIRPORT, BaseStation::facilities, AirportFTAClass::flags, Airport::GetFTA(), Airport::HasHangar(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Cheats::no_jetcrash, Vehicle::owner, BaseStation::owner, AircraftVehicleInfo::subtype, TileArea::tile, TileVirtXY(), Cheat::value, Vehicle::x_pos, and Vehicle::y_pos.

Referenced by Aircraft::FindClosestDepot().

static bool FreeTerminal ( Aircraft v,
byte  i,
byte  last_terminal 
) [static]

Find a free terminal or helipad, and if available, assign it.

Parameters:
v Aircraft looking for a free terminal or helipad.
i First terminal to examine.
last_terminal Terminal number to stop examining.
Returns:
A terminal or helipad has been found, and has been assigned to the aircraft.

Definition at line 1750 of file aircraft_cmd.cpp.

References Station::airport, MovementTerminalMapping::airport_flag, Airport::flags, SpecializedStation< Station, false >::Get(), lengthof, SETBITS, MovementTerminalMapping::state, Aircraft::state, and Aircraft::targetairport.

Referenced by AirportFindFreeHelipad(), and AirportFindFreeTerminal().

int GetAircraftFlyingAltitude ( const Aircraft 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 644 of file aircraft_cmd.cpp.

References AIR_HELICOPTER, VehicleCache::cached_max_speed, DIR_E, DIR_N, DIR_NE, DIR_SE, Vehicle::direction, HELI_FLIGHT_ALTITUDE, min(), PLANE_HOLDING_ALTITUDE, Vehicle::subtype, and Vehicle::vcache.

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

void GetAircraftSpriteSize ( EngineID  engine,
uint &  width,
uint &  height,
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
width The width of the sprite
height The height of the sprite

Definition at line 210 of file aircraft_cmd.cpp.

References Sprite::height, ST_NORMAL, UnScaleByZoom(), Sprite::width, and ZOOM_LVL_GUI.

static uint GetNumTerminals ( const AirportFTAClass apc  )  [static]

Get the number of terminals at the airport.

Parameters:
afc Airport description.
Returns:
Number of terminals.

Definition at line 1770 of file aircraft_cmd.cpp.

References AirportFTAClass::terminals.

Referenced by AirportFindFreeTerminal().

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

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

Referenced by AfterLoadGame(), AircraftNextAirportPos_and_Order(), CrashAirplane(), Aircraft::FindClosestDepot(), 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 514 of file aircraft_cmd.cpp.

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

Referenced by VehicleEnterDepot().

static bool HandleCrashedAircraft ( Aircraft v  )  [static]
static void MaybeCrashAirplane ( Aircraft v  )  [static]
void SetAircraftPosition ( Aircraft v,
int  x,
int  y,
int  z 
)
void UpdateAircraftCache ( Aircraft v,
bool  update_range 
)
static int UpdateAircraftSpeed ( Aircraft v,
uint  speed_limit = SPEED_LIMIT_NONE,
bool  hard_limit = true 
) [static]

Sets the new speed for an aircraft.

Parameters:
v The vehicle for which the speed should be obtained
speed_limit The maximum speed the vehicle may have.
hard_limit If true, the limit is directly enforced, otherwise the plane is slowed down gradually
Returns:
The number of position updates needed within the tick

Definition at line 589 of file aircraft_cmd.cpp.

References _settings_game, Vehicle::acceleration, VehicleCache::cached_max_speed, Vehicle::cur_speed, Vehicle::GetOldAdvanceSpeed(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, max(), min(), VehicleSettings::plane_speed, Vehicle::progress, SetWindowWidgetDirty(), SPEED_LIMIT_BROKEN, Vehicle::subspeed, Vehicle::vcache, GameSettings::vehicle, Vehicle::vehstatus, VS_AIRCRAFT_BROKEN, WC_VEHICLE_VIEW, and WID_VV_START_STOP.

Referenced by AircraftController().

void UpdateAirplanesOnNewStation ( const Station st  ) 

Variable Documentation

const SpriteID _aircraft_sprite[] [static]
Initial value:
 {
  0x0EB5, 0x0EBD, 0x0EC5, 0x0ECD,
  0x0ED5, 0x0EDD, 0x0E9D, 0x0EA5,
  0x0EAD, 0x0EE5, 0x0F05, 0x0F0D,
  0x0F15, 0x0F1D, 0x0F25, 0x0F2D,
  0x0EED, 0x0EF5, 0x0EFD, 0x0F35,
  0x0E9D, 0x0EA5, 0x0EAD, 0x0EB5,
  0x0EBD, 0x0EC5
}

Definition at line 92 of file aircraft_cmd.cpp.

Initial value:
 {
  AircraftEventHandler_General,        
  AircraftEventHandler_InHangar,       
  AircraftEventHandler_AtTerminal,     
  AircraftEventHandler_AtTerminal,     
  AircraftEventHandler_AtTerminal,     
  AircraftEventHandler_AtTerminal,     
  AircraftEventHandler_AtTerminal,     
  AircraftEventHandler_AtTerminal,     
  AircraftEventHandler_AtTerminal,     
  AircraftEventHandler_AtTerminal,     
  AircraftEventHandler_TakeOff,        
  AircraftEventHandler_StartTakeOff,   
  AircraftEventHandler_EndTakeOff,     
  AircraftEventHandler_HeliTakeOff,    
  AircraftEventHandler_Flying,         
  AircraftEventHandler_Landing,        
  AircraftEventHandler_EndLanding,     
  AircraftEventHandler_HeliLanding,    
  AircraftEventHandler_HeliEndLanding, 
  AircraftEventHandler_AtTerminal,     
  AircraftEventHandler_AtTerminal,     
  AircraftEventHandler_AtTerminal,     
}

Array of handler functions for each target of the aircraft.

Definition at line 1555 of file aircraft_cmd.cpp.

Initial value:
 {
  {TERM1, TERM1_block},
  {TERM2, TERM2_block},
  {TERM3, TERM3_block},
  {TERM4, TERM4_block},
  {TERM5, TERM5_block},
  {TERM6, TERM6_block},
  {TERM7, TERM7_block},
  {TERM8, TERM8_block},
  {HELIPAD1, HELIPAD1_block},
  {HELIPAD2, HELIPAD2_block},
  {HELIPAD3, HELIPAD3_block},
}

A list of all valid terminals and their associated blocks.

Definition at line 1729 of file aircraft_cmd.cpp.