OpenTTD Source: Vehicle Struct Reference

OpenTTD Source 15.0-RC2

Public Member Functions | Static Public Member Functions | Data Fields | Private Types | Private Member Functions | Private Attributes | Friends
Vehicle Struct Reference

Vehicle data structure. More...

`#include <vehicle_base.h>`

Inheritance diagram for Vehicle:

## Public Member Functions
virtual uint16_t | GetMaxWeight () const
| Calculates the weight value that this vehicle will have when fully loaded with its current cargo.
| 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.
GroundVehicleCache * | GetGroundVehicleCache ()
| Access the ground vehicle cache of the vehicle.
const GroundVehicleCache * | GetGroundVehicleCache () const
| Access the ground vehicle cache of the vehicle.
uint16_t & | GetGroundVehicleFlags ()
| Access the ground vehicle flags of the vehicle.
const uint16_t & | 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 ()
| 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 (bool force=false) 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 void | GetImage (Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const
| Gets the sprite to show for the given direction.
const GRFFile * | GetGRF () const
| Retrieve the NewGRF the vehicle is tied to.
uint32_t | 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 string parameters for string processing.
virtual int | GetDisplayMaxSpeed () const
| Gets the maximum speed in km-ish/h that can be sent into string parameters 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 | OnNewCalendarDay ()
| Calls the new calendar day handler of the vehicle.
virtual void | OnNewEconomyDay ()
| Calls the new economy day handler of the vehicle.
void | ShiftDates (TimerGameEconomy::Date interval)
| Shift all dates by given interval.
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 string parameters 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.
const Order * | GetFirstOrder () const
| Get the first order of the vehicles order list.
std::span< const Order > | Orders () const
std::span< Order > | Orders ()
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 | GetNextStoppingStation (std::vector< StationID > &next_station) const
| Get the next station the vehicle will stop at.
void | ResetRefitCaps ()
| Reset all refit_cap in the consist to cargo_cap.
void | ReleaseUnitNumber ()
| Release the vehicle's unit number.
void | CopyVehicleConfigAndStatistics (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 reset 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 TileIndex | GetCargoTile () const
virtual ClosestDepot | FindClosestDepot ()
| Find the closest depot for this vehicle and tell us the location, DestinationID and whether we should reverse.
virtual void | SetDestTile (TileIndex tile)
CommandCost | SendToDepot (DoCommandFlags flags, DepotCommandFlags 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 | UpdateBoundingBoxCoordinates (bool update_cache) const
| Update the bounding box co-ordinates of the vehicle.
void | UpdatePositionAndViewport ()
| Update the position of the vehicle, and update the viewport.
bool | MarkAllViewportsDirty () const
| Marks viewports dirty where the vehicle's image is.
uint16_t | GetServiceInterval () const
void | SetServiceInterval (uint16_t interval)
bool | ServiceIntervalIsCustom () const
bool | ServiceIntervalIsPercent () const
void | SetServiceIntervalIsCustom (bool on)
void | SetServiceIntervalIsPercent (bool on)
bool | HasFullLoadOrder () const
| Check if the current vehicle has a full load order.
bool | HasConditionalOrder () const
| Check if the current vehicle has a conditional order.
bool | HasUnbunchingOrder () const
| Check if the current vehicle has an unbunching order.
void | LeaveUnbunchingDepot ()
| Leave an unbunching depot and calculate the next departure time for shared order vehicles.
bool | IsWaitingForUnbunching () const
| Check whether a vehicle inside a depot is waiting for unbunching.
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 nullptr when it doesn't exists.
const Order * | GetLastOrder () const
| Returns the last order of a vehicle, or nullptr 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.
uint32_t | GetDisplayMaxWeight () const
| Calculates the maximum weight of the ground vehicle when loaded.
uint32_t | GetDisplayMinPowerToWeight () const
| Calculates the minimum power-to-weight ratio using the maximum weight of the ground vehicle.
Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >
void * | operator new (size_t size)
| Allocates space for new Titem.
void * | operator new (size_t size, Tindex index)
| Allocates space for new Titem with given index.
void * | operator new (size_t, void *ptr)
| Allocates space for new Titem at given memory address.
void | operator delete (void *p, size_t size)
| Marks Titem as free.
Public Member Functions inherited from BaseConsist
void | CopyConsistPropertiesFrom (const BaseConsist *src)
| Copy properties of other BaseConsist.
void | ResetDepotUnbunching ()
| Resets all the data used for depot unbunching.

## Static Public Member Functions
static uint | GetAdvanceSpeed (uint speed)
| Determines the effective vehicle movement speed.
Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >
static bool | CanAllocateItem (size_t n=1)
| Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function()
static bool | CleaningPool ()
| Returns current state of pool cleaning - yes or no.
static bool | IsValidID (auto index)
| Tests whether given index can be used to get valid (non-nullptr) Titem.
static Titem * | Get (auto index)
| Returns Titem with given index.
static Titem * | GetIfValid (auto index)
| Returns Titem with given index.
static size_t | GetPoolSize ()
| Returns first unused index.
static size_t | GetNumItems ()
| Returns number of valid items in the pool.
static void | PostDestructor (size_t index)
| Dummy function called after destructor of each member.
static Pool::IterateWrapper< Titem > | Iterate (size_t from=0)
| Returns an iterable ensemble of all valid Titem.

## Data Fields
TileIndex | tile = INVALID_TILE
| Current tile index.
TileIndex | dest_tile = INVALID_TILE
| Heading for this tile.
Money | profit_this_year = 0
| Profit this year << 8, low 8 bits are fract.
Money | profit_last_year = 0
| Profit last year << 8, low 8 bits are fract.
Money | value = 0
| Value of the vehicle.
CargoPayment * | cargo_payment = nullptr
| 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 = nullptr
| NOSAVE: Next vehicle in the visual location hash.
Vehicle ** | hash_viewport_prev = nullptr
| NOSAVE: Previous vehicle in the visual location hash.
Vehicle * | hash_tile_next = nullptr
| NOSAVE: Next vehicle in the tile location hash.
Vehicle ** | hash_tile_prev = nullptr
| NOSAVE: Previous vehicle in the tile location hash.
Vehicle ** | hash_tile_current = nullptr
| NOSAVE: Cache of the current hash chain.
SpriteID | colourmap {}
| NOSAVE: cached colour mapping.
TimerGameCalendar::Year | build_year {}
| Year the vehicle has been built.
TimerGameCalendar::Date | age {}
| Age in calendar days.
TimerGameEconomy::Date | economy_age {}
| Age in economy days.
TimerGameCalendar::Date | max_age {}
| Maximum age.
TimerGameEconomy::Date | date_of_last_service {}
| Last economy date the vehicle had a service at a depot.
TimerGameCalendar::Date | date_of_last_service_newgrf {}
| Last calendar date the vehicle had a service at a depot, unchanged by the date cheat to protect against unsafe NewGRF behavior.
uint16_t | reliability = 0
| Reliability.
uint16_t | reliability_spd_dec = 0
| Reliability decrease speed.
uint8_t | breakdown_ctr = 0
| Counter for managing breakdown events.
uint8_t | breakdown_delay = 0
| Counter for managing breakdown length.
uint8_t | breakdowns_since_last_service = 0
| Counter for the amount of breakdowns.
uint8_t | breakdown_chance = 0
| Current chance of breakdowns.
int32_t | x_pos = 0
| x coordinate.
int32_t | y_pos = 0
| y coordinate.
int32_t | z_pos = 0
| z coordinate.
Direction | direction = INVALID_DIR
| facing
Owner | owner = INVALID_OWNER
| Which company owns the vehicle?
uint8_t | spritenum = 0
| currently displayed sprite index 0xfd == custom sprite, 0xfe == custom second head sprite 0xff == reserved for another custom sprite
SpriteBounds | bounds {}
| Bounding box of vehicle.
EngineID | engine_type = EngineID::Invalid()
| The type of engine used for this vehicle.
TextEffectID | fill_percent_te_id = INVALID_TE_ID
| a text-effect id to a loading indicator object
UnitID | unitnumber {}
| unit number, for display purposes only
uint16_t | cur_speed = 0
| current speed
uint8_t | subspeed = 0
| fractional speed
uint8_t | acceleration = 0
| used by train & aircraft
uint32_t | motion_counter = 0
| counter to occasionally play a vehicle sound.
uint8_t | progress = 0
| The percentage (if divided by 256) this vehicle already crossed the tile unit.
VehicleRandomTriggers | waiting_random_triggers
| Triggers to be yet matched before rerandomizing the random bits.
uint16_t | random_bits = 0
| Bits used for randomized variational spritegroups.
StationID | last_station_visited = StationID::Invalid()
| The last station we stopped at.
StationID | last_loading_station = StationID::Invalid()
| Last station the vehicle has stopped at and could possibly leave from with any cargo loaded.
TimerGameTick::TickCounter | last_loading_tick {}
| Last TimerGameTick::counter tick that the vehicle has stopped at a station and could possibly leave with any cargo loaded.
VehicleCargoList | cargo {}
| The cargo this vehicle is carrying.
CargoType | cargo_type {}
| type of cargo this vehicle is carrying
uint8_t | cargo_subtype = 0
| Used for livery refits (NewGRF variations)
uint16_t | cargo_cap = 0
| total capacity
uint16_t | refit_cap = 0
| Capacity left over from before last refit.
uint16_t | cargo_age_counter = 0
| Ticks till cargo is aged next.
int8_t | trip_occupancy = 0
| NOSAVE: Occupancy of vehicle of the current trip (updated after leaving a station).
uint8_t | day_counter = 0
| Increased by one for each day.
uint8_t | tick_counter = 0
| Increased by one for each tick.
uint8_t | running_ticks = 0
| Number of ticks this vehicle was not stopped this day.
uint16_t | load_unload_ticks = 0
| Ticks to wait before starting next cycle.
VehStates | vehstatus {}
| Status.
uint8_t | subtype = 0
| subtype (Filled with values from AircraftSubType/DisasterSubType/EffectVehicleType/GroundVehicleSubtypeFlags)
Order | current_order {}
| The current order (+ status, like: loading)
union { |
OrderList * orders = nullptr |
| Pointer to the order list for this vehicle. More...
uint32_t old_orders |
| Only used during conversion of old save games. More...
}; |  |
NewGRFCache | grf_cache {}
| Cache of often used calculated NewGRF values.
VehicleCache | vcache {}
| Cache of often used vehicle values.
GroupID | group_id = GroupID::Invalid()
| Index of group Pool array.
MutableSpriteCache | sprite_cache {}
| Cache of sprites and values related to recalculating them, see MutableSpriteCache.
Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >
Tindex | index
| Index of this pool item.
Data Fields inherited from BaseVehicle
VehicleType | type = VEH_INVALID
| Type of vehicle.
Data Fields inherited from BaseConsist
std::string | name {}
| Name of vehicle.
TimerGameTick::Ticks | current_order_time {}
| How many ticks have passed since this order started.
TimerGameTick::Ticks | lateness_counter {}
| How many ticks late (or early if negative) this vehicle is.
TimerGameTick::TickCounter | timetable_start {}
| At what tick of TimerGameTick::counter the vehicle should start its timetable.
TimerGameTick::TickCounter | depot_unbunching_last_departure {}
| When the vehicle last left its unbunching depot.
TimerGameTick::TickCounter | depot_unbunching_next_departure {}
| When the vehicle will next try to leave its unbunching depot.
TimerGameTick::Ticks | round_trip_time
| How many ticks for a single circumnavigation of the orders.
uint16_t | service_interval = 0
| The interval for (automatic) servicing; either in days or %.
VehicleOrderID | cur_real_order_index = 0
| The index to the current real (non-implicit) order.
VehicleOrderID | cur_implicit_order_index = 0
| The index to the current implicit order.
VehicleFlags | vehicle_flags {}
| Used for gradual loading and other miscellaneous things (.

## Private Types
typedef std::list< RefitDesc > | RefitList

## Private Member Functions
void | SkipToNextRealOrderIndex ()
| Advance cur_real_order_index to the next real order.

## Private Attributes
Vehicle * | next = nullptr
| pointer to the next vehicle in the chain
Vehicle * | previous = nullptr
| NOSAVE: pointer to the previous vehicle in the chain.
Vehicle * | first = nullptr
| NOSAVE: pointer to the first vehicle in the chain.
Vehicle * | next_shared = nullptr
| pointer to the next vehicle that shares the order
Vehicle * | previous_shared = nullptr
| NOSAVE: pointer to the previous vehicle in the shared order chain.

## Friends
class | SlVehicleCommon
class | SlVehicleDisaster
void | FixOldVehicles (LoadgameState &ls)
| Convert the old style vehicles into something that resembles the old new style savegames.
void | AfterLoadVehiclesPhase1 (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.
void | Ptrs_VEHS ()

## Additional Inherited Members
Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >
typedef struct Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache > | Pool
| Type of the pool this item is going to be part of.

## Detailed Description

Vehicle data structure.

Definition at line 205 of file vehicle_base.h.

## Member Typedef Documentation

## ◆ RefitList

typedef std::list<RefitDesc> Vehicle::RefitList
| private

Definition at line 207 of file vehicle_base.h.

## Constructor & Destructor Documentation

## ◆ Vehicle()

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

Vehicle constructor.

Parameters

  type | Type of the new vehicle.

Definition at line 369 of file vehicle.cpp.

References cargo_age_counter, colourmap, coord, DEFAULT_GROUP, fill_percent_te_id, first, group_id, INVALID_COORD, last_loading_station, last_station_visited, MutableSpriteCache::old_coord, sprite_cache, and BaseVehicle::type.

## ◆ ~Vehicle()

Vehicle::~Vehicle | ( |  | ) |
| virtual

We want to 'destruct' the right class.

Definition at line 863 of file vehicle.cpp.

References DeleteNewGRFInspectWindow(), DeleteVehicleNews(), GetGrfSpecFeature(), Hidden, INVALID_COORD, MarkAllViewportsDirty(), and VEH_EFFECT.

## Member Function Documentation

## ◆ AddToShared()

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 2956 of file vehicle.cpp.

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

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

## ◆ BeginLoading()

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 2183 of file vehicle.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_orderlist_pool >::CanAllocateItem(), ClrBit(), TimerGameTick::counter, DeleteOrder(), SpecializedStation< Station, false >::Get(), Order::GetDestination(), GetWindowClassForVehicleType(), GVF_SUPPRESS_IMPLICIT_ORDERS, HasBit(), IMPLICIT_ORDER_ONLY_CAP, IncreaseStats(), InsertOrder(), InvalidateVehicleOrder(), IsTileType(), Order::IsType(), Order::MakeImplicit(), Station::MarkTilesDirty(), MAX_VEH_ORDER_ID, MP_STATION, NoDestination, NoIntermediate, NoLoad, NoUnload, PrepareUnload(), SetWindowDirty(), SetWindowWidgetDirty(), UpdateVehicleTimetable(), VEH_SHIP, WC_STATION_VIEW, WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW, and WID_VV_START_STOP.

Referenced by AircraftEntersTerminal(), and TrainEnterStation().

## ◆ CancelReservation()

void Vehicle::CancelReservation | ( | StationID | next,
|  | Station * | st
| ) |  |

Return all reserved cargo packets to the station and reset all packets staged for transfer.

Parameters

  st | the station where the reserved packets should go.

Definition at line 2311 of file vehicle.cpp.

References VehicleCargoList::ActionCount(), cargo, cargo_type, Debug, Station::goods, VehicleCargoList::KeepAll(), CargoList< VehicleCargoList, CargoPacketList >::MTA_LOAD, next, VehicleCargoList::Return(), and tile.

## ◆ CopyVehicleConfigAndStatistics()

void Vehicle::CopyVehicleConfigAndStatistics | ( | 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 reset for the new vehicle.

Parameters

  src | The old vehicle

Definition at line 733 of file vehicle_base.h.

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

Referenced by CmdMoveRailVehicle(), CmdSellRailWagon(), and CopyHeadSpecificThings().

## ◆ Crash()

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 GroundVehicle< T, Type >, GroundVehicle< RoadVehicle, VEH_ROAD >, GroundVehicle< Train, VEH_TRAIN >, Aircraft, RoadVehicle, and Train.

Definition at line 291 of file vehicle.cpp.

References cargo_payment, Crashed, GetWindowClassForVehicleType(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >::index, InvalidateWindowClassesData(), IsCargoInClass(), IsPrimaryVehicle(), Next(), Passengers, Previous(), RandomRange(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set(), SetWindowDirty(), SetWindowWidgetDirty(), Stopped, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), tile, BaseVehicle::type, vehstatus, WC_VEHICLE_DEPOT, WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW, and WID_VV_START_STOP.

Referenced by GroundVehicle< T, Type >::Crash(), Aircraft::Crash(), and FloodVehicle().

## ◆ DeleteUnreachedImplicitOrders()

void Vehicle::DeleteUnreachedImplicitOrders | ( |  | ) |

Delete all implicit orders which were not reached.

Definition at line 2145 of file vehicle.cpp.

References ClrBit(), DeleteOrder(), GVF_SUPPRESS_IMPLICIT_ORDERS, HasBit(), INVALID_VEH_ORDER_ID, and InvalidateVehicleOrder().

Referenced by ProcessOrders(), and VehicleEnterDepot().

## ◆ FindClosestDepot()

virtual ClosestDepot Vehicle::FindClosestDepot | ( |  | ) |
| inlinevirtual

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

Returns
  A structure with information about the closest depot, if found.

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 773 of file vehicle_base.h.

Referenced by UpdateOrderDest().

## ◆ First()

Vehicle * Vehicle::First | ( |  | ) | const
| inline

Get the first vehicle of this vehicle chain.

Returns
  the first vehicle of the chain.

Definition at line 600 of file vehicle_base.h.

References first.

Referenced by RefitWindow::BuildRefitList(), CheckCargoCapacity(), CmdRefitVehicle(), CmdSellVehicle(), NewGRFInspectWindow::DrawVehicleChainWidget(), SpecializedVehicle< T, Type >::First(), FirstShared(), FloodVehicleProc(), GetEngineLivery(), GetEngineLiveryScheme(), GetIncompatibleRefitOrderIdForAutoreplace(), GetNewCargoTypeForReplace(), NIHVehicle::GetParent(), VehicleResolverObject::GetScope(), HandleStationRefit(), IsStoppedInDepot(), PositionHelper(), RefitVehicle(), ReplaceChain(), VehicleResolverObject::ResolveReal(), RunEconomyVehicleDayProc(), VehicleClicked(), VehicleEnterDepot(), and VerifyAutoreplaceRefitForOrders().

## ◆ FirstShared()

Vehicle * Vehicle::FirstShared | ( |  | ) | const
| inline

Get the first vehicle of this vehicle chain.

Returns
  the first vehicle of the chain.

Definition at line 693 of file vehicle_base.h.

References First(), OrderList::GetFirstSharedVehicle(), and orders.

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

## ◆ GetAdvanceDistance()

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 412 of file vehicle_base.h.

Referenced by ShipAccelerate().

## ◆ GetAdvanceSpeed()

static uint Vehicle::GetAdvanceSpeed | ( | uint | speed | ) |
| inlinestatic

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 400 of file vehicle_base.h.

Referenced by GroundVehicle< T, Type >::DoUpdateSpeed(), and ShipAccelerate().

## ◆ GetCargoTile()

virtual TileIndex Vehicle::GetCargoTile | ( |  | ) | const
| inlinevirtual

Definition at line 766 of file vehicle_base.h.

## ◆ GetCurrentMaxSpeed()

virtual int Vehicle::GetCurrentMaxSpeed | ( |  | ) | const
| inlinevirtual

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 491 of file vehicle_base.h.

## ◆ GetDisplayMaxSpeed()

virtual int Vehicle::GetDisplayMaxSpeed | ( |  | ) | const
| inlinevirtual

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

Returns
  the vehicle's maximum speed

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 485 of file vehicle_base.h.

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

## ◆ GetDisplayMaxWeight()

uint32_t Vehicle::GetDisplayMaxWeight | ( |  | ) | const

Calculates the maximum weight of the ground vehicle when loaded.

Returns
  Weight in tonnes

Definition at line 3232 of file vehicle.cpp.

References Next().

## ◆ GetDisplayMinPowerToWeight()

uint32_t Vehicle::GetDisplayMinPowerToWeight | ( |  | ) | const

Calculates the minimum power-to-weight ratio using the maximum weight of the ground vehicle.

Returns
  power-to-weight ratio in 10ths of hp(I) per tonne

Definition at line 3247 of file vehicle.cpp.

Referenced by VehicleDetailsWindow::DrawWidget().

## ◆ GetDisplayProfitLastYear()

Money Vehicle::GetDisplayProfitLastYear | ( |  | ) | const
| inline

Gets the profit vehicle had last year.

It can be sent into string parameters for string processing.

Returns
  the vehicle's profit last year

Definition at line 578 of file vehicle_base.h.

Referenced by GroupStatistics::AddProfitLastYear(), GroupStatistics::CountVehicle(), VehicleDetailsWindow::DrawWidget(), VehicleProfitLastYearSorter(), and GroupStatistics::VehicleReachedMinAge().

## ◆ GetDisplayProfitThisYear()

Money Vehicle::GetDisplayProfitThisYear | ( |  | ) | const
| inline

Gets the profit vehicle had this year.

It can be sent into string parameters for string processing.

Returns
  the vehicle's profit this year

Definition at line 572 of file vehicle_base.h.

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

## ◆ GetDisplayRunningCost()

Money Vehicle::GetDisplayRunningCost | ( |  | ) | const
| inline

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

Returns
  the vehicle's running cost

Definition at line 566 of file vehicle_base.h.

References GetRunningCost().

Referenced by VehicleDetailsWindow::DrawWidget().

## ◆ GetDisplaySpeed()

virtual int Vehicle::GetDisplaySpeed | ( |  | ) | const
| inlinevirtual

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

Returns
  the vehicle's speed

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 479 of file vehicle_base.h.

## ◆ GetEngine()

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

Retrieves the engine of the vehicle.

Returns
  Engine of the vehicle.

Precondition
  HasEngineType() == true

Definition at line 718 of file vehicle.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_engine_pool >::Get().

Referenced by AgeVehicle(), AircraftEventHandler_AtTerminal(), RefitWindow::BuildRefitList(), CheckConsistencyOfArticulatedVehicle(), CmdCloneVehicle(), VehicleDetailsWindow::DrawWidget(), GetBestFittingSubType(), GetCargoSummaryOfArticulatedVehicle(), GetCargoTypesOfArticulatedVehicle(), Train::GetDisplayImageWidth(), Aircraft::GetImage(), RoadVehicle::GetImage(), Ship::GetImage(), Train::GetImage(), GetLoadAmount(), RoadVehicle::GetMaxWeight(), Train::GetMaxWeight(), GetNewCargoTypeForReplace(), GetRoadVehLength(), Aircraft::GetRunningCost(), RoadVehicle::GetRunningCost(), Ship::GetRunningCost(), Train::GetRunningCost(), GetVehicleCannotUseStationReason(), HandleStationRefit(), NeedsServicing(), ProcessConditionalOrder(), RefitVehicle(), VehicleLengthChanged(), VehicleServiceInDepot(), and VehiclesHaveSameEngineList().

## ◆ GetExpenseType()

virtual ExpensesType Vehicle::GetExpenseType | ( | bool | income | ) | const
| inlinevirtual

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 421 of file vehicle_base.h.

References EXPENSES_OTHER.

Referenced by RefitVehicle().

## ◆ GetFirstEnginePart() [1/2]

Vehicle * Vehicle::GetFirstEnginePart | ( |  | ) |
| inline

Get the first part of an articulated engine.

Returns
  First part of the engine.

Definition at line 951 of file vehicle_base.h.

References IsArticulatedPart(), and Previous().

Referenced by GetBestFittingSubType(), SpecializedVehicle< T, Type >::GetFirstEnginePart(), SpecializedVehicle< T, Type >::GetFirstEnginePart(), and HandleStationRefit().

## ◆ GetFirstEnginePart() [2/2]

const Vehicle * Vehicle::GetFirstEnginePart | ( |  | ) | const
| inline

Get the first part of an articulated engine.

Returns
  First part of the engine.

Definition at line 962 of file vehicle_base.h.

References IsArticulatedPart(), and Previous().

## ◆ GetFirstOrder()

const Order * Vehicle::GetFirstOrder | ( |  | ) | const
| inline

Get the first order of the vehicles order list.

Returns
  first order of order list.

Definition at line 660 of file vehicle_base.h.

References OrderList::GetFirstOrder(), GetOrder(), and orders.

Referenced by PreviousOrderIsUnbunching().

## ◆ GetGRF()

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 728 of file vehicle.cpp.

Referenced by CheckTrainAttachment(), CmdStartStopVehicle(), GetCargoSubtypeText(), and PlayVehicleSound().

## ◆ GetGRFID()

uint32_t 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 738 of file vehicle.cpp.

Referenced by CheckTrainAttachment(), CmdStartStopVehicle(), GetCargoSubtypeText(), and RunEconomyVehicleDayProc().

## ◆ GetGroundVehicleCache() [1/2]

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 3143 of file vehicle.cpp.

References SpecializedVehicle< T, Type >::From(), and VEH_TRAIN.

Referenced by AddArticulatedParts(), VehicleDetailsWindow::DrawWidget(), GetVehiclePalette(), LiveryHelper(), UpdateLoadUnloadTicks(), VehicleLengthSorter(), and VehicleResolverObject::VehicleResolverObject().

## ◆ GetGroundVehicleCache() [2/2]

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 3158 of file vehicle.cpp.

References SpecializedVehicle< T, Type >::From(), and VEH_TRAIN.

## ◆ GetGroundVehicleFlags() [1/2]

uint16_t & Vehicle::GetGroundVehicleFlags | ( |  | ) |

Access the ground vehicle flags of the vehicle.

Precondition
  The vehicle is a GroundVehicle.

Returns
  GroundVehicleFlags of the vehicle.

Definition at line 3173 of file vehicle.cpp.

References SpecializedVehicle< T, Type >::From(), and VEH_TRAIN.

Referenced by InsertOrder(), and UpdateOrderDest().

## ◆ GetGroundVehicleFlags() [2/2]

const uint16_t & 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 3188 of file vehicle.cpp.

References SpecializedVehicle< T, Type >::From(), and VEH_TRAIN.

## ◆ GetImage()

virtual void Vehicle::GetImage | ( | Direction | direction,
|  | EngineImageType | image_type,
|  | VehicleSpriteSeq * | result
| ) |  | const
| inlinevirtual

Gets the sprite to show for the given direction.

Parameters

  | direction | the direction the vehicle is facing
  [out] | result | Vehicle sprite sequence.

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 441 of file vehicle_base.h.

Referenced by DrawAircraftImage(), DrawShipImage(), GetSingleVehicleWidth(), SetMouseCursorVehicle(), and ViewportAddVehicles().

## ◆ GetLastEnginePart()

Vehicle * Vehicle::GetLastEnginePart | ( |  | ) |
| inline

Get the last part of an articulated engine.

Returns
  Last part of the engine.

Definition at line 973 of file vehicle_base.h.

References GetNextArticulatedPart(), and HasArticulatedPart().

Referenced by SpecializedVehicle< T, Type >::GetLastEnginePart().

## ◆ GetLastOrder()

const Order * Vehicle::GetLastOrder | ( |  | ) | const
| inline

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

Returns
  last order of a vehicle, if available

Definition at line 899 of file vehicle_base.h.

References OrderList::GetLastOrder(), OrderList::GetOrderAt(), and orders.

Referenced by PreviousOrderIsUnbunching().

## ◆ GetMaxWeight()

virtual uint16_t Vehicle::GetMaxWeight | ( |  | ) | const
| inlinevirtual

Calculates the weight value that this vehicle will have when fully loaded with its current cargo.

Returns
  Weight value in tonnes.

Reimplemented in RoadVehicle, and Train.

Definition at line 329 of file vehicle_base.h.

## ◆ GetNextArticulatedPart()

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.

Definition at line 941 of file vehicle_base.h.

References HasArticulatedPart(), and Next().

Referenced by CheckConsistencyOfArticulatedVehicle(), CmdCloneVehicle(), GetBestFittingSubType(), GetCargoTypesOfArticulatedVehicle(), GetLastEnginePart(), SpecializedVehicle< T, Type >::GetNextArticulatedPart(), SpecializedVehicle< T, Type >::GetNextArticulatedPart(), GetNextVehicle(), and SetMouseCursorVehicle().

## ◆ GetNextStoppingStation()

void Vehicle::GetNextStoppingStation | ( | std::vector< StationID > & | next_station | ) | const
| inline

Get the next station the vehicle will stop at.

Returns
  ID of the next station the vehicle will stop at or StationID::Invalid().

Definition at line 717 of file vehicle_base.h.

References OrderList::GetNextStoppingStation(), and orders.

Referenced by FindNearestHangar(), LoadUnloadVehicle(), and PrepareUnload().

## ◆ GetNextVehicle()

Vehicle * Vehicle::GetNextVehicle | ( |  | ) | const
| inline

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

Returns
  Next vehicle in the consist.

Definition at line 984 of file vehicle_base.h.

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

Referenced by CmdCloneVehicle(), SpecializedVehicle< T, Type >::GetNextVehicle(), and VehiclesHaveSameEngineList().

## ◆ GetNumManualOrders()

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 711 of file vehicle_base.h.

References OrderList::GetNumManualOrders(), and orders.

Referenced by ProcessOrders(), SkipToNextRealOrderIndex(), UpdateOrderDest(), and UpdateRealOrderIndex().

## ◆ GetNumOrders()

VehicleOrderID Vehicle::GetNumOrders | ( |  | ) | const
| inline

Get the number of orders this vehicle has.

Returns
  the number of orders this vehicle has.

Definition at line 705 of file vehicle_base.h.

References OrderList::GetNumOrders(), and orders.

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

## ◆ GetOldAdvanceSpeed()

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 383 of file vehicle_base.h.

Referenced by UpdateAircraftSpeed().

## ◆ GetOrder()

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

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

Parameters

  index | the order to fetch

Returns
  the found (or not) order

Definition at line 890 of file vehicle_base.h.

References OrderList::GetOrderAt(), and orders.

Referenced by ChangeTimetable(), CmdBulkChangeTimetable(), CmdChangeTimetable(), CmdDeleteOrder(), CmdModifyOrder(), CmdMoveOrder(), CmdOrderRefit(), DeleteOrder(), OrdersWindow::DrawWidget(), GetFirstOrder(), OrdersWindow::GetWidgetString(), IncrementImplicitOrderIndex(), OrdersWindow::OnClick(), TimetableWindow::OnClick(), TimetableWindow::OnPaint(), OrdersWindow::OnQueryTextFinished(), OrdersWindow::OrderClick_FullLoad(), OrdersWindow::OrderClick_Nonstop(), OrdersWindow::OrderClick_Service(), OrdersWindow::OrderClick_Unload(), PreviousOrderIsUnbunching(), ProcessOrders(), SkipToNextRealOrderIndex(), VehicleOrderSaver::SwitchToNextOrder(), UpdateOrderDest(), UpdateRealOrderIndex(), UpdateVehicleTimetable(), and VehicleEnterDepot().

## ◆ GetOrderStationLocation()

virtual TileIndex Vehicle::GetOrderStationLocation | ( | StationID | station | ) |
| inlinevirtual

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 764 of file vehicle_base.h.

References INVALID_TILE.

Referenced by RemoveRoadStop(), and UpdateOrderDest().

## ◆ GetPrevVehicle()

Vehicle * Vehicle::GetPrevVehicle | ( |  | ) | const
| inline

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

Returns
  Previous vehicle in the consist.

Definition at line 997 of file vehicle_base.h.

References IsArticulatedPart(), and Previous().

Referenced by SpecializedVehicle< T, Type >::GetPrevVehicle().

## ◆ GetRunningCost()

virtual Money Vehicle::GetRunningCost | ( |  | ) | const
| inlinevirtual

Gets the running cost of a vehicle.

Returns
  the vehicle's running cost

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 497 of file vehicle_base.h.

Referenced by GetDisplayRunningCost().

## ◆ GetServiceInterval()

uint16_t Vehicle::GetServiceInterval | ( |  | ) | const
| inline

Definition at line 788 of file vehicle_base.h.

## ◆ GetVehicleTrackdir()

virtual Trackdir Vehicle::GetVehicleTrackdir | ( |  | ) | const
| inlinevirtual

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 560 of file vehicle_base.h.

References INVALID_TRACKDIR.

## ◆ HandleBreakdown()

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 1332 of file vehicle.cpp.

References _settings_game, AircraftBroken, EffectVehicle::animation_state, CreateEffectVehicleRel(), EV_BREAKDOWN_SMOKE, GameSettings::game_creation, Hidden, GameCreationSettings::landscape, NoBreakdownSmoke, PlayVehicleSound(), SetWindowDirty(), SND_0F_BREAKDOWN_ROADVEHICLE, SND_10_BREAKDOWN_TRAIN_SHIP, SND_35_BREAKDOWN_ROADVEHICLE_TOYLAND, SND_3A_BREAKDOWN_TRAIN_SHIP_TOYLAND, VEH_AIRCRAFT, VEH_SHIP, VEH_TRAIN, VSE_BREAKDOWN, WC_VEHICLE_DETAILS, and WC_VEHICLE_VIEW.

## ◆ HandleLoading()

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 2407 of file vehicle.cpp.

References Order::GetDestination(), Order::IsType(), and LoadingFinished.

## ◆ HandlePathfindingResult()

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 762 of file vehicle.cpp.

References _local_company, _settings_client, AddVehicleAdviceNewsItem(), DeleteVehicleNews(), GetEncodedString(), GetWindowClassForVehicleType(), ClientSettings::gui, InvalidateWindowClassesData(), GUISettings::lost_vehicle_warn, AI::NewEvent(), PathfinderLost, SetWindowWidgetDirty(), VehicleLost, WC_VEHICLE_VIEW, and WID_VV_START_STOP.

Referenced by ChooseShipTrack(), and RoadFindPathToDest().

## ◆ HasArticulatedPart()

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 931 of file vehicle_base.h.

References IsArticulatedPart(), and Next().

Referenced by CheckConsistencyOfArticulatedVehicle(), CmdCloneVehicle(), DrawRoadVehDetails(), VehicleDetailsWindow::DrawWidget(), RoadStop::Enter(), GetBestFittingSubType(), GetCargoTypesOfArticulatedVehicle(), GetLastEnginePart(), GetNextArticulatedPart(), RoadStop::GetNextRoadStop(), GetNextVehicle(), VehicleDetailsWindow::GetRoadVehDetailsHeight(), GetVehicleCannotUseStationReason(), IterateVehicleParts(), LoadUnloadVehicle(), RoadFindPathToDest(), and SetMouseCursorVehicle().

## ◆ HasConditionalOrder()

bool Vehicle::HasConditionalOrder | ( |  | ) | const

Check if the current vehicle has a conditional order.

Returns
  true Iff this vehicle has a conditional order.

Definition at line 2453 of file vehicle.cpp.

References Order::IsType().

Referenced by CmdInsertOrder(), CmdModifyOrder(), and GetOrderCmdFromTile().

## ◆ HasDepotOrder()

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 1816 of file order_cmd.cpp.

References Order::IsType().

Referenced by NeedsAutomaticServicing().

## ◆ HasEngineType()

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

Check whether Vehicle::engine_type has any meaning.

Returns
  true if the vehicle has a usable engine type.

Definition at line 702 of file vehicle.cpp.

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

Referenced by RunEconomyVehicleDayProc(), and VehicleServiceInDepot().

## ◆ HasFullLoadOrder()

bool Vehicle::HasFullLoadOrder | ( |  | ) | const

Check if the current vehicle has a full load order.

Returns
  true Iff this vehicle has a full load order.

Definition at line 2442 of file vehicle.cpp.

References Order::IsFullLoadOrder(), and Order::IsType().

Referenced by CmdInsertOrder(), CmdModifyOrder(), and GetOrderCmdFromTile().

## ◆ HasUnbunchingOrder()

bool Vehicle::HasUnbunchingOrder | ( |  | ) | const

Check if the current vehicle has an unbunching order.

Returns
  true Iff this vehicle has an unbunching order.

Definition at line 2462 of file vehicle.cpp.

References Order::GetDepotActionType(), Order::IsType(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and Unbunch.

Referenced by CmdInsertOrder(), CmdModifyOrder(), and GetOrderCmdFromTile().

## ◆ IncrementImplicitOrderIndex()

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 830 of file vehicle_base.h.

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

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

## ◆ IncrementRealOrderIndex()

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 854 of file vehicle_base.h.

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

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

## ◆ InvalidateNewGRFCache()

void Vehicle::InvalidateNewGRFCache | ( |  | ) |
| inline

Invalidates cached NewGRF variables.

See also
  InvalidateNewGRFCacheOfChain

Definition at line 450 of file vehicle_base.h.

References NewGRFCache::cache_valid, and grf_cache.

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

## ◆ InvalidateNewGRFCacheOfChain()

void Vehicle::InvalidateNewGRFCacheOfChain | ( |  | ) |
| inline

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

See also
  InvalidateNewGRFCache

Definition at line 459 of file vehicle_base.h.

References Next().

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

## ◆ IsArticulatedPart()

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 922 of file vehicle_base.h.

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

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

## ◆ IsChainInDepot()

virtual bool Vehicle::IsChainInDepot | ( |  | ) | const
| inlinevirtual

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< RoadVehicle, VEH_ROAD >, and GroundVehicle< Train, VEH_TRAIN >.

Definition at line 509 of file vehicle_base.h.

References IsInDepot().

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

## ◆ IsEngineCountable()

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 685 of file vehicle.cpp.

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

Referenced by AddVehicleToGroup().

## ◆ IsFrontEngine()

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 913 of file vehicle_base.h.

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

Referenced by AfterLoadVehiclesPhase2(), CcBuildWagon(), CmdAutoreplaceVehicle(), CmdCloneVehicle(), CmdMoveRailVehicle(), CmdSellRailWagon(), Train::ConsistChanged(), RoadVehicle::Crash(), Train::Crash(), DisasterTick_Ufo(), FreeTrainTrackReservation(), RoadVehicle::IsBus(), RoadVehicle::IsPrimaryVehicle(), Train::IsPrimaryVehicle(), NormaliseTrainHead(), DepotWindow::OnDragDrop(), RoadVehicle::OnNewCalendarDay(), RoadVehicle::OnNewEconomyDay(), Train::OnNewEconomyDay(), RoadVehUpdateCache(), SetTrainGroupID(), ShowVisualEffect(), RoadVehicle::Tick(), Train::Tick(), TrainApproachingCrossingEnum(), TrainApproachingCrossingTile(), TrainController(), TryPathReserve(), Train::UpdateAcceleration(), UpdateTrainGroupID(), and WhoCanServiceIndustry().

## ◆ IsGroundVehicle()

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 470 of file vehicle_base.h.

References BaseVehicle::type, VEH_ROAD, and VEH_TRAIN.

Referenced by RefitWindow::BuildRefitList(), CmdCloneVehicle(), CmdInsertOrder(), CmdModifyOrder(), DrawOrderString(), DepotWindow::DrawVehicleInDepot(), VehicleDetailsWindow::DrawWidget(), GetOrderCmdFromTile(), GetVehiclePalette(), InsertOrder(), IsArticulatedPart(), IsFrontEngine(), IsVehicleRefittable(), LiveryHelper(), VehicleViewWindow::OnClick(), OrdersWindow::OrderClick_Nonstop(), SetMouseCursorVehicle(), OrdersWindow::UpdateAutoRefitState(), UpdateOrderDest(), and VehicleResolverObject::VehicleResolverObject().

## ◆ IsInDepot()

virtual bool Vehicle::IsInDepot | ( |  | ) | const
| inlinevirtual

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 503 of file vehicle_base.h.

Referenced by IsChainInDepot().

## ◆ IsOrderListShared()

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 699 of file vehicle_base.h.

References OrderList::IsShared(), and orders.

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

## ◆ IsPrimaryVehicle()

virtual bool Vehicle::IsPrimaryVehicle | ( |  | ) | const
| inlinevirtual

Whether this is the primary vehicle in the chain.

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 432 of file vehicle_base.h.

Referenced by AgeVehicle(), CcStartStopVehicle(), CmdAutofillTimetable(), CmdAutoreplaceVehicle(), CmdBuildVehicle(), CmdBulkChangeTimetable(), CmdChangeServiceInt(), CmdChangeTimetable(), CmdCloneOrder(), CmdCloneVehicle(), CmdDeleteOrder(), CmdInsertOrder(), CmdModifyOrder(), CmdMoveOrder(), CmdOrderRefit(), CmdRenameVehicle(), CmdSellVehicle(), CmdSendVehicleToDepot(), CmdSetTimetableStart(), CmdSetVehicleOnTime(), CmdSkipToOrder(), CmdStartStopVehicle(), Crash(), EconomyAgeVehicle(), GenerateVehicleSortList(), IsStoppedInDepot(), ReplaceChain(), StartStopVehicle(), TransferCargo(), and VehicleClicked().

## ◆ IsStoppedInDepot()

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 515 of file vehicle_base.h.

References First(), IsChainInDepot(), IsPrimaryVehicle(), Stopped, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and vehstatus.

Referenced by CcBuildWagon(), CmdAutoreplaceVehicle(), CmdMoveRailVehicle(), CmdRefitVehicle(), CmdReverseTrainDirection(), CmdSellVehicle(), CmdStartStopVehicle(), DeleteStaleLinks(), and IsVehicleRefittable().

## ◆ IsWaitingForUnbunching()

bool Vehicle::IsWaitingForUnbunching | ( |  | ) | const

Check whether a vehicle inside a depot is waiting for unbunching.

Returns
  True if the vehicle must continue waiting, or false if it may try to leave the depot.

Definition at line 2533 of file vehicle.cpp.

References TimerGameTick::counter, and PreviousOrderIsUnbunching().

Referenced by AircraftEventHandler_InHangar(), CheckShipStayInDepot(), and CheckTrainStayInDepot().

## ◆ Last() [1/2]

Vehicle * Vehicle::Last | ( |  | ) |
| inline

Get the last vehicle of this vehicle chain.

Returns
  the last vehicle of the chain.

Definition at line 606 of file vehicle_base.h.

References Next().

Referenced by CcBuildWagon(), SpecializedVehicle< T, Type >::Last(), SpecializedVehicle< T, Type >::Last(), and DepotWindow::OnMouseDrag().

## ◆ Last() [2/2]

const Vehicle * Vehicle::Last | ( |  | ) | const
| inline

Get the last vehicle of this vehicle chain.

Returns
  the last vehicle of the chain.

Definition at line 617 of file vehicle_base.h.

References Next().

## ◆ LeaveStation()

void Vehicle::LeaveStation | ( |  | ) |

Perform all actions when leaving a station.

Precondition
  this->current_order.IsType(OT_LOADING)

Definition at line 2327 of file vehicle.cpp.

References CalcPercentVehicleFilled(), TimerGameTick::counter, Crashed, SpecializedVehicle< T, Type >::From(), SpecializedStation< Station, false >::Get(), HideFillingPercent(), IsStationRoadStopTile(), IsTileType(), LeavingStation, MP_STATION, NoLoad, NoUnload, LinkRefresher::Run(), TriggerStationRandomisation(), UpdateVehicleTimetable(), VEH_ROAD, VEH_TRAIN, and VehicleDeparts.

Referenced by CmdReverseTrainDirection(), and CmdSkipToOrder().

## ◆ LeaveUnbunchingDepot()

void Vehicle::LeaveUnbunchingDepot | ( |  | ) |

Leave an unbunching depot and calculate the next departure time for shared order vehicles.

Definition at line 2486 of file vehicle.cpp.

References BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Any(), TimerGameTick::counter, BaseConsist::depot_unbunching_next_departure, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, NextShared(), PreviousOrderIsUnbunching(), BaseConsist::round_trip_time, SetWindowDirty(), vehstatus, WC_VEHICLE_TIMETABLE, and WC_VEHICLE_VIEW.

Referenced by AircraftLeaveHangar(), CheckShipStayInDepot(), and CheckTrainStayInDepot().

## ◆ MarkAllViewportsDirty()

bool Vehicle::MarkAllViewportsDirty | ( |  | ) | const

Marks viewports dirty where the vehicle's image is.

Returns
  true if at least one viewport has a dirty block

Definition at line 1755 of file vehicle.cpp.

## ◆ Move() [1/2]

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 nullptr if the offset is out-of-bounds.

Definition at line 629 of file vehicle_base.h.

References Next(), and Previous().

Referenced by NewGRFInspectWindow::GetFeatureIndex(), VehicleResolverObject::GetScope(), and NewGRFInspectWindow::ValidateChainIndex().

## ◆ Move() [2/2]

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 nullptr if the offset is out-of-bounds.

Definition at line 645 of file vehicle_base.h.

References Next(), and Previous().

## ◆ NeedsAutomaticServicing()

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 283 of file vehicle.cpp.

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

Referenced by CheckIfTrainNeedsService().

## ◆ NeedsAutorenewing()

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 156 of file vehicle.cpp.

References age, CompanySettings::engine_renew, CompanySettings::engine_renew_months, SpecializedVehicle< T, Type >::From(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::Get(), max_age, owner, CompanyProperties::settings, BaseVehicle::type, and VEH_TRAIN.

Referenced by GetNewEngineType().

## ◆ 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 201 of file vehicle.cpp.

References _settings_game, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Any(), cargo_type, TimerGameEconomy::date, date_of_last_service, EconomyTime::DAYS_IN_ECONOMY_MONTH, GameSettings::difficulty, CompanySettings::engine_renew_money, EngineReplacementForCompany(), SpecializedVehicle< T, Type >::From(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_engine_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::Get(), GetArticulatedRefitMasks(), GetAvailableMoney(), GetCargoTypesOfArticulatedParts(), GetCargoTypesOfArticulatedVehicle(), GetEngine(), HasAtMostOneBit(), HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, IsValidCargoType(), OrderSettings::no_servicing_if_no_breakdowns, GameSettings::order, owner, reliability, CompanyProperties::settings, TimerGameEconomy::UsingWallclockUnits(), VEH_TRAIN, DifficultySettings::vehicle_breakdowns, and vehstatus.

Referenced by NeedsAutomaticServicing(), ProcessConditionalOrder(), and UpdateOrderDest().

## ◆ Next()

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 nullptr when there isn't a next vehicle.

Definition at line 587 of file vehicle_base.h.

References next.

Referenced by AddVehicleToGroup(), AfterLoadVehiclesPhase2(), AircraftLeaveHangar(), RefitWindow::BuildRefitList(), CalcPercentVehicleFilled(), CargoFilterSingle(), CheckCaches(), CheckCargoCapacity(), CmdCloneVehicle(), CmdReverseTrainDirection(), Crash(), DrawAircraftImage(), DrawRoadVehDetails(), GetDisplayMaxWeight(), GetNewCargoTypeForReplace(), GetNextArticulatedPart(), GetNextVehicle(), VehicleResolverObject::GetScope(), GetTrainDetailsWndVScroll(), HandleCrashedTrain(), LinkRefresher::HandleRefit(), HasArticulatedPart(), IncreaseStats(), InvalidateNewGRFCacheOfChain(), IsVehicleRefittable(), IterateVehicleParts(), Last(), Last(), LinkRefresher::LinkRefresher(), LoadUnloadVehicle(), Move(), Move(), SpecializedVehicle< T, Type >::Next(), NewGRFInspectWindow::OnClick(), NewGRFInspectWindow::OnInvalidateData(), DepotWindow::OnRightClick(), PositionHelper(), PrepareUnload(), PropagateChildLivery(), RefitVehicle(), RerouteCargo(), ReserveConsist(), ResetRefitCaps(), SetNext(), ShowVisualEffect(), TransferCargo(), VehicleCargoSorter(), VehicleServiceInDepot(), and VehicleValueSorter().

## ◆ NextShared()

Vehicle * Vehicle::NextShared | ( |  | ) | const
| inline

Get the next vehicle of the shared vehicle chain.

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

Definition at line 681 of file vehicle_base.h.

References next_shared.

Referenced by ChangeTimetable(), OrderBackup::ClearVehicle(), CmdAddSharedVehicleGroup(), CmdChangeTimetable(), CmdModifyOrder(), CmdMoveOrder(), CmdSetVehicleOnTime(), DeleteOrder(), DeleteStaleLinks(), FindVehiclesWithOrder(), GenerateVehicleSortList(), OrderList::Initialize(), InsertOrder(), LeaveUnbunchingDepot(), OrderBackup::OrderBackup(), OrdersWindow::OrderClick_StopSharing(), OrderList::RemoveVehicle(), and UpdateVehicleTimetable().

## ◆ OnNewCalendarDay()

virtual void Vehicle::OnNewCalendarDay | ( |  | ) |
| inlinevirtual

Calls the new calendar day handler of the vehicle.

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 532 of file vehicle_base.h.

Referenced by RunVehicleCalendarDayProc().

## ◆ OnNewEconomyDay()

virtual void Vehicle::OnNewEconomyDay | ( |  | ) |
| inlinevirtual

Calls the new economy day handler of the vehicle.

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 537 of file vehicle_base.h.

Referenced by RunEconomyVehicleDayProc().

## ◆ Orders() [1/2]

std::span< Order > Vehicle::Orders | ( |  | ) |
| inline

Definition at line 668 of file vehicle_base.h.

## ◆ Orders() [2/2]

std::span< const Order > Vehicle::Orders | ( |  | ) | const
| inline

Definition at line 662 of file vehicle_base.h.

## ◆ PlayLeaveStationSound()

virtual void Vehicle::PlayLeaveStationSound | ( | bool | force = `false` | ) | const
| inlinevirtual

Play the sound associated with leaving the station.

Parameters

  force | Should we play the sound even if sound effects are muted? (horn hotkey)

Reimplemented in Ship, and Train.

Definition at line 427 of file vehicle_base.h.

Referenced by VehicleViewWindow::OnHotkey().

## ◆ PreDestructor()

void Vehicle::PreDestructor | ( |  | ) |

Destroy all stuff that (still) needs the virtual functions to work properly.

Definition at line 796 of file vehicle.cpp.

References _local_company, Station::airport, Airport::blocks, OrderBackup::ClearVehicle(), CloseWindowById(), GroupStatistics::CountEngine(), GroupStatistics::CountVehicle(), Crashed, DeleteDepotHighlightOfVehicle(), DeleteGroupHighlightOfVehicle(), DeleteVehicleOrders(), RoadVehicle::disaster_vehicle, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::From(), SpecializedVehicle< T, Type >::From(), SpecializedStation< Station, false >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::Get(), RoadStop::GetByTile(), Airport::GetFTA(), GetRoadStopType(), GetTargetAirportIfValid(), GetWindowClassForVehicleType(), HideFillingPercent(), InvalidateAutoreplaceWindow(), InvalidateWindowClassesData(), InvalidateWindowData(), IsInsideMM(), SpecializedStation< Station, false >::IsValidID(), AirportFTAClass::layout, RoadStop::Leave(), Aircraft::pos, Aircraft::previous_pos, ReleaseDisasterVehicle(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Reset(), RVSB_IN_DT_ROAD_STOP, SetWindowDirty(), RoadVehicle::state, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), tile, GroupStatistics::UpdateAutoreplace(), VEH_AIRCRAFT, VEH_ROAD, vehstatus, WC_COMPANY, WC_VEHICLE_DEPOT, WC_VEHICLE_DETAILS, WC_VEHICLE_ORDERS, WC_VEHICLE_REFIT, WC_VEHICLE_TIMETABLE, and WC_VEHICLE_VIEW.

Referenced by Aircraft::~Aircraft(), RoadVehicle::~RoadVehicle(), Ship::~Ship(), and Train::~Train().

## ◆ Previous()

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 nullptr when there isn't a previous vehicle.

Definition at line 594 of file vehicle_base.h.

References previous.

Referenced by AddCargoIconOverlay(), AgeVehicle(), Crash(), GetFirstEnginePart(), GetFirstEnginePart(), GetPrevVehicle(), LoadUnloadVehicle(), Move(), Move(), DepotWindow::OnMouseDrag(), and SpecializedVehicle< T, Type >::Previous().

## ◆ PreviousShared()

Vehicle * Vehicle::PreviousShared | ( |  | ) | const
| inline

Get the previous vehicle of the shared vehicle chain.

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

Definition at line 687 of file vehicle_base.h.

References previous_shared.

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

## ◆ ReleaseUnitNumber()

void Vehicle::ReleaseUnitNumber | ( |  | ) |

Release the vehicle's unit number.

Definition at line 2396 of file vehicle.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::Get().

Referenced by CmdMoveRailVehicle(), and CopyVehicleConfigAndStatistics().

## ◆ RemoveFromShared()

void Vehicle::RemoveFromShared | ( |  | ) |

Removes the vehicle from the shared order list.

Definition at line 2979 of file vehicle.cpp.

References CloseWindowById(), GetWindowClassForVehicleType(), InvalidateVehicleOrder(), InvalidateWindowData(), VehicleListIdentifier::ToWindowNumber(), VIWD_MODIFY_ORDERS, and VL_SHARED_ORDERS.

Referenced by DeleteVehicleOrders().

## ◆ ResetRefitCaps()

void Vehicle::ResetRefitCaps | ( |  | ) |

Reset all refit_cap in the consist to cargo_cap.

Definition at line 2388 of file vehicle.cpp.

References cargo_cap, Next(), and refit_cap.

## ◆ SendToDepot()

CommandCost Vehicle::SendToDepot | ( | DoCommandFlags | flags,
|  | DepotCommandFlags | 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 2555 of file vehicle.cpp.

References AircraftNextAirportPos_and_Order(), CheckOwnership(), CMD_ERROR, Crashed, ClosestDepot::destination, DontCancel, Execute, CommandCost::Failed(), FLYING, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >::From(), SpecializedVehicle< T, Type >::From(), GVF_SUPPRESS_IMPLICIT_ORDERS, Halt, PartOfOrders, Reversing, Service, SetBit(), SetWindowWidgetDirty(), Aircraft::state, Aircraft::targetairport, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), VEH_AIRCRAFT, VEH_TRAIN, WC_VEHICLE_VIEW, and WID_VV_START_STOP.

Referenced by CmdSendVehicleToDepot().

## ◆ ServiceIntervalIsCustom()

bool Vehicle::ServiceIntervalIsCustom | ( |  | ) | const
| inline

Definition at line 792 of file vehicle_base.h.

## ◆ ServiceIntervalIsPercent()

bool Vehicle::ServiceIntervalIsPercent | ( |  | ) | const
| inline

Definition at line 794 of file vehicle_base.h.

## ◆ SetDestTile()

virtual void Vehicle::SetDestTile | ( | TileIndex | tile | ) |
| inlinevirtual

Definition at line 775 of file vehicle_base.h.

## ◆ SetNext()

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

Set the next vehicle of this vehicle.

Parameters

  next | the next vehicle. nullptr removes the next vehicle.

Definition at line 2927 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(), and RestoreTrainBackup().

## ◆ SetServiceInterval()

void Vehicle::SetServiceInterval | ( | uint16_t | interval | ) |
| inline

Definition at line 790 of file vehicle_base.h.

## ◆ SetServiceIntervalIsCustom()

void Vehicle::SetServiceIntervalIsCustom | ( | bool | on | ) |
| inline

Definition at line 796 of file vehicle_base.h.

## ◆ SetServiceIntervalIsPercent()

void Vehicle::SetServiceIntervalIsPercent | ( | bool | on | ) |
| inline

Definition at line 798 of file vehicle_base.h.

## ◆ ShiftDates()

void Vehicle::ShiftDates | ( | TimerGameEconomy::Date | interval | ) |

Shift all dates by given interval.

This is useful if the date has been modified with the cheat menu.

Parameters

  interval | Number of days to be added or subtracted.

Definition at line 748 of file vehicle.cpp.

## ◆ ShowVisualEffect()

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

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

Precondition
  this->IsPrimaryVehicle()

Definition at line 2777 of file vehicle.cpp.

References _settings_game, VehicleCache::cached_vis_effect, Chance16(), CreateEffectVehicleRel(), cur_speed, current_order, direction, EV_DIESEL_SMOKE, EV_ELECTRIC_SPARK, EV_STEAM_SMOKE, Flipped, SpecializedVehicle< T, Type >::From(), GB(), GetStationIndex(), GetTileRailType(), HasBit(), HasPowerOnRail(), Hidden, IsBridgeAboveVehicle(), IsDepotTile(), IsFrontEngine(), IsRailStationTile(), IsTunnelTile(), Next(), PlayVehicleSound(), Reversing, Order::ShouldStopAtStation(), VehicleSettings::smoke_amount, SpawnAdvancedVisualEffect(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), tick_counter, tile, BaseVehicle::type, vcache, VE_ADVANCED_EFFECT, VE_OFFSET_CENTRE, VE_OFFSET_COUNT, VE_OFFSET_START, VE_TYPE_COUNT, VE_TYPE_DEFAULT, VE_TYPE_DIESEL, VE_TYPE_ELECTRIC, VE_TYPE_START, VE_TYPE_STEAM, VEH_TRAIN, GameSettings::vehicle, VEHICLE_LENGTH, vehstatus, VESM_DIESEL, VESM_ELECTRIC, VESM_NONE, VESM_STEAM, and VSE_VISUAL_EFFECT.

## ◆ SkipToNextRealOrderIndex()

void Vehicle::SkipToNextRealOrderIndex | ( |  | ) |
| inlineprivate

Advance cur_real_order_index to the next real order.

cur_implicit_order_index is not touched.

Definition at line 811 of file vehicle_base.h.

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

Referenced by IncrementImplicitOrderIndex(), and IncrementRealOrderIndex().

## ◆ Tick()

virtual bool Vehicle::Tick | ( |  | ) |
| inlinevirtual

Calls the tick handler of the vehicle.

Returns
  is this vehicle still valid?

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

Definition at line 527 of file vehicle_base.h.

## ◆ UpdateBoundingBoxCoordinates()

void Vehicle::UpdateBoundingBoxCoordinates | ( | bool | update_cache | ) | const

Update the bounding box co-ordinates of the vehicle.

Parameters

  update_cache | Update the cached values for previous co-ordinate values

Definition at line 1671 of file vehicle.cpp.

References INVALID_COORD, RemapCoords(), Coord2D< T >::x, and Coord2D< T >::y.

Referenced by ViewportAddVehicles().

## ◆ UpdateDeltaXY()

virtual void Vehicle::UpdateDeltaXY | ( |  | ) |
| inlinevirtual

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

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

Definition at line 368 of file vehicle_base.h.

## ◆ UpdatePosition()

void Vehicle::UpdatePosition | ( |  | ) |

Update the position of the vehicle.

This will update the hash that tells which vehicles are on a tile.

Definition at line 1662 of file vehicle.cpp.

Referenced by AddArticulatedParts(), ChangeTrainDirRandomly(), CheckTrainStayInDepot(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), SetAircraftPosition(), ShipMoveUpDownOnLock(), TrainController(), and UpdateStatusAfterSwap().

## ◆ UpdatePositionAndViewport()

void Vehicle::UpdatePositionAndViewport | ( |  | ) |

Update the position of the vehicle, and update the viewport.

Definition at line 1745 of file vehicle.cpp.

References VEH_EFFECT.

Referenced by CreateEffectVehicle(), DisasterTick_Helicopter_Rotors(), DisasterVehicle::DisasterVehicle(), SetAircraftPosition(), and DisasterVehicle::UpdatePosition().

## ◆ UpdateRealOrderIndex()

void Vehicle::UpdateRealOrderIndex | ( |  | ) |
| inline

Skip implicit orders until cur_real_order_index is a non-implicit order.

Definition at line 869 of file vehicle_base.h.

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

Referenced by CmdSkipToOrder(), DeleteOrder(), OrderBackup::DoRestore(), ProcessOrders(), and UpdateOrderDest().

## ◆ UpdateViewport()

void Vehicle::UpdateViewport | ( | bool | dirty | ) |

Update the vehicle on the viewport, updating the right hash and setting the new coordinates.

Parameters

  dirty | Mark the (new and old) coordinates of the vehicle as dirty.

Definition at line 1716 of file vehicle.cpp.

References INVALID_COORD, and MarkAllViewportsDirty().

Referenced by SpecializedVehicle< T, Type >::UpdateViewport().

## ◆ UpdateVisualEffect()

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 2636 of file vehicle.cpp.

References CALLBACK_FAILED, EngineInfo::callback_mask, CBID_VEHICLE_VISUAL_EFFECT, EC_MONORAIL, EC_STEAM, RailVehicleInfo::engclass, ErrorUnknownCallbackResult(), GB(), Engine::GetGRF(), Engine::GetGRFID(), GetVehicleCallback(), HasBit(), IsInsideMM(), RAILVEH_WAGON, SB(), SetBit(), ShowNewGrfVehicleError(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), ToggleBit(), Engine::type, VE_DEFAULT, VE_DISABLE_EFFECT, VE_DISABLE_WAGON_POWER, VE_OFFSET_CENTRE, VE_OFFSET_START, VE_TYPE_COUNT, VE_TYPE_DEFAULT, VE_TYPE_START, VE_TYPE_STEAM, VEH_ROAD, VEH_SHIP, VEH_TRAIN, VehPoweredWagon, and VisualEffect.

Referenced by Ship::UpdateCache().

## Friends And Related Symbol Documentation

## ◆ AfterLoadVehiclesPhase1

void AfterLoadVehiclesPhase1 | ( | 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 256 of file vehicle_sl.cpp.

## ◆ FixOldVehicles

void FixOldVehicles | ( | LoadgameState & | ls | ) |
| 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 160 of file oldloader_sl.cpp.

## ◆ LoadOldVehicle

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 1258 of file oldloader_sl.cpp.

## ◆ SlVehicleCommon

friend class SlVehicleCommon
| friend

Definition at line 221 of file vehicle_base.h.

## ◆ SlVehicleDisaster

friend class SlVehicleDisaster
| friend

Definition at line 222 of file vehicle_base.h.

## Field Documentation

## ◆ acceleration

uint8_t Vehicle::acceleration = 0

used by train & aircraft

Definition at line 285 of file vehicle_base.h.

Referenced by CmdBuildAircraft(), ShipAccelerate(), Train::UpdateAcceleration(), UpdateAircraftSpeed(), and Train::UpdateSpeed().

## ◆ age

TimerGameCalendar::Date Vehicle::age {}

Age in calendar days.

Definition at line 253 of file vehicle_base.h.

Referenced by AgeVehicle(), DisasterTick_Aircraft(), DisasterTick_Big_Ufo(), DisasterTick_Submarine(), DisasterTick_Ufo(), DisasterTick_Zeppeliner(), DepotWindow::DrawVehicleInDepot(), BaseVehicleListWindow::DrawVehicleListItems(), VehicleDetailsWindow::DrawWidget(), NeedsAutorenewing(), ProcessConditionalOrder(), ReleaseDisasterVehicle(), VehicleAgeSorter(), and VehicleTimeToLiveSorter().

## ◆ bounds

SpriteBounds Vehicle::bounds {}

Bounding box of vehicle.

Definition at line 277 of file vehicle_base.h.

Referenced by DoDrawVehicle(), Aircraft::UpdateDeltaXY(), DisasterVehicle::UpdateDeltaXY(), EffectVehicle::UpdateDeltaXY(), RoadVehicle::UpdateDeltaXY(), Ship::UpdateDeltaXY(), and Train::UpdateDeltaXY().

## ◆ breakdown_chance

uint8_t Vehicle::breakdown_chance = 0

Current chance of breakdowns.

Definition at line 263 of file vehicle_base.h.

Referenced by VehicleServiceInDepot().

## ◆ breakdown_ctr

uint8_t Vehicle::breakdown_ctr = 0

Counter for managing breakdown events.

See also
  Vehicle::HandleBreakdown

Definition at line 260 of file vehicle_base.h.

Referenced by CmdReverseTrainDirection(), CmdTurnRoadVeh(), DisasterTick_Ufo(), HandleAircraftSmoke(), and TrainCheckIfLineEnds().

## ◆ breakdown_delay

uint8_t Vehicle::breakdown_delay = 0

Counter for managing breakdown length.

Definition at line 261 of file vehicle_base.h.

Referenced by DisasterTick_Ufo().

## ◆ breakdowns_since_last_service

uint8_t Vehicle::breakdowns_since_last_service = 0

Counter for the amount of breakdowns.

Definition at line 262 of file vehicle_base.h.

Referenced by AircraftEventHandler_AtTerminal(), VehicleDetailsWindow::DrawWidget(), and VehicleServiceInDepot().

## ◆ build_year

TimerGameCalendar::Year Vehicle::build_year {}

Year the vehicle has been built.

Definition at line 252 of file vehicle_base.h.

Referenced by AddArticulatedParts(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), DrawRoadVehDetails(), DrawShipDetails(), LoadUnloadVehicle(), and TrainDetailsInfoTab().

## ◆ cargo

VehicleCargoList Vehicle::cargo {}

The cargo this vehicle is carrying.

Definition at line 296 of file vehicle_base.h.

Referenced by CalcPercentVehicleFilled(), CancelReservation(), CrashAirplane(), DrawRoadVehDetails(), DrawShipDetails(), GetCargoSummaryOfArticulatedVehicle(), RoadVehicle::GetImage(), Train::GetImage(), RoadVehicle::GetWeight(), Train::GetWeight(), IncreaseStats(), VEHSChunkHandler::Load(), LoadUnloadVehicle(), IsEmptyAction::operator()(), PrepareRefitAction::operator()(), ReturnCargoAction::operator()(), FinalizeRefitAction::operator()(), RefitVehicle(), VehicleResolverObject::ResolveReal(), and TransferCargo().

## ◆ cargo_age_counter

uint16_t Vehicle::cargo_age_counter = 0

Ticks till cargo is aged next.

Definition at line 301 of file vehicle_base.h.

Referenced by Vehicle().

## ◆ cargo_cap

uint16_t Vehicle::cargo_cap = 0

total capacity

Definition at line 299 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AddCargoIconOverlay(), CalcPercentVehicleFilled(), CheckConsistencyOfArticulatedVehicle(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), DrawAircraftImage(), DrawRoadVehDetails(), DrawShipDetails(), DrawShipImage(), BaseVehicleListWindow::DrawVehicleListItems(), GetCargoSummaryOfArticulatedVehicle(), VehicleDetailsWindow::GetRoadVehDetailsHeight(), LoadUnloadVehicle(), PrepareRefitAction::operator()(), FinalizeRefitAction::operator()(), RefitVehicle(), ResetRefitCaps(), VehicleResolverObject::ResolveReal(), and VehicleCargoSorter().

## ◆ cargo_payment

CargoPayment* Vehicle::cargo_payment = nullptr

The cargo payment we're currently in.

Definition at line 238 of file vehicle_base.h.

Referenced by Crash(), LoadUnloadVehicle(), PrepareUnload(), ReserveConsist(), and UpdateOldAircraft().

## ◆ cargo_subtype

uint8_t Vehicle::cargo_subtype = 0

Used for livery refits (NewGRF variations)

Definition at line 298 of file vehicle_base.h.

Referenced by AddArticulatedParts(), RefitWindow::BuildRefitList(), CmdCloneVehicle(), Engine::DetermineCapacity(), and RefitVehicle().

## ◆ cargo_type

CargoType Vehicle::cargo_type {}

type of cargo this vehicle is carrying

Definition at line 297 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AddCargoIconOverlay(), RefitWindow::BuildRefitList(), BuildReplacementVehicle(), CalcPercentVehicleFilled(), CancelReservation(), CheckConsistencyOfArticulatedVehicle(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdCloneVehicle(), Engine::DetermineCapacity(), DrawAircraftImage(), DrawRoadVehDetails(), DrawShipDetails(), DrawShipImage(), BaseVehicleListWindow::DrawVehicleListItems(), GetCargoSummaryOfArticulatedVehicle(), GetCargoTypesOfArticulatedVehicle(), GetEngineLiveryScheme(), GetLoadAmount(), RoadVehicle::GetMaxWeight(), Train::GetMaxWeight(), GetNewCargoTypeForReplace(), GetRefitCostFactor(), RoadVehicle::GetWeight(), Train::GetWeight(), HandleStationRefit(), IncreaseStats(), RoadVehicle::IsBus(), LoadUnloadVehicle(), NeedsServicing(), PrepareRefitAction::operator()(), ReturnCargoAction::operator()(), FinalizeRefitAction::operator()(), RefitVehicle(), VehicleCargoSorter(), VehicleResolverObject::VehicleResolverObject(), and WhoCanServiceIndustry().

## ◆ colourmap

SpriteID Vehicle::colourmap {}

NOSAVE: cached colour mapping.

Definition at line 249 of file vehicle_base.h.

Referenced by Aircraft::MarkDirty(), RoadVehicle::MarkDirty(), Ship::MarkDirty(), Train::MarkDirty(), and Vehicle().

## ◆ coord

Rect Vehicle::coord {}
| mutable

NOSAVE: Graphical bounding box of the vehicle, i.e. what to redraw on moves.

Definition at line 240 of file vehicle_base.h.

Referenced by CheckClickOnVehicle(), Vehicle(), and ViewportAddVehicles().

## ◆ cur_speed

uint16_t Vehicle::cur_speed = 0

current speed

Definition at line 283 of file vehicle_base.h.

Referenced by AffectSpeedByZChange(), AfterLoadVehiclesPhase2(), AircraftController(), AircraftLeaveHangar(), AirportHasBlock(), AirportSetBlocks(), CheckShipStayInDepot(), CheckTrainStayInDepot(), CmdBuildSingleSignal(), CmdReverseTrainDirection(), CmdStartStopVehicle(), GroundVehicle< T, Type >::DoUpdateSpeed(), Train::GetCurrentMaxSpeed(), RoadVehicle::GetCurrentSpeed(), Train::GetCurrentSpeed(), Aircraft::GetDisplaySpeed(), Ship::GetDisplaySpeed(), HandleAircraftEnterHangar(), HandleAircraftSmoke(), LoadUnloadVehicle(), MapAircraftMovementAction(), MarkTrainAsStuck(), GroundVehicle< T, Type >::SetLastSpeed(), ShipAccelerate(), ShipMoveUpDownOnLock(), ShowVisualEffect(), TrainApproachingLineEnd(), TrainCheckIfLineEnds(), TrainController(), UpdateAircraftSpeed(), and VehicleEnterDepot().

## ◆ current_order

Order Vehicle::current_order {}

The current order (+ status, like: loading)

Definition at line 311 of file vehicle_base.h.

Referenced by AfterLoadGame(), AircraftController(), AircraftEntersTerminal(), AircraftEventHandler_AtTerminal(), AircraftEventHandler_InHangar(), AircraftNextAirportPos_and_Order(), TimetableWindow::BuildArrivalDepartureList(), CalcPercentVehicleFilled(), CancelLoadingDueToDeletedOrder(), ChangeTimetable(), CheckIfTrainNeedsService(), CheckNextTrainTile(), CheckShipStayInDepot(), CheckTrainStayInDepot(), CmdBuildSingleSignal(), CmdModifyOrder(), CmdRefitVehicle(), CmdReverseTrainDirection(), CmdSkipToOrder(), CmdTurnRoadVeh(), CopyVehicleConfigAndStatistics(), DeleteOrder(), DeleteVehicleOrders(), FindNearestHangar(), RoadVehicle::GetCurrentMaxSpeed(), Train::GetCurrentMaxSpeed(), GetTrainStopLocation(), HandleStationRefit(), VEHSChunkHandler::Load(), LoadUnloadVehicle(), MapAircraftMovementAction(), NeedsAutomaticServicing(), VehicleViewWindow::OnClick(), Train::OnNewEconomyDay(), VehicleViewWindow::OnPaint(), CYapfCostRoadT< Types >::PfCalcCost(), CYapfCostRailT< Types >::PfCalcCost(), PrepareUnload(), ProcessOrders(), RemoveRoadStop(), ReserveConsist(), VehicleResolverObject::ResolveReal(), VehicleOrderSaver::Restore(), ReverseTrainDirection(), ShipAccelerate(), ShowVisualEffect(), VehicleOrderSaver::SwitchToNextOrder(), UpdateAirplanesOnNewStation(), UpdateOldAircraft(), UpdateOrderDest(), UpdateVehicleTimetable(), VehicleEnterDepot(), and VehicleTimetableSorter().

## ◆ date_of_last_service

TimerGameEconomy::Date Vehicle::date_of_last_service {}

Last economy date the vehicle had a service at a depot.

Definition at line 256 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AircraftEventHandler_AtTerminal(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), DeleteStaleLinks(), VehicleDetailsWindow::DrawWidget(), NeedsServicing(), and VehicleServiceInDepot().

## ◆ date_of_last_service_newgrf

TimerGameCalendar::Date Vehicle::date_of_last_service_newgrf {}

Last calendar date the vehicle had a service at a depot, unchanged by the date cheat to protect against unsafe NewGRF behavior.

Definition at line 257 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AircraftEventHandler_AtTerminal(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), and VehicleServiceInDepot().

## ◆ day_counter

uint8_t Vehicle::day_counter = 0

Increased by one for each day.

Definition at line 304 of file vehicle_base.h.

Referenced by CheckOrders(), Aircraft::OnNewEconomyDay(), RoadVehicle::OnNewEconomyDay(), Ship::OnNewEconomyDay(), Train::OnNewEconomyDay(), and RunEconomyVehicleDayProc().

## ◆ dest_tile

TileIndex Vehicle::dest_tile = INVALID_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 232 of file vehicle_base.h.

Referenced by CheckIfTrainNeedsService(), CheckNextTrainTile(), CheckShipStayInDepot(), CheckTrainStayInDepot(), ChooseShipTrack(), CopyVehicleConfigAndStatistics(), Disaster_Small_Ufo_Init(), DisasterTick_Aircraft(), DisasterTick_Big_Ufo(), DisasterTick_Ufo(), Train::OnNewEconomyDay(), ProcessOrders(), ReleaseDisastersTargetingIndustry(), ReleaseDisasterVehicle(), RemoveRoadStop(), VehicleOrderSaver::Restore(), RoadFindPathToDest(), UpdateOrderDest(), and VehicleEnterDepot().

## ◆ direction

Direction Vehicle::direction = INVALID_DIR

facing

Definition at line 268 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AfterLoadGame(), AircraftController(), AircraftLeaveHangar(), ChangeTrainDirRandomly(), CYapfFollowShipT< Types >::CheckShipReverse(), CheckShipStayInDepot(), CheckTrainStayInDepot(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRoadVehicle(), CmdTurnRoadVeh(), DisasterTick_Big_Ufo(), DisasterTick_Submarine(), DisasterTick_Ufo(), DisasterVehicle::DisasterVehicle(), RoadStop::Enter(), GetAircraftFlightLevelBounds(), Aircraft::GetImage(), RoadVehicle::GetImage(), Ship::GetImage(), Train::GetImage(), GetNewVehiclePos(), GetTrainStopLocation(), RoadVehicle::GetVehicleTrackdir(), Ship::GetVehicleTrackdir(), HandleAircraftSmoke(), HandleCrashedAircraft(), RoadVehicle::HasToUseGetSlopePixelZ(), RoadStop::Leave(), ReverseTrainDirection(), ReverseTrainSwapVeh(), ShipTestUpDownOnLock(), ShowVisualEffect(), SpawnAdvancedVisualEffect(), TrainApproachingCrossingTile(), TrainApproachingLineEnd(), TrainCanLeaveTile(), TrainCheckIfLineEnds(), TrainController(), RoadVehicle::UpdateDeltaXY(), Ship::UpdateDeltaXY(), Train::UpdateDeltaXY(), DisasterVehicle::UpdatePosition(), UpdateStatusAfterSwap(), SpecializedVehicle< T, Type >::UpdateViewport(), GroundVehicle< T, Type >::UpdateZPosition(), VehicleEnter_Track(), and ViewportAddVehicles().

## ◆ economy_age

TimerGameEconomy::Date Vehicle::economy_age {}

Age in economy days.

Definition at line 254 of file vehicle_base.h.

Referenced by GroupStatistics::CountVehicle(), and EconomyAgeVehicle().

## ◆ engine_type

EngineID Vehicle::engine_type = EngineID::Invalid()

The type of engine used for this vehicle.

Definition at line 278 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AfterLoadVehiclesPhase2(), AgeVehicle(), AircraftController(), BuildReplacementVehicle(), CanVehicleUseStation(), CheckConsistencyOfArticulatedVehicle(), CheckOrders(), CheckTrainAttachment(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildVehicle(), CmdCloneVehicle(), CmdReverseTrainDirection(), CmdStartStopVehicle(), ConnectMultiheadedTrains(), Train::ConsistChanged(), GroupStatistics::CountEngine(), Engine::DetermineCapacity(), DrawRoadVehDetails(), DrawShipDetails(), DrawTrainDetails(), FillNewGRFVehicleCache(), FindNearestHangar(), RoadVehicle::GetAirDrag(), Train::GetAirDrag(), GetCargoSubtypeText(), Train::GetCurveSpeedModifier(), Train::GetDisplayImageWidth(), GetLoadAmount(), RoadVehicle::GetMaxWeight(), Train::GetMaxWeight(), GetNewEngineType(), RoadVehicle::GetPower(), Train::GetPower(), GetRoadVehLength(), VehicleResolverObject::GetScope(), RoadVehicle::GetTractiveEffort(), Train::GetTractiveEffort(), GetVehiclePalette(), RoadVehicle::GetWeight(), Train::GetWeight(), IsVehicleRefittable(), LiveryHelper(), MaybeCrashAirplane(), DepotWindow::OnRightClick(), PrepareRefitAction::operator()(), Ship::PlayLeaveStationSound(), Train::PlayLeaveStationSound(), PlayVehicleSound(), PositionHelper(), RefitVehicle(), ReplaceChain(), NIHVehicle::Resolve(), RoadVehUpdateCache(), RunEconomyVehicleDayProc(), SpawnAdvancedVisualEffect(), TrainDetailsInfoTab(), UpdateAircraftCache(), Ship::UpdateCache(), Train::UpdateDeltaXY(), UpdateNumEngineGroup(), VehicleLengthChanged(), VehicleModelSorter(), VehicleResolverObject::VehicleResolverObject(), and VerifyAutoreplaceRefitForOrders().

## ◆ fill_percent_te_id

TextEffectID Vehicle::fill_percent_te_id = INVALID_TE_ID

a text-effect id to a loading indicator object

Definition at line 280 of file vehicle_base.h.

Referenced by CmdReverseTrainDirection(), Train::Crash(), LoadUnloadVehicle(), and Vehicle().

## ◆ first

Vehicle* Vehicle::first = nullptr
| private

NOSAVE: pointer to the first vehicle in the chain.

Definition at line 211 of file vehicle_base.h.

Referenced by CYapfFollowShipT< Types >::CreateRandomPath(), First(), SetNext(), and Vehicle().

## ◆ grf_cache

NewGRFCache Vehicle::grf_cache {}

Cache of often used calculated NewGRF values.

Definition at line 318 of file vehicle_base.h.

Referenced by FillNewGRFVehicleCache(), and InvalidateNewGRFCache().

## ◆ group_id

GroupID Vehicle::group_id = GroupID::Invalid()

Index of group Pool array.

Definition at line 321 of file vehicle_base.h.

Referenced by AddVehicleToGroup(), AgeVehicle(), CmdAutoreplaceVehicle(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildVehicle(), CmdCloneVehicle(), CopyHeadSpecificThings(), BaseVehicleListWindow::DrawVehicleListItems(), VehicleGroupWindow::DrawWidget(), FormatString(), GenerateVehicleSortList(), GroupStatistics::Get(), GetEngineLivery(), GetNewEngineType(), VEHSChunkHandler::Load(), VehicleGroupWindow::OnClick(), ShowCompanyGroupForVehicle(), UpdateTrainGroupID(), and Vehicle().

## ◆ hash_tile_current

Vehicle** Vehicle::hash_tile_current = nullptr

NOSAVE: Cache of the current hash chain.

Definition at line 247 of file vehicle_base.h.

## ◆ hash_tile_next

Vehicle* Vehicle::hash_tile_next = nullptr

NOSAVE: Next vehicle in the tile location hash.

Definition at line 245 of file vehicle_base.h.

## ◆ hash_tile_prev

Vehicle** Vehicle::hash_tile_prev = nullptr

NOSAVE: Previous vehicle in the tile location hash.

Definition at line 246 of file vehicle_base.h.

## ◆ hash_viewport_next

Vehicle* Vehicle::hash_viewport_next = nullptr

NOSAVE: Next vehicle in the visual location hash.

Definition at line 242 of file vehicle_base.h.

Referenced by CheckClickOnVehicle(), and ViewportAddVehicles().

## ◆ hash_viewport_prev

Vehicle** Vehicle::hash_viewport_prev = nullptr

NOSAVE: Previous vehicle in the visual location hash.

Definition at line 243 of file vehicle_base.h.

## ◆ last_loading_station

StationID Vehicle::last_loading_station = StationID::Invalid()

Last station the vehicle has stopped at and could possibly leave from with any cargo loaded.

Definition at line 293 of file vehicle_base.h.

Referenced by CmdBuildAircraft(), CmdBuildRailVehicle(), VEHSChunkHandler::Load(), LinkRefresher::Run(), Vehicle(), and VehicleEnterDepot().

## ◆ last_loading_tick

TimerGameTick::TickCounter Vehicle::last_loading_tick {}

Last TimerGameTick::counter tick that the vehicle has stopped at a station and could possibly leave with any cargo loaded.

Definition at line 294 of file vehicle_base.h.

## ◆ last_station_visited

StationID Vehicle::last_station_visited = StationID::Invalid()

The last station we stopped at.

Definition at line 292 of file vehicle_base.h.

Referenced by AircraftEntersTerminal(), CalcPercentVehicleFilled(), CmdBuildAircraft(), CmdBuildRailVehicle(), DeleteLastRoadVeh(), DeleteLastWagon(), FindNearestHangar(), OrderList::GetNextStoppingStation(), RoadVehicle::GetOrderStationLocation(), Ship::GetOrderStationLocation(), Train::GetOrderStationLocation(), VEHSChunkHandler::Load(), LoadUnloadVehicle(), PrepareUnload(), ProcessOrders(), LinkRefresher::RefreshStats(), VehicleOrderSaver::Restore(), Order::ShouldStopAtStation(), TrainEnterStation(), and Vehicle().

## ◆ load_unload_ticks

uint16_t Vehicle::load_unload_ticks = 0

Ticks to wait before starting next cycle.

Definition at line 307 of file vehicle_base.h.

Referenced by LoadUnloadVehicle(), PrepareUnload(), LinkRefresher::RefreshStats(), and UpdateLoadUnloadTicks().

## ◆ max_age

TimerGameCalendar::Date Vehicle::max_age {}

Maximum age.

Definition at line 255 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AgeVehicle(), CmdBuildAircraft(), CmdBuildRailVehicle(), DepotWindow::DrawVehicleInDepot(), BaseVehicleListWindow::DrawVehicleListItems(), VehicleDetailsWindow::DrawWidget(), NeedsAutorenewing(), ProcessConditionalOrder(), and VehicleTimeToLiveSorter().

## ◆ motion_counter

uint32_t Vehicle::motion_counter = 0

counter to occasionally play a vehicle sound.

Definition at line 286 of file vehicle_base.h.

## ◆ next

Vehicle* Vehicle::next = nullptr
| private

pointer to the next vehicle in the chain

Definition at line 209 of file vehicle_base.h.

Referenced by CancelReservation(), Next(), and SetNext().

## ◆ next_shared

Vehicle* Vehicle::next_shared = nullptr
| private

pointer to the next vehicle that shares the order

Definition at line 213 of file vehicle_base.h.

Referenced by AddToShared(), and NextShared().

## ◆ old_orders

uint32_t Vehicle::old_orders

Only used during conversion of old save games.

Definition at line 315 of file vehicle_base.h.

## ◆ orders

OrderList* Vehicle::orders = nullptr

Pointer to the order list for this vehicle.

Definition at line 314 of file vehicle_base.h.

Referenced by AddToShared(), ChangeTimetable(), CheckAircraftOrderDistance(), CheckOrders(), CmdAutofillTimetable(), CmdCloneOrder(), CmdInsertOrder(), CmdMoveOrder(), CmdMoveRailVehicle(), CmdSellRailWagon(), CmdSetTimetableStart(), CmdSetVehicleOnTime(), DeleteOrder(), DeleteVehicleOrders(), OrderBackup::DoRestore(), TimetableWindow::DrawArrivalDeparturePanel(), DrawOrderString(), TimetableWindow::DrawSummaryPanel(), TimetableWindow::DrawTimetablePanel(), FillTimetableArrivalDepartureTable(), FirstShared(), GetFirstOrder(), GetIncompatibleRefitOrderIdForAutoreplace(), GetLastOrder(), GetNextStoppingStation(), GetNumManualOrders(), GetNumOrders(), GetOrder(), GetOrderDistance(), InsertOrder(), IsOrderListShared(), TimetableWindow::OnPaint(), LinkRefresher::PredictNextOrder(), PrepareUnload(), LinkRefresher::RefreshLinks(), LinkRefresher::RefreshStats(), LinkRefresher::Run(), and UpdateVehicleTimetable().

## ◆ owner

Owner Vehicle::owner = INVALID_OWNER

Which company owns the vehicle?

Definition at line 270 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AgeVehicle(), AircraftEntersTerminal(), AircraftHandleDestTooFar(), CanBuildVehicleInfrastructure(), CcStartStopVehicle(), CheckIfTrainNeedsService(), CheckOrders(), CheckTrainCollision(), CheckTrainCollision(), CheckTrainStayInDepot(), CmdAutofillTimetable(), CmdAutoreplaceVehicle(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildShip(), CmdBuildVehicle(), CmdBulkChangeTimetable(), CmdChangeServiceInt(), CmdChangeTimetable(), CmdCloneOrder(), CmdCloneVehicle(), CmdDeleteOrder(), CmdForceTrainProceed(), CmdInsertOrder(), CmdModifyOrder(), CmdMoveOrder(), CmdMoveRailVehicle(), CmdOrderRefit(), CmdRefitVehicle(), CmdRenameVehicle(), CmdReverseTrainDirection(), CmdSellVehicle(), CmdSetTimetableStart(), CmdSetVehicleOnTime(), CmdSkipToOrder(), CmdStartStopVehicle(), CmdTurnRoadVeh(), CrashAirplane(), DeleteGroupHighlightOfVehicle(), DeleteLastWagon(), DisasterTick_Ufo(), DisasterVehicle::DisasterVehicle(), FindNearestHangar(), FixOwnerOfRailTrack(), FloodVehicle(), FollowTrainReservation(), FreeTrainTrackReservation(), GenerateVehicleSortList(), GroupStatistics::Get(), GroupStatistics::GetAllGroup(), GetVehiclePalette(), HandleStationRefit(), HasStationInUse(), LiveryHelper(), LoadUnloadVehicle(), MayLoadUnderExclusiveRights(), NeedsAutorenewing(), NeedsServicing(), NormaliseTrainHead(), OrdersWindow::OnClick(), VehicleDetailsWindow::OnDropdownSelect(), OrdersWindow::OnHotkey(), Aircraft::OnNewEconomyDay(), RoadVehicle::OnNewEconomyDay(), Ship::OnNewEconomyDay(), Train::OnNewEconomyDay(), OrdersWindow::OnPaint(), TimetableWindow::OnPaint(), VehicleDetailsWindow::OnPaint(), VehicleViewWindow::OnPaint(), ReplaceChain(), ReplaceFreeUnit(), ReverseTrainDirection(), RoadFindPathToDest(), RoadVehArrivesAt(), SetTrainGroupID(), ShipArrivesAt(), ShowCompanyGroupForVehicle(), TrainController(), TrainCrashed(), TrainEnterStation(), UpdateNumEngineGroup(), UpdateTrainGroupID(), VehicleDetailsWindow::VehicleDetailsWindow(), VehicleEnterDepot(), and WhoCanServiceIndustry().

## ◆ previous

Vehicle* Vehicle::previous = nullptr
| private

NOSAVE: pointer to the previous vehicle in the chain.

Definition at line 210 of file vehicle_base.h.

Referenced by Previous(), and SetNext().

## ◆ previous_shared

Vehicle* Vehicle::previous_shared = nullptr
| private

NOSAVE: pointer to the previous vehicle in the shared order chain.

Definition at line 214 of file vehicle_base.h.

Referenced by AddToShared(), and PreviousShared().

## ◆ profit_last_year

Money Vehicle::profit_last_year = 0

Profit last year << 8, low 8 bits are fract.

Definition at line 235 of file vehicle_base.h.

Referenced by CopyVehicleConfigAndStatistics().

## ◆ profit_this_year

Money Vehicle::profit_this_year = 0

Profit this year << 8, low 8 bits are fract.

Definition at line 234 of file vehicle_base.h.

Referenced by CopyVehicleConfigAndStatistics(), HandleStationRefit(), Aircraft::OnNewEconomyDay(), RoadVehicle::OnNewEconomyDay(), Ship::OnNewEconomyDay(), Train::OnNewEconomyDay(), and VehicleEnterDepot().

## ◆ progress

uint8_t Vehicle::progress = 0

The percentage (if divided by 256) this vehicle already crossed the tile unit.

Definition at line 287 of file vehicle_base.h.

Referenced by AircraftLeaveHangar(), GroundVehicle< T, Type >::DoUpdateSpeed(), HandleAircraftEnterHangar(), ShipAccelerate(), TrainController(), and UpdateAircraftSpeed().

## ◆ random_bits

uint16_t Vehicle::random_bits = 0

Bits used for randomized variational spritegroups.

Definition at line 290 of file vehicle_base.h.

Referenced by AddArticulatedParts(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), and VehicleScopeResolver::GetRandomBits().

## ◆ refit_cap

uint16_t Vehicle::refit_cap = 0

Capacity left over from before last refit.

Definition at line 300 of file vehicle_base.h.

Referenced by AddArticulatedParts(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), IncreaseStats(), RefitVehicle(), and ResetRefitCaps().

## ◆ reliability

uint16_t Vehicle::reliability = 0

Reliability.

Definition at line 258 of file vehicle_base.h.

Referenced by AircraftEventHandler_AtTerminal(), CmdBuildAircraft(), CmdBuildRailVehicle(), VehicleDetailsWindow::DrawWidget(), NeedsServicing(), ProcessConditionalOrder(), VehicleReliabilitySorter(), and VehicleServiceInDepot().

## ◆ reliability_spd_dec

uint16_t Vehicle::reliability_spd_dec = 0

Reliability decrease speed.

Definition at line 259 of file vehicle_base.h.

Referenced by AgeVehicle(), CmdBuildAircraft(), and CmdBuildRailVehicle().

## ◆ running_ticks

uint8_t Vehicle::running_ticks = 0

Number of ticks this vehicle was not stopped this day.

Definition at line 306 of file vehicle_base.h.

Referenced by Aircraft::OnNewEconomyDay(), RoadVehicle::OnNewEconomyDay(), Ship::OnNewEconomyDay(), Train::OnNewEconomyDay(), Aircraft::Tick(), RoadVehicle::Tick(), Ship::Tick(), and Train::Tick().

## ◆ sprite_cache

MutableSpriteCache Vehicle::sprite_cache {}
| mutable

Cache of sprites and values related to recalculating them, see MutableSpriteCache.

Definition at line 323 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AfterLoadVehiclesPhase2(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), DisasterTick_Helicopter_Rotors(), DoDrawVehicle(), IncrementSprite(), Aircraft::MarkDirty(), SetAircraftPosition(), SpecializedVehicle< T, Type >::SpecializedVehicle(), SpecializedVehicle< T, Type >::UpdateViewport(), Vehicle(), and ViewportAddVehicles().

## ◆ spritenum

uint8_t Vehicle::spritenum = 0

currently displayed sprite index 0xfd == custom sprite, 0xfe == custom second head sprite 0xff == reserved for another custom sprite

Definition at line 276 of file vehicle_base.h.

Referenced by AddArticulatedParts(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), ConnectMultiheadedTrains(), Aircraft::GetImage(), RoadVehicle::GetImage(), Ship::GetImage(), and Train::GetImage().

## ◆ subspeed

uint8_t Vehicle::subspeed = 0

fractional speed

Definition at line 284 of file vehicle_base.h.

Referenced by AircraftLeaveHangar(), AirportHasBlock(), AirportSetBlocks(), GroundVehicle< T, Type >::DoUpdateSpeed(), HandleAircraftEnterHangar(), MarkTrainAsStuck(), TrainController(), and UpdateAircraftSpeed().

## ◆ subtype

uint8_t Vehicle::subtype = 0

subtype (Filled with values from AircraftSubType/DisasterSubType/EffectVehicleType/GroundVehicleSubtypeFlags)

Definition at line 310 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AircraftController(), AircraftEventHandler_AtTerminal(), AircraftEventHandler_InHangar(), GroundVehicle< T, Type >::ClearArticulatedPart(), GroundVehicle< T, Type >::ClearEngine(), GroundVehicle< T, Type >::ClearFreeWagon(), GroundVehicle< T, Type >::ClearFrontEngine(), GroundVehicle< T, Type >::ClearMultiheaded(), GroundVehicle< T, Type >::ClearWagon(), CmdBuildAircraft(), CreateEffectVehicle(), DisasterVehicle::DisasterVehicle(), DrawAircraftImage(), FloodVehicleProc(), GetAircraftFlightLevelBounds(), GetAircraftHoldMaxAltitude(), EffectVehicle::GetTransparencyOption(), GroundVehicle< T, Type >::IsEngine(), GroundVehicle< T, Type >::IsFreeWagon(), GroundVehicle< T, Type >::IsMultiheaded(), Aircraft::IsNormalAircraft(), GroundVehicle< T, Type >::IsWagon(), Aircraft::MarkDirty(), ReleaseDisastersTargetingIndustry(), ReleaseDisasterVehicle(), SetAircraftPosition(), GroundVehicle< T, Type >::SetArticulatedPart(), GroundVehicle< T, Type >::SetEngine(), GroundVehicle< T, Type >::SetFreeWagon(), GroundVehicle< T, Type >::SetFrontEngine(), SetMouseCursorVehicle(), GroundVehicle< T, Type >::SetMultiheaded(), GroundVehicle< T, Type >::SetWagon(), Aircraft::Tick(), DisasterVehicle::Tick(), EffectVehicle::Tick(), and Aircraft::UpdateDeltaXY().

## ◆ tick_counter

uint8_t Vehicle::tick_counter = 0

Increased by one for each tick.

Definition at line 305 of file vehicle_base.h.

Referenced by DisasterTick_Aircraft(), DisasterTick_Big_Ufo(), DisasterTick_Big_Ufo_Destroyer(), DisasterTick_Helicopter_Rotors(), DisasterTick_Submarine(), DisasterTick_Ufo(), DisasterTick_Zeppeliner(), HandleAircraftSmoke(), HandleCrashedTrain(), RoadVehIsCrashed(), ShipMoveUpDownOnLock(), ShowVisualEffect(), Aircraft::Tick(), RoadVehicle::Tick(), Train::Tick(), and TrainController().

## ◆ tile

TileIndex Vehicle::tile = INVALID_TILE

Current tile index.

Definition at line 225 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AdvanceWagonsAfterSwap(), AfterLoadGame(), AircraftController(), AircraftEventHandler_InHangar(), AircraftLeaveHangar(), BuildReplacementVehicle(), CancelReservation(), CcBuildWagon(), CheckNextTrainTile(), CYapfFollowShipT< Types >::CheckShipReverse(), CheckShipStayInDepot(), CheckTrainCollision(), CheckTrainStayInDepot(), CmdAddVehicleGroup(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildSingleSignal(), CmdBuildVehicle(), CmdMoveRailVehicle(), CmdRefitVehicle(), CmdReverseTrainDirection(), CmdSellRailWagon(), CmdStartStopVehicle(), CmdTurnRoadVeh(), Crash(), RoadVehicle::Crash(), Train::Crash(), CreateEffectVehicle(), CYapfFollowShipT< Types >::CreateRandomPath(), DeleteDepotHighlightOfVehicle(), DeleteLastRoadVeh(), DeleteLastWagon(), DetermineNextTrainForceProceeding(), DisasterTick_Big_Ufo(), DisasterTick_Big_Ufo_Destroyer(), DisasterTick_Submarine(), DisasterTick_Ufo(), DisasterTick_Zeppeliner(), DisasterVehicle::DisasterVehicle(), FixupTrainLengths(), FloodVehicle(), FloodVehicleProc(), FollowTrainReservation(), FreeTrainReservation(), FreeTrainTrackReservation(), Train::GetAccelerationType(), Train::GetCurrentMaxSpeed(), Train::GetCurveSpeedLimit(), RoadVehicle::GetMaxTrackSpeed(), Train::GetMaxTrackSpeed(), GetNewVehiclePos(), Train::GetPower(), Train::GetPoweredPartPower(), IsBridgeAboveVehicle(), Aircraft::IsInDepot(), RoadStop::Leave(), LoadUnloadVehicle(), NormalizeTrainVehInDepot(), OrdersWindow::OnClick(), RefitWindow::OnClick(), VehicleViewWindow::OnClick(), DepotWindow::OnDragDrop(), OrdersWindow::OnDropdownSelect(), Train::OnNewEconomyDay(), OrdersWindow::OnPlaceObject(), OrdersWindow::OnQueryTextFinished(), OrdersWindow::OrderClick_Delete(), OrdersWindow::OrderClick_FullLoad(), OrdersWindow::OrderClick_NearestDepot(), OrdersWindow::OrderClick_Nonstop(), OrdersWindow::OrderClick_Refit(), OrdersWindow::OrderClick_Service(), OrdersWindow::OrderClick_Skip(), OrdersWindow::OrderClick_StopSharing(), OrdersWindow::OrderClick_Unload(), PreDestructor(), ProcessOrders(), Train::ReserveTrackUnderConsist(), OrderBackup::Restore(), RestoreTrainReservation(), ReverseTrainDirection(), ReverseTrainSwapVeh(), RoadFindPathToDest(), CYapfFollowRoadT< Types >::SetOriginFromVehiclePos(), ShipTestUpDownOnLock(), ShowVisualEffect(), StartStopVehicle(), TicksToLeaveDepot(), RoadVehicle::TileMayHaveSlopedTrack(), TrainApproachingCrossingTile(), TrainCanLeaveTile(), TrainCheckIfLineEnds(), TrainController(), TrainCrashed(), TrainEnterStation(), TryPathReserve(), UpdateLoadUnloadTicks(), DisasterVehicle::UpdatePosition(), UpdateStatusAfterSwap(), VehicleEnter_Track(), VehicleEnterDepot(), YapfRoadVehicleFindNearestDepot(), YapfTrainCheckReverse(), and YapfTrainFindNearestDepot().

## ◆ trip_occupancy

int8_t Vehicle::trip_occupancy = 0

NOSAVE: Occupancy of vehicle of the current trip (updated after leaving a station).

Definition at line 302 of file vehicle_base.h.

## ◆ unitnumber

UnitID Vehicle::unitnumber {}

unit number, for display purposes only

Definition at line 281 of file vehicle_base.h.

Referenced by CmdBuildVehicle(), CopyVehicleConfigAndStatistics(), DepotWindow::DrawVehicleInDepot(), BaseVehicleListWindow::DrawVehicleListItems(), FormatString(), NormaliseTrainHead(), VehicleNumberSorter(), and VehicleTimetableSorter().

## ◆ value

Money Vehicle::value = 0

Value of the vehicle.

Definition at line 236 of file vehicle_base.h.

Referenced by AddArticulatedParts(), CmdBuildVehicle(), CmdSellVehicle(), DecreaseVehicleValue(), DrawRoadVehDetails(), DrawShipDetails(), TrainDetailsInfoTab(), and VehicleValueSorter().

## ◆ vcache

VehicleCache Vehicle::vcache {}

Cache of often used vehicle values.

Definition at line 319 of file vehicle_base.h.

Referenced by Train::ConsistChanged(), GetAircraftFlightLevelBounds(), Ship::GetCurrentMaxSpeed(), Aircraft::GetDisplayMaxSpeed(), RoadVehicle::GetDisplayMaxSpeed(), Ship::GetDisplayMaxSpeed(), Train::GetDisplayMaxSpeed(), LoadUnloadVehicle(), RoadVehUpdateCache(), ShipAccelerate(), ShowVisualEffect(), UpdateAircraftCache(), UpdateAircraftSpeed(), Ship::UpdateCache(), and VehicleMaxSpeedSorter().

## ◆ vehstatus

VehStates Vehicle::vehstatus {}

Status.

Definition at line 309 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AdvanceWagonsAfterSwap(), AfterLoadGame(), AfterLoadVehiclesPhase2(), AgeVehicle(), AircraftController(), AircraftEventHandler_InHangar(), AircraftLeaveHangar(), CcStartStopVehicle(), ChangeTrainDirRandomly(), CheckClickOnVehicle(), CheckOrders(), CheckShipStayInDepot(), CheckTrainStayInDepot(), CmdAutoreplaceVehicle(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildSingleSignal(), CmdMoveRailVehicle(), CmdRefitVehicle(), CmdReverseTrainDirection(), CmdSellVehicle(), CmdStartStopVehicle(), CmdTurnRoadVeh(), CopyHeadSpecificThings(), Crash(), CreateEffectVehicle(), DeleteLastWagon(), DetermineNextTrainForceProceeding(), DisasterTick_Ufo(), DisasterVehicle::DisasterVehicle(), DoDrawVehicle(), DrawAircraftImage(), DrawRoadVehImage(), DrawTrainDetails(), DrawTrainImage(), DepotWindow::DrawVehicleInDepot(), VehicleViewWindow::DrawWidget(), FindClosestTrainDepot(), FixupTrainLengths(), FloodVehicleProc(), RoadVehicle::GetAccelerationStatus(), Train::GetAccelerationStatus(), Train::GetAirDragArea(), RoadVehicle::GetVehicleTrackdir(), Ship::GetVehicleTrackdir(), Train::GetVehicleTrackdir(), HandleAircraftEnterHangar(), HandleAircraftSmoke(), HandleCrashedTrain(), Aircraft::IsInDepot(), IsStoppedInDepot(), LeaveUnbunchingDepot(), NeedsServicing(), PreDestructor(), ReverseTrainSwapVeh(), SetMouseCursorVehicle(), ShowVisualEffect(), Aircraft::Tick(), RoadVehicle::Tick(), Ship::Tick(), Train::Tick(), TrainApproachingCrossingEnum(), TrainApproachingCrossingTile(), TrainApproachingLineEnd(), TrainCheckIfLineEnds(), TrainController(), TrainCrashed(), UpdateAircraftSpeed(), VehicleEnter_Track(), VehicleEnterDepot(), VehicleEnteredDepotThisTick(), and ViewportAddVehicles().

## ◆ waiting_random_triggers

VehicleRandomTriggers Vehicle::waiting_random_triggers

Triggers to be yet matched before rerandomizing the random bits.

Definition at line 289 of file vehicle_base.h.

Referenced by VehicleScopeResolver::GetRandomTriggers().

## ◆ x_pos

int32_t Vehicle::x_pos = 0

x coordinate.

Definition at line 265 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AircraftController(), AircraftGetEntryPoint(), AircraftLandAirplane(), AircraftLeaveHangar(), CcStartStopVehicle(), CheckTrainCollision(), CheckTrainCollision(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CrashAirplane(), CreateEffectVehicle(), CreateEffectVehicleRel(), DisasterTick_Aircraft(), DisasterTick_Big_Ufo(), DisasterTick_Big_Ufo_Destroyer(), DisasterTick_Ufo(), DisasterTick_Zeppeliner(), DisasterVehicle::DisasterVehicle(), DoDrawVehicle(), FindNearestHangar(), FixVehicleInclination(), GetNewVehiclePos(), GetTileHeightBelowAircraft(), HandleAircraftEnterHangar(), HandleCrashedAircraft(), HandleViewportScroll(), InitializeWindowViewport(), IsBridgeAboveVehicle(), LoadUnloadVehicle(), NewsWindow::OnClick(), VehicleViewWindow::OnClick(), IntroGameViewportCommand::PositionForViewport(), ReverseTrainSwapVeh(), SetAircraftPosition(), ShipTestUpDownOnLock(), TicksToLeaveDepot(), TrainApproachingLineEnd(), TrainController(), Ship::UpdateDeltaXY(), DisasterVehicle::UpdatePosition(), UpdateStatusAfterSwap(), UpdateViewportPosition(), GroundVehicle< T, Type >::UpdateZPosition(), GroundVehicle< T, Type >::UpdateZPositionAndInclination(), VehicleEnterDepot(), and YapfTrainCheckReverse().

## ◆ y_pos

int32_t Vehicle::y_pos = 0

y coordinate.

Definition at line 266 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AircraftController(), AircraftGetEntryPoint(), AircraftLandAirplane(), AircraftLeaveHangar(), CcStartStopVehicle(), CheckTrainCollision(), CheckTrainCollision(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CrashAirplane(), CreateEffectVehicle(), CreateEffectVehicleRel(), DisasterTick_Aircraft(), DisasterTick_Big_Ufo(), DisasterTick_Big_Ufo_Destroyer(), DisasterTick_Ufo(), DisasterTick_Zeppeliner(), DisasterVehicle::DisasterVehicle(), DoDrawVehicle(), FindNearestHangar(), FixVehicleInclination(), GetNewVehiclePos(), GetTileHeightBelowAircraft(), HandleAircraftEnterHangar(), HandleCrashedAircraft(), HandleViewportScroll(), InitializeWindowViewport(), IsBridgeAboveVehicle(), LoadUnloadVehicle(), NewsWindow::OnClick(), VehicleViewWindow::OnClick(), IntroGameViewportCommand::PositionForViewport(), ReverseTrainSwapVeh(), SetAircraftPosition(), ShipTestUpDownOnLock(), TicksToLeaveDepot(), TrainApproachingLineEnd(), TrainController(), Ship::UpdateDeltaXY(), DisasterVehicle::UpdatePosition(), UpdateStatusAfterSwap(), UpdateViewportPosition(), GroundVehicle< T, Type >::UpdateZPosition(), GroundVehicle< T, Type >::UpdateZPositionAndInclination(), VehicleEnterDepot(), and YapfTrainCheckReverse().

## ◆ z_pos

int32_t Vehicle::z_pos = 0

z coordinate.

Definition at line 267 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AffectSpeedByZChange(), AircraftController(), AircraftLeaveHangar(), CcStartStopVehicle(), CheckTrainCollision(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CreateEffectVehicle(), CreateEffectVehicleRel(), DisasterTick_Big_Ufo(), DisasterTick_Submarine(), DisasterTick_Ufo(), DisasterTick_Zeppeliner(), DisasterVehicle::DisasterVehicle(), DoDrawVehicle(), FloodVehicleProc(), HandleAircraftEnterHangar(), HandleCrashedAircraft(), HandleViewportScroll(), InitializeWindowViewport(), LoadUnloadVehicle(), NewsWindow::OnClick(), VehicleViewWindow::OnClick(), IntroGameViewportCommand::PositionForViewport(), ReleaseDisasterVehicle(), ReverseTrainSwapVeh(), SetAircraftPosition(), ShipMoveUpDownOnLock(), ShipTestUpDownOnLock(), GroundVehicle< T, Type >::UpdateInclination(), DisasterVehicle::UpdatePosition(), UpdateViewportPosition(), GroundVehicle< T, Type >::UpdateZPosition(), GroundVehicle< T, Type >::UpdateZPositionAndInclination(), and VehicleEnterDepot().

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

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