Public Member Functions | Static Public Member Functions | Data Fields | Private Member Functions | Private Attributes | Friends

# Vehicle Struct Reference

Vehicle data structure. More...

`#include <vehicle_base.h>`

Inheritance diagram for Vehicle:

## Public Member Functions
| 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 | LeaveStation ()
| Perform all actions when leaving a station.
GroundVehicleCache * | GetGroundVehicleCache ()
| Access the ground vehicle cache of the vehicle.
const GroundVehicleCache * | GetGroundVehicleCache () 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.
virtual void | MarkDirty ()
| Marks the vehicles to be redrawn and updates cached variables.
virtual void | UpdateDeltaXY (Direction direction)
| Updates the x and y offsets and the size of the sprite used for this vehicle.
uint | GetOldAdvanceSpeed (uint speed)
| Determines the effective direction-specific vehicle movement speed.
uint | GetAdvanceDistance ()
| Determines the vehicle "progress" needed for moving a step.
virtual ExpensesType | GetExpenseType (bool income) const
| Sets the expense type associated to this vehicle type.
virtual void | PlayLeaveStationSound () const
| Play the sound associated with leaving the station.
virtual bool | IsPrimaryVehicle () const
| Whether this is the primary vehicle in the chain.
const Engine * | GetEngine () const
| Retrieves the engine of the vehicle.
virtual SpriteID | GetImage (Direction direction, EngineImageType image_type) const
| Gets the sprite to show for the given direction.
const GRFFile * | GetGRF () 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 int | GetDisplaySpeed () const
| Gets the speed in km-ish/h that can be sent into SetDParam for string processing.
virtual int | GetDisplayMaxSpeed () const
| Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing.
virtual int | GetCurrentMaxSpeed () const
| Calculates the maximum speed of the vehicle under its current conditions.
virtual Money | GetRunningCost () const
| Gets the running cost of a vehicle.
virtual bool | IsInDepot () const
| Check whether the vehicle is in the depot.
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 bool | Tick ()
| Calls the tick handler of the vehicle.
virtual void | OnNewDay ()
| Calls the new day handler of the vehicle.
virtual uint | Crash (bool flooded=false)
| Crash the (whole) vehicle chain.
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.
Vehicle * | Next () const
| Get the next vehicle of this vehicle.
Vehicle * | Previous () const
| Get the previous vehicle of this vehicle.
Vehicle * | First () const
| Get the first vehicle of this vehicle chain.
Vehicle * | Last ()
| Get the last vehicle of this vehicle chain.
const Vehicle * | Last () const
| Get the last vehicle of this vehicle chain.
Vehicle * | Move (int n)
| Get the vehicle at offset n of this vehicle chain.
const Vehicle * | Move (int n) const
| Get the vehicle at offset n of this vehicle chain.
Order * | GetFirstOrder () 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.
Vehicle * | NextShared () const
| Get the next vehicle of the shared vehicle chain.
Vehicle * | PreviousShared () const
| Get the previous vehicle of the shared vehicle chain.
Vehicle * | FirstShared () 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.
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.
virtual TileIndex | GetOrderStationLocation (StationID station)
| Determine the location for the station where the vehicle goes to next.
virtual 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.
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.
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.
Order * | GetOrder (int index) const
| Returns order 'index' of a vehicle or NULL when it doesn't exists.
Order * | GetLastOrder () 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.
Vehicle * | GetNextArticulatedPart () const
| Get the next part of an articulated engine.
Vehicle * | GetFirstEnginePart ()
| Get the first part of an articulated engine.
const Vehicle * | GetFirstEnginePart () const
| Get the first part of an articulated engine.
Vehicle * | GetLastEnginePart ()
| Get the last part of an articulated engine.
Vehicle * | GetNextVehicle () const
| Get the next real (non-articulated part) vehicle in the consist.
Vehicle * | GetPrevVehicle () const
| Get the previous real (non-articulated part) vehicle in the consist.
## Static Public Member Functions
static uint | GetAdvanceSpeed (uint speed)
| Determines the effective vehicle movement speed.
## Data Fields
TileIndex | tile
| Current tile index.
TileIndex | dest_tile
| Heading for this tile.
Money | profit_this_year
| Profit this year << 8, low 8 bits are fract.
Money | profit_last_year
| Profit last year << 8, low 8 bits are fract.
Money | value
| Value of the vehicle.
CargoPayment * | cargo_payment
| The cargo payment we're currently in.
Rect | coord
| NOSAVE: Graphical bounding box of the vehicle, i.e. what to redraw on moves.
Vehicle * | hash_viewport_next
| NOSAVE: Next vehicle in the visual location hash.
Vehicle ** | hash_viewport_prev
| NOSAVE: Previous vehicle in the visual location hash.
Vehicle * | hash_tile_next
| NOSAVE: Next vehicle in the tile location hash.
Vehicle ** | hash_tile_prev
| NOSAVE: Previous vehicle in the tile location hash.
Vehicle ** | hash_tile_current
| NOSAVE: Cache of the current hash chain.
SpriteID | colourmap
| NOSAVE: cached colour mapping.
Year | build_year
| Year the vehicle has been built.
Date | age
| Age in days.
Date | max_age
| Maximum age.
Date | date_of_last_service
| Last date the vehicle had a service at a depot.
uint16 | reliability
| Reliability.
uint16 | reliability_spd_dec
| Reliability decrease speed.
byte | breakdown_ctr
| Counter for managing breakdown events.
byte | breakdown_delay
| Counter for managing breakdown length.
byte | breakdowns_since_last_service
| Counter for the amount of breakdowns.
byte | breakdown_chance
| Current chance of breakdowns.
int32 | x_pos
| x coordinate.
int32 | y_pos
| y coordinate.
int32 | z_pos
| z coordinate.
DirectionByte | direction
| facing
OwnerByte | owner
| Which company owns the vehicle?
byte | spritenum
| currently displayed sprite index 0xfd == custom sprite, 0xfe == custom second head sprite 0xff == reserved for another custom sprite
SpriteID | cur_image
| sprite number for this vehicle
byte | x_extent
| x-extent of vehicle bounding box
byte | y_extent
| y-extent of vehicle bounding box
byte | z_extent
| z-extent of vehicle bounding box
int8 | x_bb_offs
| x offset of vehicle bounding box
int8 | y_bb_offs
| y offset of vehicle bounding box
int8 | x_offs
| x offset for vehicle sprite
int8 | y_offs
| y offset for vehicle sprite
EngineID | engine_type
| The type of engine used for this vehicle.
TextEffectID | fill_percent_te_id
| a text-effect id to a loading indicator object
UnitID | unitnumber
| unit number, for display purposes only
uint16 | cur_speed
| current speed
byte | subspeed
| fractional speed
byte | acceleration
| used by train & aircraft
uint32 | motion_counter
| counter to occasionally play a vehicle sound.
byte | progress
| The percentage (if divided by 256) this vehicle already crossed the tile unit.
byte | random_bits
| Bits used for determining which randomized variational spritegroups to use when drawing.
byte | waiting_triggers
| Triggers to be yet matched before rerandomizing the random bits.
StationID | last_station_visited
| The last station we stopped at.
CargoID | cargo_type
| type of cargo this vehicle is carrying
byte | cargo_subtype
| Used for livery refits (NewGRF variations).
uint16 | cargo_cap
| total capacity
VehicleCargoList | cargo
| The cargo this vehicle is carrying.
uint16 | cargo_age_counter
| Ticks till cargo is aged next.
byte | day_counter
| Increased by one for each day.
byte | tick_counter
| Increased by one for each tick.
byte | running_ticks
| Number of ticks this vehicle was not stopped this day.
byte | vehstatus
| Status.
Order | current_order
| The current order (+ status, like: loading).
union {
OrderList * list
| Pointer to the order list for this vehicle.
Order * old
| Only used during conversion of old save games.
} | orders
| The orders currently assigned to the vehicle.
uint16 | load_unload_ticks
| Ticks to wait before starting next cycle.
GroupID | group_id
| Index of group Pool array.
byte | subtype
| subtype (Filled with values from EffectVehicles/TrainSubTypes/AircraftSubTypes)
NewGRFCache | grf_cache
| Cache of often used calculated NewGRF values.
VehicleCache | vcache
| Cache of often used vehicle values.
## Private Member Functions
void | SkipToNextRealOrderIndex ()
| Advance cur_real_order_index to the next real order.
## Private Attributes
Vehicle * | next
| pointer to the next vehicle in the chain
Vehicle * | previous
| NOSAVE: pointer to the previous vehicle in the chain.
Vehicle * | first
| NOSAVE: pointer to the first vehicle in the chain.
Vehicle * | next_shared
| pointer to the next vehicle that shares the order
Vehicle * | previous_shared
| NOSAVE: pointer to the previous vehicle in the shared order chain.
## Friends
const SaveLoad * | GetVehicleDescription (VehicleType vt)
| So we can use private/protected variables in the saveload code.
void | FixOldVehicles ()
| Convert the old style vehicles into something that resembles the old new style savegames.
void | AfterLoadVehicles (bool part_of_load)
| So we can set the previous and first pointers while loading.
bool | LoadOldVehicle (LoadgameState *ls, int num)
| So we can set the proper next pointer while loading.

## Detailed Description

Vehicle data structure.

Definition at line 127 of file vehicle_base.h.

## Constructor & Destructor Documentation

Vehicle::Vehicle | ( | VehicleType | type = `VEH_INVALID` | ) |

Vehicle constructor.

Parameters:

  | type | Type of the new vehicle.

Definition at line 263 of file vehicle.cpp.

References cargo_age_counter, colourmap, coord, DEFAULT_GROUP, fill_percent_te_id, first, group_id, and INVALID_COORD.

Vehicle::~Vehicle | ( |  | ) | `[virtual]`

We want to 'destruct' the right class.

Definition at line 782 of file vehicle.cpp.

References cargo, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::CleaningPool(), DeleteNewGRFInspectWindow(), DeleteVehicleNews(), GetGrfSpecFeature(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::index, INVALID_COORD, INVALID_STRING_ID, MarkSingleVehicleDirty(), Next(), CargoList< Tinst >::OnCleanPool(), SetNext(), BaseVehicle::type, vehstatus, and VS_HIDDEN.

## Member Function Documentation

void Vehicle::AddToShared | ( | Vehicle * | shared_chain | ) |

Adds this vehicle to a shared vehicle chain.

Parameters:

  | shared_chain | a vehicle of the chain with shared vehicles.

Precondition:
  !this->IsOrderListShared()

Definition at line 2366 of file vehicle.cpp.

References OrderList::AddVehicle(), list, next_shared, orders, and previous_shared.

Referenced by AfterLoadVehicles(), CmdCloneOrder(), and CmdSellRailWagon().

void Vehicle::BeginLoading | ( |  | ) |

Prepare everything to begin the loading when arriving at a station.

Precondition:
  IsTileType(this->tile, MP_STATION) || this->type == VEH_SHIP.

Definition at line 1874 of file vehicle.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::CanAllocateItem(), ClrBit(), BaseConsist::cur_implicit_order_index, BaseConsist::cur_real_order_index, cur_speed, current_order, DeleteOrder(), DeleteUnreachedImplicitOrders(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Get(), Order::GetDestination(), GetGroundVehicleFlags(), GetLastOrder(), GetNumOrders(), GetOrder(), GetWindowClassForVehicleType(), GVF_SUPPRESS_IMPLICIT_ORDERS, HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::index, InsertOrder(), InvalidateVehicleOrder(), IsGroundVehicle(), IsTileType(), Order::IsType(), last_station_visited, Order::MakeImplicit(), Order::MakeLoading(), MarkDirty(), MAX_VEH_ORDER_ID, MP_STATION, Order::next, ONSF_NO_STOP_AT_ANY_STATION, orders, owner, PrepareUnload(), Order::SetNonStopType(), SetWindowDirty(), SetWindowWidgetDirty(), tile, BaseVehicle::type, UpdateVehicleTimetable(), VEH_SHIP, WC_STATION_VIEW, WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW, and WID_VV_START_STOP.

Referenced by AircraftEntersTerminal(), and TrainEnterStation().

void Vehicle::CopyVehicleConfigAndStatistics | ( | const Vehicle * | src | ) | `[inline]`

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.

Parameters:

  | src | The old vehicle

Definition at line 605 of file vehicle_base.h.

References BaseConsist::CopyConsistPropertiesFrom(), current_order, dest_tile, profit_last_year, profit_this_year, and unitnumber.

Referenced by CmdSellRailWagon(), and CopyHeadSpecificThings().

uint Vehicle::Crash | ( | bool | flooded = `false` | ) | `[virtual]`

Crash the (whole) vehicle chain.

Parameters:

  | flooded | whether the cause of the crash is flooding or not.

Returns:
  the number of lost souls.

Reimplemented in Aircraft, GroundVehicle< T, Type >, RoadVehicle, Train, GroundVehicle< Train, VEH_TRAIN >, and GroundVehicle< RoadVehicle, VEH_ROAD >.

Definition at line 182 of file vehicle.cpp.

References cargo, cargo_payment, cargo_type, CC_PASSENGERS, CargoList< Tinst >::Count(), GetWindowClassForVehicleType(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::index, InvalidateWindowClassesData(), IsCargoInClass(), IsPrimaryVehicle(), MarkSingleVehicleDirty(), Next(), Previous(), SetWindowDirty(), SetWindowWidgetDirty(), tile, BaseVehicle::type, vehstatus, VS_CRASHED, WC_VEHICLE_DEPOT, WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW, and WID_VV_START_STOP.

Referenced by FloodVehicle().

virtual bool Vehicle::FindClosestDepot | ( | TileIndex * | location,
|  | DestinationID * | destination,
|  | bool * | reverse |
| ) |  |  | `[inline, virtual]`

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

Parameters:

  | location | where do we go to?
  | destination | what hangar do we go to?
  | reverse | should the vehicle be reversed?

Returns:
  true if a depot could be found.

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 643 of file vehicle_base.h.

Referenced by SendToDepot(), and UpdateOrderDest().

Vehicle* Vehicle::First | ( |  | ) | const`[inline]`

Get the first vehicle of this vehicle chain.

Returns:
  the first vehicle of the chain.

Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, and SpecializedVehicle< RoadVehicle, Type >.

Definition at line 498 of file vehicle_base.h.

References first.

Referenced by AfterLoadVehicles(), RefitWindow::BuildRefitList(), CheckCaches(), CheckCargoCapacity(), CmdRefitVehicle(), CmdSellVehicle(), FirstShared(), FloodVehicleProc(), GetEngineLiveryScheme(), GetNewCargoTypeForReplace(), IsStoppedInDepot(), PositionHelper(), RefitVehicle(), ReplaceChain(), VehicleResolverObject::ResolveReal(), VehicleClicked(), VehicleEnterDepot(), and VerifyAutoreplaceRefitForOrders().

Vehicle* Vehicle::FirstShared | ( |  | ) | const`[inline]`

Get the first vehicle of this vehicle chain.

Returns:
  the first vehicle of the chain.

Definition at line 579 of file vehicle_base.h.

References First(), and orders.

Referenced by AfterLoadGame(), ChangeTimetable(), CheckOrders(), OrderBackup::ClearVehicle(), CmdAddSharedVehicleGroup(), CmdAddVehicleGroup(), CmdAutofillTimetable(), CmdCloneOrder(), CmdInsertOrder(), CmdModifyOrder(), CmdMoveOrder(), CmdOrderRefit(), DeleteOrder(), InsertOrder(), OrderBackup::OrderBackup(), OrdersWindow::OrderClick_StopSharing(), RemoveFromShared(), RemoveOrderFromAllVehicles(), and UpdateVehicleTimetable().

uint Vehicle::GetAdvanceDistance | ( |  | ) | `[inline]`

Determines the vehicle "progress" needed for moving a step.

Together with GetAdvanceSpeed() this function is a replacement for GetOldAdvanceSpeed().

Returns:
  distance to drive for a movement step on the map.

Definition at line 318 of file vehicle_base.h.

References direction.

static uint Vehicle::GetAdvanceSpeed | ( | uint | speed | ) | `[inline, static]`

Determines the effective vehicle movement speed.

Together with GetAdvanceDistance() this function is a replacement for GetOldAdvanceSpeed().

A vehicle progresses independent of it's movement direction. However different amounts of "progress" are needed for moving a step in a specific direction. That way the leftover progress does not need any adaption when changing movement direction.

Parameters:

  | speed | Direction-independent unscaled speed.

Returns:
  speed, scaled to match GetAdvanceDistance().

Definition at line 306 of file vehicle_base.h.

Referenced by GroundVehicle< RoadVehicle, VEH_ROAD >::DoUpdateSpeed().

virtual int Vehicle::GetCurrentMaxSpeed | ( |  | ) | const`[inline, virtual]`

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

Returns:
  Current maximum speed in native units.

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 396 of file vehicle_base.h.

virtual int Vehicle::GetDisplayMaxSpeed | ( |  | ) | const`[inline, virtual]`

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

Returns:
  the vehicle's maximum speed

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 390 of file vehicle_base.h.

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

Money Vehicle::GetDisplayProfitLastYear | ( |  | ) | const`[inline]`

Gets the profit vehicle had last year.

It can be sent into SetDParam for string processing.

Returns:
  the vehicle's profit last year

Definition at line 476 of file vehicle_base.h.

References profit_last_year.

Referenced by GroupStatistics::CountVehicle(), BaseVehicleListWindow::DrawVehicleListItems(), DrawVehicleProfitButton(), VehicleDetailsWindow::DrawWidget(), and GroupStatistics::VehicleReachedProfitAge().

Money Vehicle::GetDisplayProfitThisYear | ( |  | ) | const`[inline]`

Gets the profit vehicle had this year.

It can be sent into SetDParam for string processing.

Returns:
  the vehicle's profit this year

Definition at line 470 of file vehicle_base.h.

References profit_this_year.

Referenced by BaseVehicleListWindow::DrawVehicleListItems(), and VehicleDetailsWindow::DrawWidget().

Money Vehicle::GetDisplayRunningCost | ( |  | ) | const`[inline]`

Gets the running cost of a vehicle that can be sent into SetDParam for string processing.

Returns:
  the vehicle's running cost

Definition at line 464 of file vehicle_base.h.

References GetRunningCost().

Referenced by VehicleDetailsWindow::DrawWidget().

virtual int Vehicle::GetDisplaySpeed | ( |  | ) | const`[inline, virtual]`

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

Returns:
  the vehicle's speed

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 384 of file vehicle_base.h.

Referenced by VehicleViewWindow::DrawWidget().

const Engine * Vehicle::GetEngine | ( |  | ) | const

Retrieves the engine of the vehicle.

Returns:
  Engine of the vehicle.

Precondition:
  HasEngineType() == true

Definition at line 659 of file vehicle.cpp.

References engine_type, and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Get().

Referenced by AgeVehicle(), AircraftEventHandler_AtTerminal(), RefitWindow::BuildRefitList(), CheckConsistencyOfArticulatedVehicle(), CheckValidVehicles(), CmdCloneVehicle(), GetBestFittingSubType(), GetCargoSummaryOfArticulatedVehicle(), Train::GetDisplayImageWidth(), GetGRF(), GetGRFID(), Train::GetImage(), Ship::GetImage(), RoadVehicle::GetImage(), Aircraft::GetImage(), GetNewCargoTypeForReplace(), GetPreviewCompany(), GetRoadVehLength(), Train::GetRunningCost(), Ship::GetRunningCost(), RoadVehicle::GetRunningCost(), Aircraft::GetRunningCost(), IsArticulatedVehicleCarryingDifferentCargoes(), NeedsServicing(), RefitVehicle(), UpdateVisualEffect(), and VehicleLengthChanged().

virtual ExpensesType Vehicle::GetExpenseType | ( | bool | income | ) | const`[inline, virtual]`

Sets the expense type associated to this vehicle type.

Parameters:

  | income | whether this is income or (running) expenses of the vehicle

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 327 of file vehicle_base.h.

Referenced by RefitVehicle().

Vehicle* Vehicle::GetFirstEnginePart | ( |  | ) | `[inline]`

Get the first part of an articulated engine.

Returns:
  First part of the engine.

Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, and SpecializedVehicle< RoadVehicle, Type >.

Definition at line 807 of file vehicle_base.h.

References IsArticulatedPart(), and Previous().

Referenced by GetBestFittingSubType(), and IsArticulatedVehicleEmpty().

const Vehicle* Vehicle::GetFirstEnginePart | ( |  | ) | const`[inline]`

Get the first part of an articulated engine.

Returns:
  First part of the engine.

Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, and SpecializedVehicle< RoadVehicle, Type >.

Definition at line 818 of file vehicle_base.h.

References IsArticulatedPart(), and Previous().

Order* Vehicle::GetFirstOrder | ( |  | ) | const`[inline]`

Get the first order of the vehicles order list.

Returns:
  first order of order list.

Definition at line 558 of file vehicle_base.h.

References orders.

Referenced by CmdCloneOrder(), DrawOrderString(), and UpdateVehicleTimetable().

const GRFFile * Vehicle::GetGRF | ( |  | ) | const

Retrieve the NewGRF the vehicle is tied to.

This is the GRF providing the Action 3 for the engine type.

Returns:
  NewGRF associated to the vehicle.

Definition at line 669 of file vehicle.cpp.

References GetEngine(), and Engine::GetGRF().

Referenced by RefitWindow::BuildRefitList(), CheckTrainAttachment(), CmdStartStopVehicle(), GetCargoSubtypeText(), and PlayVehicleSound().

uint32 Vehicle::GetGRFID | ( |  | ) | const

Retrieve the GRF ID of the NewGRF the vehicle is tied to.

This is the GRF providing the Action 3 for the engine type.

Returns:
  GRF ID of the associated NewGRF.

Definition at line 679 of file vehicle.cpp.

References GetEngine(), and Engine::GetGRFID().

Referenced by RefitWindow::BuildRefitList(), CheckTrainAttachment(), CmdStartStopVehicle(), GetCargoSubtypeText(), and RunVehicleDayProc().

GroundVehicleCache * Vehicle::GetGroundVehicleCache | ( |  | ) |

Access the ground vehicle cache of the vehicle.

Precondition:
  The vehicle is a GroundVehicle.

Returns:
  GroundVehicleCache of the vehicle.

Definition at line 2503 of file vehicle.cpp.

References SpecializedVehicle< RoadVehicle, Type >::From(), SpecializedVehicle< Train, Type >::From(), GroundVehicle< T, Type >::gcache, IsGroundVehicle(), BaseVehicle::type, and VEH_TRAIN.

Referenced by AddArticulatedParts(), AfterLoadVehicles(), DepotWindow::DepotClick(), VehicleDetailsWindow::DrawWidget(), GetVehiclePalette(), GetVehicleSpriteGroup(), LiveryHelper(), and LoadUnloadVehicle().

const GroundVehicleCache * Vehicle::GetGroundVehicleCache | ( |  | ) | const

Access the ground vehicle cache of the vehicle.

Precondition:
  The vehicle is a GroundVehicle.

Returns:
  GroundVehicleCache of the vehicle.

Definition at line 2518 of file vehicle.cpp.

References SpecializedVehicle< RoadVehicle, Type >::From(), SpecializedVehicle< Train, Type >::From(), GroundVehicle< T, Type >::gcache, IsGroundVehicle(), BaseVehicle::type, and VEH_TRAIN.

uint16 & Vehicle::GetGroundVehicleFlags | ( |  | ) |

Access the ground vehicle flags of the vehicle.

Precondition:
  The vehicle is a GroundVehicle.

Returns:
  GroundVehicleFlags of the vehicle.

Definition at line 2533 of file vehicle.cpp.

References SpecializedVehicle< RoadVehicle, Type >::From(), SpecializedVehicle< Train, Type >::From(), GroundVehicle< T, Type >::gv_flags, IsGroundVehicle(), BaseVehicle::type, and VEH_TRAIN.

Referenced by BeginLoading(), DeleteUnreachedImplicitOrders(), InsertOrder(), SendToDepot(), and UpdateOrderDest().

const uint16 & Vehicle::GetGroundVehicleFlags | ( |  | ) | const

Access the ground vehicle flags of the vehicle.

Precondition:
  The vehicle is a GroundVehicle.

Returns:
  GroundVehicleFlags of the vehicle.

Definition at line 2548 of file vehicle.cpp.

References SpecializedVehicle< RoadVehicle, Type >::From(), SpecializedVehicle< Train, Type >::From(), GroundVehicle< T, Type >::gv_flags, IsGroundVehicle(), BaseVehicle::type, and VEH_TRAIN.

virtual SpriteID Vehicle::GetImage | ( | Direction | direction,
|  | EngineImageType | image_type |
| ) |  |  | const`[inline, virtual]`

Gets the sprite to show for the given direction.

Parameters:

  | direction | the direction the vehicle is facing

Returns:
  the sprite for the given vehicle in the given direction

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 346 of file vehicle_base.h.

Referenced by AfterLoadVehicles(), DepotWindow::DepotClick(), DrawAircraftImage(), DrawShipImage(), DepotWindow::DrawVehicleInDepot(), VehicleDetailsWindow::DrawWidget(), GetVehicleWidth(), and VehicleGroupWindow::OnClick().

Vehicle* Vehicle::GetLastEnginePart | ( |  | ) | `[inline]`

Get the last part of an articulated engine.

Returns:
  Last part of the engine.

Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, and SpecializedVehicle< RoadVehicle, Type >.

Definition at line 829 of file vehicle_base.h.

References GetNextArticulatedPart(), and HasArticulatedPart().

Order* Vehicle::GetLastOrder | ( |  | ) | const`[inline]`

Returns the last order of a vehicle, or NULL if it doesn't exists.

Returns:
  last order of a vehicle, if available

Definition at line 755 of file vehicle_base.h.

References orders.

Referenced by BeginLoading(), and CheckOrders().

Vehicle* Vehicle::GetNextArticulatedPart | ( |  | ) | const`[inline]`

Get the next part of an articulated engine.

Returns:
  Next part of the articulated engine.

Precondition:
  The vehicle is an articulated engine.

Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, and SpecializedVehicle< RoadVehicle, Type >.

Definition at line 797 of file vehicle_base.h.

References HasArticulatedPart(), and Next().

Referenced by CheckConsistencyOfArticulatedVehicle(), CmdCloneVehicle(), GetBestFittingSubType(), GetLastEnginePart(), GetNextVehicle(), IsArticulatedVehicleCarryingDifferentCargoes(), IsArticulatedVehicleEmpty(), and LoadUnloadVehicle().

Vehicle* Vehicle::GetNextVehicle | ( |  | ) | const`[inline]`

Get the next real (non-articulated part) vehicle in the consist.

Returns:
  Next vehicle in the consist.

Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, and SpecializedVehicle< RoadVehicle, Type >.

Definition at line 840 of file vehicle_base.h.

References GetNextArticulatedPart(), HasArticulatedPart(), and Next().

Referenced by CmdCloneVehicle().

VehicleOrderID Vehicle::GetNumManualOrders | ( |  | ) | const`[inline]`

Get the number of manually added orders this vehicle has.

Returns:
  the number of manually added orders this vehicle has.

Definition at line 597 of file vehicle_base.h.

References orders.

Referenced by VehicleViewWindow::DrawWidget(), ProcessOrders(), SkipToNextRealOrderIndex(), UpdateOrderDest(), and UpdateRealOrderIndex().

VehicleOrderID Vehicle::GetNumOrders | ( |  | ) | const`[inline]`

Get the number of orders this vehicle has.

Returns:
  the number of orders this vehicle has.

Definition at line 591 of file vehicle_base.h.

References orders.

Referenced by AfterLoadGame(), BeginLoading(), TimetableWindow::BuildArrivalDepartureList(), CheckNextTrainTile(), CheckOrders(), CmdCloneOrder(), CmdDeleteOrder(), CmdInsertOrder(), CmdModifyOrder(), CmdMoveOrder(), CmdSkipToOrder(), DeleteOrder(), OrderBackup::DoRestore(), TimetableWindow::DrawWidget(), OrdersWindow::DrawWidget(), FillTimetableArrivalDepartureTable(), GetOrderDistance(), IncrementImplicitOrderIndex(), InsertOrder(), TimetableWindow::OnClick(), OrdersWindow::OnClick(), OrdersWindow::OnDragDrop(), TimetableWindow::OnInvalidateData(), OrdersWindow::OnInvalidateData(), OrdersWindow::OnMouseDrag(), TimetableWindow::OnPaint(), OrdersWindow::OrderClick_Delete(), OrdersWindow::OrderClick_Skip(), OrdersWindow::OrderClick_StopSharing(), OrdersWindow::OrderGetSel(), ProcessOrders(), SkipToNextRealOrderIndex(), VehicleOrderSaver::SwitchToNextOrder(), UpdateOrderDest(), and UpdateRealOrderIndex().

uint Vehicle::GetOldAdvanceSpeed | ( | uint | speed | ) | `[inline]`

Determines the effective direction-specific vehicle movement speed.

This method belongs to the old vehicle movement method: A vehicle moves a step every 256 progress units. The vehicle speed is scaled by 3/4 when moving in X or Y direction due to the longer distance.

However, this method is slightly wrong in corners, as the leftover progress is not scaled correctly when changing movement direction. GetAdvanceSpeed() and GetAdvanceDistance() are better wrt. this.

Parameters:

  | speed | Direction-independent unscaled speed.

Returns:
  speed scaled by movement direction. 256 units are required for each movement step.

Definition at line 289 of file vehicle_base.h.

References direction.

Referenced by UpdateAircraftSpeed().

Order* Vehicle::GetOrder | ( | int | index | ) | const`[inline]`

Returns order 'index' of a vehicle or NULL when it doesn't exists.

Parameters:

  | index | the order to fetch

Returns:
  the found (or not) order

Definition at line 746 of file vehicle_base.h.

References orders.

Referenced by BeginLoading(), ChangeTimetable(), CmdChangeTimetable(), CmdDeleteOrder(), CmdInsertOrder(), CmdModifyOrder(), CmdMoveOrder(), CmdOrderRefit(), DeleteOrder(), DeleteUnreachedImplicitOrders(), TimetableWindow::DrawWidget(), OrdersWindow::DrawWidget(), FillTimetableArrivalDepartureTable(), GetOrderDistance(), HandleLoading(), IncrementImplicitOrderIndex(), TimetableWindow::OnClick(), OrdersWindow::OnClick(), TimetableWindow::OnPaint(), OrdersWindow::OnQueryTextFinished(), OrdersWindow::OrderClick_FullLoad(), OrdersWindow::OrderClick_Nonstop(), OrdersWindow::OrderClick_Service(), OrdersWindow::OrderClick_Unload(), ProcessOrders(), OrdersWindow::SetStringParameters(), SkipToNextRealOrderIndex(), VehicleOrderSaver::SwitchToNextOrder(), UpdateOrderDest(), UpdateRealOrderIndex(), and VehicleEnterDepot().

virtual TileIndex Vehicle::GetOrderStationLocation | ( | StationID | station | ) | `[inline, 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:

  | station | the station to make the next location of the vehicle.

Returns:
  the location (tile) to aim for.

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 633 of file vehicle_base.h.

References INVALID_TILE.

Referenced by UpdateOrderDest().

Vehicle* Vehicle::GetPrevVehicle | ( |  | ) | const`[inline]`

Get the previous real (non-articulated part) vehicle in the consist.

Returns:
  Previous vehicle in the consist.

Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, and SpecializedVehicle< RoadVehicle, Type >.

Definition at line 853 of file vehicle_base.h.

References IsArticulatedPart(), and Previous().

virtual Money Vehicle::GetRunningCost | ( |  | ) | const`[inline, virtual]`

Gets the running cost of a vehicle.

Returns:
  the vehicle's running cost

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 402 of file vehicle_base.h.

Referenced by GetDisplayRunningCost().

virtual Trackdir Vehicle::GetVehicleTrackdir | ( |  | ) | const`[inline, virtual]`

Returns the Trackdir on which the vehicle is currently located.

Works for trains and ships. Currently works only sortof for road vehicles, since they have a fuzzy concept of being "on" a trackdir. Dunno really what it returns for a road vehicle that is halfway a tile, never really understood that part. For road vehicles that are at the beginning or end of the tile, should just return the diagonal trackdir on which they are driving. I _think_. For other vehicles types, or vehicles with no clear trackdir (such as those in depots), returns 0xFF.

Returns:
  the trackdir of the vehicle

Reimplemented in RoadVehicle, Ship, and Train.

Definition at line 458 of file vehicle_base.h.

Referenced by RemoveFromRailBaseStation().

bool Vehicle::HandleBreakdown | ( |  | ) |

Handle all of the aspects of a vehicle breakdown This includes adding smoke and sounds, and ending the breakdown when appropriate.

Returns:
  true iff the vehicle is stopped because of a breakdown

Note:
  This function always returns false for aircraft, since these never stop for breakdowns

Definition at line 1130 of file vehicle.cpp.

References _settings_game, EffectVehicle::animation_state, breakdown_ctr, breakdown_delay, breakdowns_since_last_service, CreateEffectVehicleRel(), cur_speed, current_order, EF_NO_BREAKDOWN_SMOKE, engine_type, EV_BREAKDOWN_SMOKE, GameSettings::game_creation, HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::index, Order::IsType(), GameCreationSettings::landscape, MarkDirty(), PlayVehicleSound(), SetWindowDirty(), tick_counter, BaseVehicle::type, VEH_AIRCRAFT, VEH_TRAIN, vehstatus, VS_HIDDEN, VSE_BREAKDOWN, WC_VEHICLE_DETAILS, and WC_VEHICLE_VIEW.

void Vehicle::HandleLoading | ( | bool | mode = `false` | ) |

Handle the loading of the vehicle; when not it skips through dummy orders and does nothing in all other cases.

Parameters:

  | mode | is the non-first call for this vehicle in this tick?

Definition at line 2019 of file vehicle.cpp.

References BaseConsist::cur_implicit_order_index, current_order, BaseConsist::current_order_time, Order::GetDestination(), GetOrder(), Order::GetType(), HasBit(), IncrementImplicitOrderIndex(), Order::IsType(), last_station_visited, LeaveStation(), max(), PlayLeaveStationSound(), BaseConsist::vehicle_flags, VF_LOADING_FINISHED, and Order::wait_time.

void Vehicle::HandlePathfindingResult | ( | bool | path_found | ) |

Handle the pathfinding result, especially the lost status.

If the vehicle is now lost and wasn't previously fire an event to the AIs and a news message to the user. If the vehicle is not lost anymore remove the news message.

Parameters:

  | path_found | Whether the vehicle has a path to its destination.

Definition at line 691 of file vehicle.cpp.

References _local_company, _settings_client, AddVehicleAdviceNewsItem(), ClrBit(), DeleteVehicleNews(), ClientSettings::gui, HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::index, GUISettings::lost_vehicle_warn, AI::NewEvent(), owner, SetBit(), SetDParam(), BaseConsist::vehicle_flags, and VF_PATHFINDER_LOST.

Referenced by ChooseShipTrack(), and RoadFindPathToDest().

bool Vehicle::HasArticulatedPart | ( |  | ) | const`[inline]`

Check if an engine has an articulated part.

Returns:
  True if the engine has an articulated part.

Definition at line 787 of file vehicle_base.h.

References IsArticulatedPart(), and Next().

Referenced by CheckConsistencyOfArticulatedVehicle(), CmdCloneVehicle(), DrawRoadVehDetails(), VehicleDetailsWindow::DrawWidget(), RoadStop::Enter(), GetBestFittingSubType(), GetLastEnginePart(), GetNextArticulatedPart(), GetNextVehicle(), VehicleDetailsWindow::GetRoadVehDetailsHeight(), HighlightDragPosition(), IsArticulatedVehicleCarryingDifferentCargoes(), IsArticulatedVehicleEmpty(), LoadUnloadVehicle(), and RoadFindPathToDest().

bool Vehicle::HasDepotOrder | ( |  | ) | const

Checks if a vehicle has a depot in its order list.

Returns:
  True iff at least one order is a depot order.

Definition at line 1773 of file order_cmd.cpp.

References Order::IsType().

Referenced by NeedsAutomaticServicing().

bool Vehicle::HasEngineType | ( |  | ) | const

Check whether Vehicle::engine_type has any meaning.

Returns:
  true if the vehicle has a useable engine type.

Definition at line 643 of file vehicle.cpp.

References SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::From(), Aircraft::IsNormalAircraft(), BaseVehicle::type, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.

Referenced by RunVehicleDayProc().

void Vehicle::IncrementImplicitOrderIndex | ( |  | ) | `[inline]`

Increments cur_implicit_order_index, keeps care of the wrap-around and invalidates the GUI.

cur_real_order_index is incremented as well, if needed. Note: current_order is not invalidated.

Definition at line 686 of file vehicle_base.h.

References BaseConsist::cur_implicit_order_index, BaseConsist::cur_real_order_index, GetNumOrders(), GetOrder(), InvalidateVehicleOrder(), and SkipToNextRealOrderIndex().

Referenced by HandleLoading(), IncrementRealOrderIndex(), ProcessOrders(), and VehicleEnterDepot().

void Vehicle::IncrementRealOrderIndex | ( |  | ) | `[inline]`

Advanced cur_real_order_index to the next real order, keeps care of the wrap-around and invalidates the GUI.

cur_implicit_order_index is incremented as well, if it was equal to cur_real_order_index, i.e. cur_real_order_index is skipped but not any implicit orders. Note: current_order is not invalidated.

Definition at line 710 of file vehicle_base.h.

References BaseConsist::cur_implicit_order_index, BaseConsist::cur_real_order_index, IncrementImplicitOrderIndex(), InvalidateVehicleOrder(), and SkipToNextRealOrderIndex().

Referenced by Train::GetOrderStationLocation(), Ship::GetOrderStationLocation(), RoadVehicle::GetOrderStationLocation(), SendToDepot(), and UpdateOrderDest().

void Vehicle::InvalidateNewGRFCache | ( |  | ) | `[inline]`

Invalidates cached NewGRF variables.

See also:
  InvalidateNewGRFCacheOfChain

Definition at line 355 of file vehicle_base.h.

References NewGRFCache::cache_valid, and grf_cache.

Referenced by RefitWindow::BuildRefitList(), ChangeOwnershipOfCompanyItems(), CheckTrainAttachment(), CmdBuildRoadVehicle(), CmdSetCompanyColour(), and Train::ConsistChanged().

void Vehicle::InvalidateNewGRFCacheOfChain | ( |  | ) | `[inline]`

Invalidates cached NewGRF variables of all vehicles in the chain (after the current vehicle).

See also:
  InvalidateNewGRFCache

Definition at line 364 of file vehicle_base.h.

Referenced by CmdBuildAircraft(), CmdBuildRoadVehicle(), CmdBuildShip(), CmdRefitVehicle(), RefitVehicle(), and RoadVehUpdateCache().

bool Vehicle::IsArticulatedPart | ( |  | ) | const`[inline]`

Check if the vehicle is an articulated part of an engine.

Returns:
  Returns true if the vehicle is an articulated part.

Definition at line 778 of file vehicle_base.h.

References GVSF_ARTICULATED_PART, HasBit(), IsGroundVehicle(), and subtype.

Referenced by BuildDepotVehicleList(), CheckTrainAttachment(), CmdAutoreplaceVehicle(), DrawTrainDetails(), GetCargoSummaryOfArticulatedVehicle(), GetEngineLiveryScheme(), GetFirstEnginePart(), GetLengthOfArticulatedVehicle(), GetNewEngineType(), Train::GetPower(), RoadVehicle::GetPower(), GetPrevVehicle(), GetVehicleSet(), Train::GetWeight(), RoadVehicle::GetWeight(), HasArticulatedPart(), InsertInConsist(), IsEngineCountable(), ReplaceFreeUnit(), and TransferCargo().

virtual bool Vehicle::IsChainInDepot | ( |  | ) | const`[inline, virtual]`

Check whether the whole vehicle chain is in the depot.

Returns:
  true if and only if the whole chain is in the depot.

Reimplemented in GroundVehicle< T, Type >, GroundVehicle< Train, VEH_TRAIN >, and GroundVehicle< RoadVehicle, VEH_ROAD >.

Definition at line 414 of file vehicle_base.h.

References IsInDepot().

Referenced by CmdAutoreplaceVehicle(), CmdDepotMassAutoReplace(), CmdMassStartStopVehicle(), BaseVehicleListWindow::DrawVehicleListItems(), and IsStoppedInDepot().

bool Vehicle::IsEngineCountable | ( |  | ) | const

Check if a vehicle is counted in num_engines in each company struct.

Returns:
  true if the vehicle is counted in num_engines

Definition at line 626 of file vehicle.cpp.

References SpecializedVehicle< RoadVehicle, Type >::From(), SpecializedVehicle< Train, Type >::From(), SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::From(), IsArticulatedPart(), IsFrontEngine(), Aircraft::IsNormalAircraft(), GroundVehicle< T, Type >::IsRearDualheaded(), BaseVehicle::type, VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.

Referenced by AddVehicleToGroup(), ChangeOwnershipOfCompanyItems(), PreDestructor(), and GroupStatistics::UpdateAfterLoad().

bool Vehicle::IsFrontEngine | ( |  | ) | const`[inline]`

Check if the vehicle is a front engine.

Returns:
  Returns true if the vehicle is a front engine.

Definition at line 769 of file vehicle_base.h.

References GVSF_FRONT, HasBit(), IsGroundVehicle(), and subtype.

Referenced by AfterLoadGame(), AfterLoadVehicles(), CcBuildWagon(), CmdAutoreplaceVehicle(), CmdCloneVehicle(), CmdMoveRailVehicle(), CmdSellRailWagon(), ConnectMultiheadedTrains(), Train::ConsistChanged(), Train::Crash(), RoadVehicle::Crash(), DisasterTick_Ufo(), FreeTrainTrackReservation(), RoadVehicle::IsBus(), IsEngineCountable(), Train::IsPrimaryVehicle(), RoadVehicle::IsPrimaryVehicle(), NormaliseTrainHead(), DepotWindow::OnDragDrop(), Train::OnNewDay(), RoadVehicle::OnNewDay(), RoadVehAccelerationModelChanged(), RoadVehSlopeSteepnessChanged(), RoadVehUpdateCache(), SettingsDisableElrail(), SetTrainGroupID(), ShowVisualEffect(), Train::Tick(), RoadVehicle::Tick(), TrainApproachingCrossingEnum(), TrainApproachingCrossingTile(), TrainSlopeSteepnessChanged(), TryPathReserve(), Train::UpdateAcceleration(), UpdateTrainGroupID(), and WhoCanServiceIndustry().

bool Vehicle::IsGroundVehicle | ( |  | ) | const`[inline]`

Check if the vehicle is a ground vehicle.

Returns:
  True iff the vehicle is a train or a road vehicle.

Definition at line 375 of file vehicle_base.h.

References BaseVehicle::type, and VEH_TRAIN.

Referenced by AfterLoadGame(), AfterLoadVehicles(), BeginLoading(), RefitWindow::BuildRefitList(), CmdCloneVehicle(), CmdInsertOrder(), CmdModifyOrder(), DeleteUnreachedImplicitOrders(), DepotWindow::DepotClick(), DisasterTick_Big_Ufo(), DrawOrderString(), DepotWindow::DrawVehicleInDepot(), GetGroundVehicleCache(), GetGroundVehicleFlags(), GetVehiclePalette(), GetVehicleSpriteGroup(), InsertOrder(), IsArticulatedPart(), IsFrontEngine(), IsVehicleRefitable(), LiveryHelper(), VehicleViewWindow::OnClick(), VehicleViewWindow::OnTick(), OrdersWindow::OrderClick_Nonstop(), SendToDepot(), and UpdateOrderDest().

virtual bool Vehicle::IsInDepot | ( |  | ) | const`[inline, virtual]`

Check whether the vehicle is in the depot.

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

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 408 of file vehicle_base.h.

Referenced by BuildDepotVehicleList(), and IsChainInDepot().

bool Vehicle::IsOrderListShared | ( |  | ) | const`[inline]`

Check if we share our orders with another vehicle.

Returns:
  true if there are other vehicles sharing the same order

Definition at line 585 of file vehicle_base.h.

References orders.

Referenced by DeleteVehicleOrders(), OrdersWindow::DrawWidget(), TimetableWindow::OnPaint(), OrderBackup::OrderBackup(), and OrdersWindow::OrderClick_StopSharing().

bool Vehicle::IsStoppedInDepot | ( |  | ) | const`[inline]`

Check whether the vehicle is in the depot *and* stopped.

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

Definition at line 420 of file vehicle_base.h.

References First(), IsChainInDepot(), IsPrimaryVehicle(), vehstatus, and VS_STOPPED.

Referenced by CcBuildWagon(), CmdAutoreplaceVehicle(), CmdMoveRailVehicle(), CmdRefitVehicle(), CmdReverseTrainDirection(), CmdSellVehicle(), CmdStartStopVehicle(), IsVehicleRefitable(), VehicleViewWindow::OnTick(), and SendToDepot().

Vehicle* Vehicle::Last | ( |  | ) | `[inline]`

Get the last vehicle of this vehicle chain.

Returns:
  the last vehicle of the chain.

Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, and SpecializedVehicle< RoadVehicle, Type >.

Definition at line 504 of file vehicle_base.h.

References Next().

Referenced by CcBuildWagon(), and DepotWindow::OnMouseDrag().

const Vehicle* Vehicle::Last | ( |  | ) | const`[inline]`

Get the last vehicle of this vehicle chain.

Returns:
  the last vehicle of the chain.

Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, and SpecializedVehicle< RoadVehicle, Type >.

Definition at line 515 of file vehicle_base.h.

References Next().

void Vehicle::LeaveStation | ( |  | ) |

Perform all actions when leaving a station.

Precondition:
  this->current_order.IsType(OT_LOADING)

Definition at line 1987 of file vehicle.cpp.

References cargo_payment, current_order, fill_percent_te_id, SpecializedVehicle< Train, Type >::From(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Get(), Order::GetNonStopType(), HideFillingPercent(), IsTileType(), Order::IsType(), last_station_visited, Order::MakeLeaveStation(), MP_STATION, SAT_TRAIN_DEPARTS, SetBit(), SRT_TRAIN_DEPARTS, tile, TriggerStationRandomisation(), BaseVehicle::type, UpdateVehicleTimetable(), VEH_TRAIN, vehstatus, VRF_LEAVING_STATION, and VS_CRASHED.

Referenced by CmdReverseTrainDirection(), CmdSkipToOrder(), HandleLoading(), RemoveDock(), and SendToDepot().

Vehicle* Vehicle::Move | ( | int | n | ) | `[inline]`

Get the vehicle at offset n of this vehicle chain.

Parameters:

  | n | Offset from the current vehicle.

Returns:
  The new vehicle or NULL if the offset is out-of-bounds.

Definition at line 527 of file vehicle_base.h.

References Next(), and Previous().

Referenced by VehicleResolverObject::GetScope().

const Vehicle* Vehicle::Move | ( | int | n | ) | const`[inline]`

Get the vehicle at offset n of this vehicle chain.

Parameters:

  | n | Offset from the current vehicle.

Returns:
  The new vehicle or NULL if the offset is out-of-bounds.

Definition at line 543 of file vehicle_base.h.

References Next(), and Previous().

bool Vehicle::NeedsAutomaticServicing | ( |  | ) | const

Checks if the current order should be interrupted for a service-in-depot order.

See also:
  NeedsServicing()

Returns:
  true if the current order should be interrupted.

Definition at line 174 of file vehicle.cpp.

References current_order, Order::GetDepotOrderType(), HasDepotOrder(), Order::IsType(), and NeedsServicing().

Referenced by CheckIfTrainNeedsService().

bool Vehicle::NeedsAutorenewing | ( | const Company * | c,
|  | bool | use_renew_setting = `true` |
| ) |  |  | const

Function to tell if a vehicle needs to be autorenewed.

Parameters:

  | *c | The vehicle owner
  | use_renew_setting | Should the company renew setting be considered?

Returns:
  true if the vehicle is old enough for replacement

Definition at line 73 of file vehicle.cpp.

References SpecializedVehicle< Train, Type >::From(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), and VEH_TRAIN.

Referenced by GetNewEngineType(), and NeedsServicing().

bool Vehicle::NeedsServicing | ( |  | ) | const

Check if the vehicle needs to go to a depot in near future (if a opportunity presents itself) for service or replacement.

See also:
  NeedsAutomaticServicing()

Returns:
  true if the vehicle should go to a depot if a opportunity presents itself.

Definition at line 106 of file vehicle.cpp.

References _date, _settings_game, cargo_type, CT_INVALID, date_of_last_service, GameSettings::difficulty, CompanySettings::engine_renew_money, engine_type, EngineReplacementForCompany(), SpecializedVehicle< Train, Type >::From(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Get(), GetArticulatedRefitMasks(), GetEngine(), Train::GetNextUnit(), group_id, HasBit(), INVALID_ENGINE, IsArticulatedVehicleCarryingDifferentCargoes(), CompanyProperties::money, NeedsAutorenewing(), OrderSettings::no_servicing_if_no_breakdowns, GameSettings::order, owner, reliability, Company::settings, BaseVehicle::type, DifficultySettings::vehicle_breakdowns, vehstatus, VS_CRASHED, and VS_STOPPED.

Referenced by NeedsAutomaticServicing(), ProcessConditionalOrder(), VehicleOrderSaver::SwitchToNextOrder(), and UpdateOrderDest().

Vehicle* Vehicle::Next | ( |  | ) | const`[inline]`

Get the next vehicle of this vehicle.

Note:
  articulated parts are also counted as vehicles.

Returns:
  the next vehicle or NULL when there isn't a next vehicle.

Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, and SpecializedVehicle< RoadVehicle, Type >.

Definition at line 485 of file vehicle_base.h.

References next.

Referenced by AfterLoadVehicles(), AircraftLeaveHangar(), RefitWindow::BuildRefitList(), CalcPercentVehicleFilled(), CheckCaches(), CheckCargoCapacity(), CmdCloneVehicle(), CmdReverseTrainDirection(), CmdSellRailWagon(), Crash(), DrawRoadVehDetails(), GetNewCargoTypeForReplace(), GetNextArticulatedPart(), GetNextVehicle(), HandleCrashedTrain(), HasArticulatedPart(), IsVehicleRefitable(), Last(), LoadUnloadVehicle(), Move(), DepotWindow::OnRightClick(), PositionHelper(), PrepareUnload(), RefitVehicle(), RemoveFromRailBaseStation(), SetNext(), ShowVisualEffect(), TransferCargo(), OrdersWindow::UpdateAutoRefitState(), VehicleCargoSorter(), VehicleValueSorter(), WhoCanServiceIndustry(), and ~Vehicle().

Vehicle* Vehicle::NextShared | ( |  | ) | const`[inline]`

Get the next vehicle of the shared vehicle chain.

Returns:
  the next shared vehicle or NULL when there isn't a next vehicle.

Definition at line 567 of file vehicle_base.h.

References next_shared.

Referenced by AfterLoadVehicles(), ChangeTimetable(), OrderBackup::ClearVehicle(), CmdAddSharedVehicleGroup(), CmdAddVehicleGroup(), CmdAutofillTimetable(), CmdInsertOrder(), CmdModifyOrder(), CmdMoveOrder(), CmdOrderRefit(), OrderList::DebugCheckSanity(), DeleteOrder(), GenerateVehicleSortList(), OrderList::Initialize(), InsertOrder(), OrderList::IsVehicleInSharedOrdersList(), OrderBackup::OrderBackup(), OrdersWindow::OrderClick_StopSharing(), RemoveFromShared(), RemoveOrderFromAllVehicles(), OrderList::RemoveVehicle(), and UpdateVehicleTimetable().

Vehicle* Vehicle::Previous | ( |  | ) | const`[inline]`

Get the previous vehicle of this vehicle.

Note:
  articulated parts are also counted as vehicles.

Returns:
  the previous vehicle or NULL when there isn't a previous vehicle.

Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, and SpecializedVehicle< RoadVehicle, Type >.

Definition at line 492 of file vehicle_base.h.

References previous.

Referenced by AfterLoadVehicles(), AgeVehicle(), ChangeOwnershipOfCompanyItems(), Crash(), GetFirstEnginePart(), GetPrevVehicle(), LoadUnloadVehicle(), Move(), DepotWindow::OnMouseDrag(), and PreDestructor().

Vehicle* Vehicle::PreviousShared | ( |  | ) | const`[inline]`

Get the previous vehicle of the shared vehicle chain.

Returns:
  the previous shared vehicle or NULL when there isn't a previous vehicle.

Definition at line 573 of file vehicle_base.h.

References previous_shared.

Referenced by AfterLoadVehicles(), OrderList::GetPositionInSharedOrderList(), OrderList::Initialize(), and OrdersWindow::OrderClick_StopSharing().

CommandCost Vehicle::SendToDepot | ( | DoCommandFlag | flags,
|  | DepotCommand | command |
| ) |  |  |

Send this vehicle to the depot using the given command(s).

Parameters:

  | flags | the command flags (like execute and such).
  | command | the command to execute.

Returns:
  the cost of the depot action.

Definition at line 2056 of file vehicle.cpp.

References AircraftNextAirportPos_and_Order(), CheckOwnership(), CMD_ERROR, CMD_REVERSE_TRAIN_DIRECTION, current_order, DC_EXEC, DEPOT_DONT_CANCEL, DEPOT_SERVICE, dest_tile, DoCommand(), CommandCost::Failed(), FindClosestDepot(), FLYING, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::From(), Order::GetDepotActionType(), Order::GetDepotOrderType(), GetGroundVehicleFlags(), GVF_SUPPRESS_IMPLICIT_ORDERS, IncrementRealOrderIndex(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::index, IsGroundVehicle(), IsStoppedInDepot(), Order::IsType(), LeaveStation(), Order::MakeDummy(), Order::MakeGoToDepot(), ODATF_SERVICE_ONLY, ODATFB_HALT, ODTF_MANUAL, owner, return_cmd_error, SetBit(), Order::SetDepotActionType(), Order::SetDepotOrderType(), SetWindowWidgetDirty(), Aircraft::state, Aircraft::targetairport, tile, BaseVehicle::type, VEH_AIRCRAFT, VEH_TRAIN, vehstatus, VS_CRASHED, WC_VEHICLE_VIEW, and WID_VV_START_STOP.

Referenced by CmdSendVehicleToDepot().

void Vehicle::SetNext | ( | Vehicle * | next | ) |

Set the next vehicle of this vehicle.

Parameters:

  | next | the next vehicle. NULL removes the next vehicle.

Definition at line 2337 of file vehicle.cpp.

References first, next, Next(), and previous.

Referenced by AddArticulatedParts(), CheckTrainAttachment(), CmdBuildAircraft(), DeleteLastRoadVeh(), DeleteLastWagon(), Disaster_Helicopter_Init(), Disaster_Small_Ufo_Init(), Disaster_Zeppeliner_Init(), DisasterTick_Big_Ufo(), InsertInConsist(), RemoveFromConsist(), RestoreTrainBackup(), and ~Vehicle().

void Vehicle::ShowVisualEffect | ( |  | ) | const

Draw visual effects (smoke and/or sparks) for a vehicle chain.

Precondition:
  this->IsPrimaryVehicle()

Definition at line 2203 of file vehicle.cpp.

References _settings_game, VehicleCache::cached_max_speed, GroundVehicleCache::cached_max_track_speed, GroundVehicleCache::cached_power, GroundVehicleCache::cached_veh_length, VehicleCache::cached_vis_effect, GroundVehicleCache::cached_weight, Chance16(), CreateEffectVehicleRel(), cur_speed, current_order, direction, EV_DIESEL_SMOKE, EV_ELECTRIC_SPARK, EV_STEAM_SMOKE, SpecializedVehicle< Train, Type >::From(), GB(), GroundVehicle< T, Type >::gcache, GetStationIndex(), GetTileRailType(), HasBit(), HasPowerOnRail(), IsBridgeAbove(), IsDepotTile(), IsFrontEngine(), IsPrimaryVehicle(), IsRailStationTile(), IsTunnelTile(), Order::max_speed, MayHaveBridgeAbove(), min(), Next(), PlayVehicleSound(), Order::ShouldStopAtStation(), VehicleSettings::smoke_amount, tick_counter, tile, BaseVehicle::type, vcache, VE_DISABLE_EFFECT, VE_OFFSET_COUNT, VE_OFFSET_START, VE_TYPE_COUNT, VE_TYPE_DIESEL, VE_TYPE_ELECTRIC, VE_TYPE_START, VE_TYPE_STEAM, VEH_ROAD, VEH_SHIP, VEH_TRAIN, GameSettings::vehicle, VEHICLE_LENGTH, vehstatus, VS_HIDDEN, VS_STOPPED, VS_TRAIN_SLOWING, and VSE_VISUAL_EFFECT.

void Vehicle::SkipToNextRealOrderIndex | ( |  | ) | `[inline, private]`

Advance cur_real_order_index to the next real order.

cur_implicit_order_index is not touched.

Definition at line 667 of file vehicle_base.h.

References BaseConsist::cur_real_order_index, GetNumManualOrders(), GetNumOrders(), and GetOrder().

Referenced by IncrementImplicitOrderIndex(), and IncrementRealOrderIndex().

virtual bool Vehicle::Tick | ( |  | ) | `[inline, virtual]`

Calls the tick handler of the vehicle.

Returns:
  is this vehicle still valid?

Reimplemented in Aircraft, EffectVehicle, RoadVehicle, Ship, Train, and DisasterVehicle.

Definition at line 432 of file vehicle_base.h.

virtual void Vehicle::UpdateDeltaXY | ( | Direction | direction | ) | `[inline, virtual]`

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

Parameters:

  | direction | the direction the vehicle is facing

Reimplemented in Aircraft, EffectVehicle, RoadVehicle, Ship, Train, and DisasterVehicle.

Definition at line 274 of file vehicle_base.h.

Referenced by AfterLoadVehicles().

void Vehicle::UpdateVisualEffect | ( | bool | allow_power_change = `true` | ) |

Update the cached visual effect.

Parameters:

  | allow_power_change | true if the wagon-is-powered-state may change.

Definition at line 2135 of file vehicle.cpp.

References VehicleCache::cached_vis_effect, CALLBACK_FAILED, EngineInfo::callback_mask, CBID_VEHICLE_VISUAL_EFFECT, CBM_VEHICLE_VISUAL_EFFECT, EC_MONORAIL, EC_STEAM, RailVehicleInfo::engclass, ErrorUnknownCallbackResult(), GB(), GBUG_VEH_POWERED_WAGON, GetEngine(), Engine::GetGRF(), Engine::GetGRFID(), GetVehicleCallback(), HasBit(), IsInsideMM(), RAILVEH_WAGON, SB(), SetBit(), ShowNewGrfVehicleError(), ToggleBit(), Engine::type, vcache, VE_DEFAULT, VE_DISABLE_EFFECT, VE_DISABLE_WAGON_POWER, VE_OFFSET_CENTRE, VE_TYPE_COUNT, VE_TYPE_DEFAULT, VE_TYPE_START, VE_TYPE_STEAM, VEH_ROAD, VEH_SHIP, VEH_TRAIN, ShipVehicleInfo::visual_effect, RoadVehicleInfo::visual_effect, and RailVehicleInfo::visual_effect.

Referenced by RoadVehUpdateCache(), and Ship::UpdateCache().

## Friends And Related Function Documentation

void AfterLoadVehicles | ( | bool | part_of_load | ) | `[friend]`

So we can set the previous and first pointers while loading.

For instantiating the shared vehicle chain.

Definition at line 245 of file vehicle_sl.cpp.

void FixOldVehicles | ( |  | ) | `[friend]`

Convert the old style vehicles into something that resembles the old new style savegames.

Then AfterLoadGame can handle the rest of the conversion.

Definition at line 171 of file oldloader_sl.cpp.

const SaveLoad* GetVehicleDescription | ( | VehicleType | vt | ) | `[friend]`

So we can use private/protected variables in the saveload code.

Saving and loading the current order of vehicles.

The vehicles have a cargo list (and we want that saved).

Parameters:

  | vt | the vehicle type. Can be VEH_END for the common vehicle description data

Returns:
  the saveload description

Parameters:

  | vt | the vehicle type. Can be VEH_END for the common vehicle description data

Returns:
  the saveload description

Save and load of vehicles

Save and load of vehicles

Definition at line 568 of file vehicle_sl.cpp.

bool LoadOldVehicle | ( | LoadgameState * | ls,
|  | int | num |
| ) |  |  | `[friend]`

So we can set the proper next pointer while loading.

Parameters:

  | ls | State (buffer) of the currently loaded game.
  | num | The number of vehicles to load.

Returns:
  True iff loading went without problems.

Definition at line 1229 of file oldloader_sl.cpp.

## Field Documentation

byte Vehicle::breakdown_ctr

Counter for managing breakdown events.

See also:
  Vehicle::HandleBreakdown

Definition at line 174 of file vehicle_base.h.

Referenced by CmdReverseTrainDirection(), CmdTurnRoadVeh(), DisasterTick_Big_Ufo(), DisasterTick_Ufo(), VehicleViewWindow::DrawWidget(), HandleBreakdown(), and TrainCheckIfLineEnds().

TileIndex Vehicle::dest_tile

Heading for this tile.

For airports and train stations this tile does not necessarily belong to the destination station, but it can be used for heuristic purposes to estimate the distance.

Definition at line 148 of file vehicle_base.h.

Referenced by AfterLoadGame(), CheckIfTrainNeedsService(), CheckNextTrainTile(), CheckTrainStayInDepot(), CopyVehicleConfigAndStatistics(), Disaster_Small_Ufo_Init(), DisasterTick_Aircraft(), DisasterTick_Big_Ufo(), DisasterTick_Ufo(), Train::OnNewDay(), ProcessOrders(), ReleaseDisastersTargetingIndustry(), ReleaseDisastersTargetingVehicle(), RemoveDock(), RemoveRoadStop(), RoadFindPathToDest(), SendToDepot(), UpdateOrderDest(), and VehicleEnterDepot().

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

- src/vehicle_base.h
- src/order_cmd.cpp
- src/vehicle.cpp