OpenTTD Source 20250312-master-gcdcc6b491d
Vehicle Struct Reference

Vehicle data structure. More...

#include <vehicle_base.h>

Inheritance diagram for Vehicle:
Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool > BaseVehicle BaseConsist SpecializedVehicle< Aircraft, VEH_AIRCRAFT > SpecializedVehicle< DisasterVehicle, VEH_DISASTER > SpecializedVehicle< EffectVehicle, VEH_EFFECT > SpecializedVehicle< RoadVehicle, Type > SpecializedVehicle< Ship, VEH_SHIP > SpecializedVehicle< Train, Type > SpecializedVehicle< T, Type > Aircraft DisasterVehicle EffectVehicle Ship GroundVehicle< RoadVehicle, VEH_ROAD > GroundVehicle< Train, VEH_TRAIN > GroundVehicle< T, Type > RoadVehicle Train

Data Structures

struct  IterateWrapper
 Iterable ensemble of orders. More...
 
struct  OrderIterator
 Iterator to iterate orders Supports deletion of current order. More...
 

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.
 
GroundVehicleCacheGetGroundVehicleCache ()
 Access the ground vehicle cache of the vehicle.
 
const GroundVehicleCacheGetGroundVehicleCache () 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 EngineGetEngine () 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 GRFFileGetGRF () 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)
 
debug_inline 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.
 
VehicleNext () const
 Get the next vehicle of this vehicle.
 
VehiclePrevious () const
 Get the previous vehicle of this vehicle.
 
VehicleFirst () const
 Get the first vehicle of this vehicle chain.
 
VehicleLast ()
 Get the last vehicle of this vehicle chain.
 
const VehicleLast () const
 Get the last vehicle of this vehicle chain.
 
VehicleMove (int n)
 Get the vehicle at offset n of this vehicle chain.
 
const VehicleMove (int n) const
 Get the vehicle at offset n of this vehicle chain.
 
OrderGetFirstOrder () const
 Get the first order of the vehicles order list.
 
void AddToShared (Vehicle *shared_chain)
 Adds this vehicle to a shared vehicle chain.
 
void RemoveFromShared ()
 Removes the vehicle from the shared order list.
 
VehicleNextShared () const
 Get the next vehicle of the shared vehicle chain.
 
VehiclePreviousShared () const
 Get the previous vehicle of the shared vehicle chain.
 
VehicleFirstShared () const
 Get the first vehicle of this vehicle chain.
 
bool IsOrderListShared () const
 Check if we share our orders with another vehicle.
 
VehicleOrderID GetNumOrders () const
 Get the number of orders this vehicle has.
 
VehicleOrderID GetNumManualOrders () const
 Get the number of manually added orders this vehicle has.
 
StationIDStack GetNextStoppingStation () const
 Get the next station the vehicle will stop at.
 
void ResetRefitCaps ()
 Reset all refit_cap in the consist to cargo_cap.
 
void 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 resetted for the new vehicle.
 
bool HandleBreakdown ()
 Handle all of the aspects of a vehicle breakdown This includes adding smoke and sounds, and ending the breakdown when appropriate.
 
bool NeedsAutorenewing (const Company *c, bool use_renew_setting=true) const
 Function to tell if a vehicle needs to be autorenewed.
 
bool NeedsServicing () const
 Check if the vehicle needs to go to a depot in near future (if a opportunity presents itself) for service or replacement.
 
bool NeedsAutomaticServicing () const
 Checks if the current order should be interrupted for a service-in-depot order.
 
virtual TileIndex GetOrderStationLocation (StationID station)
 Determine the location for the station where the vehicle goes to next.
 
virtual 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.
 
OrderGetOrder (int index) const
 Returns order 'index' of a vehicle or nullptr when it doesn't exists.
 
OrderGetLastOrder () 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.
 
debug_inline 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.
 
VehicleGetNextArticulatedPart () const
 Get the next part of an articulated engine.
 
VehicleGetFirstEnginePart ()
 Get the first part of an articulated engine.
 
const VehicleGetFirstEnginePart () const
 Get the first part of an articulated engine.
 
VehicleGetLastEnginePart ()
 Get the last part of an articulated engine.
 
VehicleGetNextVehicle () const
 Get the next real (non-articulated part) vehicle in the consist.
 
VehicleGetPrevVehicle () const
 Get the previous real (non-articulated part) vehicle in the consist.
 
IterateWrapper Orders () const
 Returns an iterable ensemble of orders of a vehicle.
 
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.
 
CargoPaymentcargo_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.
 
Vehiclehash_viewport_next = nullptr
 NOSAVE: Next vehicle in the visual location hash.
 
Vehicle ** hash_viewport_prev = nullptr
 NOSAVE: Previous vehicle in the visual location hash.
 
Vehiclehash_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
 
uint8_t x_extent = 0
 x-extent of vehicle bounding box
 
uint8_t y_extent = 0
 y-extent of vehicle bounding box
 
uint8_t z_extent = 0
 z-extent of vehicle bounding box
 
int8_t x_bb_offs = 0
 x offset of vehicle bounding box
 
int8_t y_bb_offs = 0
 y offset of vehicle bounding box
 
int8_t x_offs = 0
 x offset for vehicle sprite
 
int8_t y_offs = 0
 y offset for vehicle sprite
 
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.
 
uint8_t waiting_triggers = 0
 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...
 
   Order *   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.
 
uint16_t vehicle_flags = 0
 Used for gradual loading and other miscellaneous things (.
 

Private Types

typedef std::list< RefitDescRefitList
 

Private Member Functions

void SkipToNextRealOrderIndex ()
 Advance cur_real_order_index to the next real order.
 

Private Attributes

Vehiclenext = nullptr
 pointer to the next vehicle in the chain
 
Vehicleprevious = nullptr
 NOSAVE: pointer to the previous vehicle in the chain.
 
Vehiclefirst = nullptr
 NOSAVE: pointer to the first vehicle in the chain.
 
Vehiclenext_shared = nullptr
 pointer to the next vehicle that shares the order
 
Vehicleprevious_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 239 of file vehicle_base.h.

Member Typedef Documentation

◆ RefitList

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

Definition at line 241 of file vehicle_base.h.

Constructor & Destructor Documentation

◆ Vehicle()

Vehicle::Vehicle ( VehicleType  type = VEH_INVALID)

◆ ~Vehicle()

Member Function Documentation

◆ AddToShared()

void Vehicle::AddToShared ( Vehicle shared_chain)

Adds this vehicle to a shared vehicle chain.

Parameters
shared_chaina vehicle of the chain with shared vehicles.
Precondition
!this->IsOrderListShared()

Definition at line 2957 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 2194 of file vehicle.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_orderlist_pool >::CanAllocateItem(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_order_pool >::CanAllocateItem(), ClrBit(), TimerGameTick::counter, BaseConsist::cur_implicit_order_index, BaseConsist::cur_real_order_index, cur_speed, current_order, DeleteOrder(), DeleteUnreachedImplicitOrders(), SpecializedStation< Station, false >::Get(), Order::GetDestination(), GetGroundVehicleFlags(), GetLastOrder(), Order::GetLoadType(), GetNumManualOrders(), OrderList::GetNumOrders(), GetNumOrders(), GetOrder(), GetWindowClassForVehicleType(), GVF_SUPPRESS_IMPLICIT_ORDERS, HasBit(), IMPLICIT_ORDER_ONLY_CAP, IncreaseStats(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >::index, InsertOrder(), InvalidateVehicleOrder(), IsGroundVehicle(), IsTileType(), Order::IsType(), last_loading_station, last_loading_tick, last_station_visited, Order::MakeImplicit(), Order::MakeLoading(), MarkDirty(), Station::MarkTilesDirty(), MAX_VEH_ORDER_ID, MP_STATION, Order::next, OLFB_NO_LOAD, ONSF_NO_STOP_AT_ANY_STATION, orders, OUFB_NO_UNLOAD, owner, PrepareUnload(), Order::SetNonStopType(), SetWindowDirty(), SetWindowWidgetDirty(), tile, BaseVehicle::type, UpdateVehicleTimetable(), VEH_SHIP, WC_STATION_VIEW, WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW, and WID_VV_START_STOP.

Referenced by AircraftEntersTerminal(), and TrainEnterStation().

◆ CancelReservation()

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

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

Parameters
stthe station where the reserved packets should go.

Definition at line 2325 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.

Referenced by LeaveStation(), and PreDestructor().

◆ 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 resetted for the new vehicle.

Parameters
srcThe old vehicle

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

◆ DeleteUnreachedImplicitOrders()

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

Referenced by SendToDepot(), and UpdateOrderDest().

◆ First()

◆ FirstShared()

◆ 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 452 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
speedDirection-independent unscaled speed.
Returns
speed, scaled to match GetAdvanceDistance().

Definition at line 440 of file vehicle_base.h.

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

◆ GetCargoTile()

virtual TileIndex Vehicle::GetCargoTile ( ) const
inlinevirtual

Definition at line 793 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 531 of file vehicle_base.h.

Referenced by ShowVisualEffect().

◆ 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 525 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 3233 of file vehicle.cpp.

References Next().

Referenced by GetDisplayMinPowerToWeight().

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

References GroundVehicleCache::cached_power, GetDisplayMaxWeight(), and GetGroundVehicleCache().

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 618 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 612 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 606 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 519 of file vehicle_base.h.

◆ GetEngine()

◆ GetExpenseType()

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

Sets the expense type associated to this vehicle type.

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

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 461 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 978 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 989 of file vehicle_base.h.

References IsArticulatedPart(), and Previous().

◆ GetFirstOrder()

Order * Vehicle::GetFirstOrder ( ) const
inline

Get the first order of the vehicles order list.

Returns
first order of order list.

Definition at line 700 of file vehicle_base.h.

References OrderList::GetFirstOrder(), and orders.

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

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

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

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

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

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

◆ GetGroundVehicleCache() [1/2]

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

References SpecializedVehicle< T, Type >::From(), IsGroundVehicle(), BaseVehicle::type, 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 3174 of file vehicle.cpp.

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

Referenced by BeginLoading(), DeleteUnreachedImplicitOrders(), InsertOrder(), SendToDepot(), 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 3189 of file vehicle.cpp.

References SpecializedVehicle< T, Type >::From(), IsGroundVehicle(), BaseVehicle::type, 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
directionthe direction the vehicle is facing
[out]resultVehicle sprite sequence.

Reimplemented in Aircraft, RoadVehicle, Ship, and Train.

Definition at line 481 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 1000 of file vehicle_base.h.

References GetNextArticulatedPart(), and HasArticulatedPart().

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

◆ GetLastOrder()

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

References OrderList::GetLastOrder(), and orders.

Referenced by BeginLoading(), CheckOrders(), and 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 369 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 968 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()

StationIDStack Vehicle::GetNextStoppingStation ( ) 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 745 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 1011 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 739 of file vehicle_base.h.

References OrderList::GetNumManualOrders(), and orders.

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

◆ GetNumOrders()

◆ 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
speedDirection-independent unscaled speed.
Returns
speed scaled by movement direction. 256 units are required for each movement step.

Definition at line 423 of file vehicle_base.h.

Referenced by UpdateAircraftSpeed().

◆ GetOrder()

◆ 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
stationthe 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 791 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 1024 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 537 of file vehicle_base.h.

Referenced by GetDisplayRunningCost().

◆ GetServiceInterval()

uint16_t Vehicle::GetServiceInterval ( ) const
inline

Definition at line 815 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 600 of file vehicle_base.h.

References INVALID_TRACKDIR.

◆ HandleBreakdown()

◆ 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
modeis the non-first call for this vehicle in this tick?

Definition at line 2421 of file vehicle.cpp.

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

◆ 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_foundWhether the vehicle has a path to its destination.

Definition at line 788 of file vehicle.cpp.

References _local_company, _settings_client, AddVehicleAdviceNewsItem(), ClrBit(), DeleteVehicleNews(), GetEncodedString(), GetWindowClassForVehicleType(), ClientSettings::gui, HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >::index, InvalidateWindowClassesData(), GUISettings::lost_vehicle_warn, AI::NewEvent(), owner, BaseConsist::ResetDepotUnbunching(), SetBit(), SetWindowWidgetDirty(), BaseVehicle::type, BaseConsist::vehicle_flags, VehicleLost, VF_PATHFINDER_LOST, WC_VEHICLE_VIEW, and WID_VV_START_STOP.

Referenced by ChooseShipTrack(), and RoadFindPathToDest().

◆ HasArticulatedPart()

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

References Orders().

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

References Orders().

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

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

Referenced by 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 2456 of file vehicle.cpp.

References OLF_FULL_LOAD_ANY, OLFB_FULL_LOAD, and Orders().

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

References ODATFB_UNBUNCH, and Orders().

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

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

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

◆ 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 881 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(), SendToDepot(), and UpdateOrderDest().

◆ InvalidateNewGRFCache()

void Vehicle::InvalidateNewGRFCache ( )
inline

Invalidates cached NewGRF variables.

See also
InvalidateNewGRFCacheOfChain

Definition at line 490 of file vehicle_base.h.

References NewGRFCache::cache_valid, and grf_cache.

Referenced by RefitWindow::BuildRefitList(), CheckTrainAttachment(), CmdBuildRoadVehicle(), 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 499 of file vehicle_base.h.

References Next().

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

◆ IsArticulatedPart()

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

References IsInDepot().

Referenced by 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 711 of file vehicle.cpp.

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

Referenced by AddVehicleToGroup(), and PreDestructor().

◆ IsFrontEngine()

◆ IsGroundVehicle()

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

Referenced by BuildDepotVehicleListProc(), IsChainInDepot(), and IsWaitingForUnbunching().

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

References OrderList::IsShared(), and orders.

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

◆ IsPrimaryVehicle()

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

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

Referenced by CmdAutoreplaceVehicle(), CmdMoveRailVehicle(), CmdRefitVehicle(), CmdReverseTrainDirection(), CmdSellVehicle(), CmdStartStopVehicle(), DeleteStaleLinks(), IsVehicleRefitable(), and SendToDepot().

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

References TimerGameTick::counter, BaseConsist::depot_unbunching_next_departure, GetNumOrders(), IsInDepot(), IsOrderListShared(), and PreviousOrderIsUnbunching().

Referenced by AircraftEventHandler_InHangar(), 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 646 of file vehicle_base.h.

References Next().

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

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

References Next().

◆ LeaveStation()

◆ LeaveUnbunchingDepot()

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

References coord.

Referenced by UpdateViewport(), and ~Vehicle().

◆ Move() [1/2]

Vehicle * Vehicle::Move ( int  n)
inline

Get the vehicle at offset n of this vehicle chain.

Parameters
nOffset from the current vehicle.
Returns
The new vehicle or nullptr if the offset is out-of-bounds.

Definition at line 669 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
nOffset from the current vehicle.
Returns
The new vehicle or nullptr if the offset is out-of-bounds.

Definition at line 685 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 272 of file vehicle.cpp.

References current_order, HasDepotOrder(), Order::IsType(), NeedsServicing(), and ODTFB_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
*cThe vehicle owner
use_renew_settingShould the company renew setting be considered?
Returns
true if the vehicle is old enough for replacement

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

◆ Next()

◆ NextShared()

◆ 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 572 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 577 of file vehicle_base.h.

Referenced by RunEconomyVehicleDayProc().

◆ Orders()

IterateWrapper Vehicle::Orders ( ) const
inline

Returns an iterable ensemble of orders of a vehicle.

Returns
an iterable ensemble of orders of a vehicle

Definition at line 1078 of file vehicle_base.h.

References orders.

Referenced by CheckForValidOrders(), CheckOrders(), CmdCloneOrder(), CmdMoveOrder(), DeleteOrder(), HasConditionalOrder(), HasDepotOrder(), HasFullLoadOrder(), HasUnbunchingOrder(), InsertOrder(), OrderBackup::OrderBackup(), VerifyAutoreplaceRefitForOrders(), and WhoCanServiceIndustry().

◆ PlayLeaveStationSound()

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

Play the sound associated with leaving the station.

Parameters
forceShould we play the sound even if sound effects are muted? (horn hotkey)

Reimplemented in Ship, and Train.

Definition at line 467 of file vehicle_base.h.

Referenced by HandleLoading(), and VehicleViewWindow::OnHotkey().

◆ PreDestructor()

void Vehicle::PreDestructor ( )

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

Definition at line 822 of file vehicle.cpp.

References _local_company, Station::airport, Airport::blocks, CancelReservation(), cargo, cargo_payment, Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >::CleaningPool(), OrderBackup::ClearVehicle(), CloseWindowById(), GroupStatistics::CountEngine(), GroupStatistics::CountVehicle(), Crashed, DeleteDepotHighlightOfVehicle(), DeleteGroupHighlightOfVehicle(), DeleteVehicleOrders(), RoadVehicle::disaster_vehicle, engine_type, fill_percent_te_id, 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(), group_id, HideFillingPercent(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >::index, InvalidateAutoreplaceWindow(), InvalidateWindowClassesData(), InvalidateWindowData(), IsEngineCountable(), IsInsideMM(), IsPrimaryVehicle(), SpecializedStation< Station, false >::IsValidID(), last_station_visited, AirportFTAClass::layout, RoadStop::Leave(), owner, Aircraft::pos, Previous(), 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, VehicleCargoList::Truncate(), BaseVehicle::type, unitnumber, 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 634 of file vehicle_base.h.

References previous.

Referenced by AddCargoIconOverlay(), AgeVehicle(), Crash(), GetFirstEnginePart(), GetFirstEnginePart(), GetPrevVehicle(), LoadUnloadVehicle(), Move(), Move(), PreDestructor(), 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 715 of file vehicle_base.h.

References previous_shared.

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

◆ ReleaseUnitNumber()

void Vehicle::ReleaseUnitNumber ( )

◆ RemoveFromShared()

◆ ResetRefitCaps()

void Vehicle::ResetRefitCaps ( )

Reset all refit_cap in the consist to cargo_cap.

Definition at line 2402 of file vehicle.cpp.

References cargo_cap, Next(), and refit_cap.

Referenced by LeaveStation().

◆ SendToDepot()

◆ ServiceIntervalIsCustom()

bool Vehicle::ServiceIntervalIsCustom ( ) const
inline

Definition at line 819 of file vehicle_base.h.

◆ ServiceIntervalIsPercent()

bool Vehicle::ServiceIntervalIsPercent ( ) const
inline

Definition at line 821 of file vehicle_base.h.

◆ SetDestTile()

virtual void Vehicle::SetDestTile ( TileIndex  tile)
inlinevirtual

Definition at line 802 of file vehicle_base.h.

◆ SetNext()

void Vehicle::SetNext ( Vehicle next)

Set the next vehicle of this vehicle.

Parameters
nextthe next vehicle. nullptr removes the next vehicle.

Definition at line 2928 of file vehicle.cpp.

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

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

◆ SetServiceInterval()

void Vehicle::SetServiceInterval ( uint16_t  interval)
inline

Definition at line 817 of file vehicle_base.h.

◆ SetServiceIntervalIsCustom()

void Vehicle::SetServiceIntervalIsCustom ( bool  on)
inline

Definition at line 823 of file vehicle_base.h.

◆ SetServiceIntervalIsPercent()

void Vehicle::SetServiceIntervalIsPercent ( bool  on)
inline

Definition at line 825 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
intervalNumber of days to be added or subtracted.

Definition at line 774 of file vehicle.cpp.

References date_of_last_service.

◆ ShowVisualEffect()

◆ 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 838 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 567 of file vehicle_base.h.

◆ UpdateBoundingBoxCoordinates()

void Vehicle::UpdateBoundingBoxCoordinates ( bool  update_cache) const

Update the bounding box co-ordinates of the vehicle.

Parameters
update_cacheUpdate the cached values for previous co-ordinate values

Definition at line 1693 of file vehicle.cpp.

References coord, VehicleSpriteSeq::GetBounds(), INVALID_COORD, MutableSpriteCache::old_coord, RemapCoords(), sprite_cache, MutableSpriteCache::sprite_seq, x_offs, x_pos, y_offs, y_pos, and z_pos.

Referenced by UpdateViewport(), and 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 408 of file vehicle_base.h.

◆ UpdatePosition()

void Vehicle::UpdatePosition ( )

◆ UpdatePositionAndViewport()

void Vehicle::UpdatePositionAndViewport ( )

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

Definition at line 1755 of file vehicle.cpp.

References UpdatePosition(), and UpdateViewport().

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 896 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
dirtyMark the (new and old) coordinates of the vehicle as dirty.

Definition at line 1726 of file vehicle.cpp.

References coord, INVALID_COORD, MutableSpriteCache::is_viewport_candidate, MarkAllViewportsDirty(), MutableSpriteCache::old_coord, sprite_cache, and UpdateBoundingBoxCoordinates().

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

◆ UpdateVisualEffect()

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
lsState (buffer) of the currently loaded game.
numThe number of vehicles to load.
Returns
True iff loading went without problems.

Definition at line 1250 of file oldloader_sl.cpp.

◆ SlVehicleCommon

friend class SlVehicleCommon
friend

Definition at line 255 of file vehicle_base.h.

◆ SlVehicleDisaster

friend class SlVehicleDisaster
friend

Definition at line 256 of file vehicle_base.h.

Field Documentation

◆ acceleration

uint8_t Vehicle::acceleration = 0

◆ age

◆ breakdown_chance

uint8_t Vehicle::breakdown_chance = 0

Current chance of breakdowns.

Definition at line 297 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 294 of file vehicle_base.h.

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

◆ breakdown_delay

uint8_t Vehicle::breakdown_delay = 0

Counter for managing breakdown length.

Definition at line 295 of file vehicle_base.h.

Referenced by DisasterTick_Ufo(), and HandleBreakdown().

◆ breakdowns_since_last_service

uint8_t Vehicle::breakdowns_since_last_service = 0

Counter for the amount of breakdowns.

Definition at line 296 of file vehicle_base.h.

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

◆ build_year

◆ cargo

◆ cargo_age_counter

uint16_t Vehicle::cargo_age_counter = 0

Ticks till cargo is aged next.

Definition at line 341 of file vehicle_base.h.

Referenced by Vehicle().

◆ cargo_cap

◆ cargo_payment

CargoPayment* Vehicle::cargo_payment = nullptr

The cargo payment we're currently in.

Definition at line 272 of file vehicle_base.h.

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

◆ cargo_subtype

uint8_t Vehicle::cargo_subtype = 0

Used for livery refits (NewGRF variations)

Definition at line 338 of file vehicle_base.h.

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

◆ cargo_type

◆ colourmap

SpriteID Vehicle::colourmap {}

NOSAVE: cached colour mapping.

Definition at line 283 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 274 of file vehicle_base.h.

Referenced by CheckClickOnVehicle(), MarkAllViewportsDirty(), UpdateBoundingBoxCoordinates(), UpdateViewport(), Vehicle(), and ViewportAddVehicles().

◆ cur_speed

◆ current_order

Order Vehicle::current_order {}

The current order (+ status, like: loading)

Definition at line 351 of file vehicle_base.h.

Referenced by AfterLoadGame(), AircraftController(), AircraftEntersTerminal(), AircraftEventHandler_AtTerminal(), AircraftEventHandler_InHangar(), AircraftNextAirportPos_and_Order(), BeginLoading(), TimetableWindow::BuildArrivalDepartureList(), CalcPercentVehicleFilled(), CancelLoadingDueToDeletedOrder(), ChangeTimetable(), CheckIfTrainNeedsService(), CheckNextTrainTile(), CheckTrainStayInDepot(), CmdBuildSingleSignal(), CmdModifyOrder(), CmdRefitVehicle(), CmdReverseTrainDirection(), CmdSkipToOrder(), CmdTurnRoadVeh(), CopyVehicleConfigAndStatistics(), DeleteOrder(), DeleteVehicleOrders(), FindNearestHangar(), RoadVehicle::GetCurrentMaxSpeed(), Train::GetCurrentMaxSpeed(), GetTrainStopLocation(), HandleBreakdown(), HandleLoading(), HandleStationRefit(), LeaveStation(), 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(), SendToDepot(), ShipAccelerate(), ShowVisualEffect(), VehicleOrderSaver::SwitchToNextOrder(), UpdateAirplanesOnNewStation(), UpdateOldAircraft(), UpdateOrderDest(), UpdateVehicleTimetable(), VehicleEnterDepot(), and VehicleTimetableSorter().

◆ date_of_last_service

TimerGameEconomy::Date Vehicle::date_of_last_service {}

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

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

◆ day_counter

uint8_t Vehicle::day_counter = 0

◆ dest_tile

TileIndex Vehicle::dest_tile = INVALID_TILE

◆ direction

◆ economy_age

TimerGameEconomy::Date Vehicle::economy_age {}

Age in economy days.

Definition at line 288 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 318 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AfterLoadVehiclesPhase2(), AgeVehicle(), AircraftController(), CanVehicleUseStation(), CheckConsistencyOfArticulatedVehicle(), CheckOrders(), CheckTrainAttachment(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRoadVehicle(), CmdBuildShip(), CmdBuildVehicle(), CmdCloneVehicle(), CmdReverseTrainDirection(), CmdStartStopVehicle(), ConnectMultiheadedTrains(), Train::ConsistChanged(), CountArticulatedParts(), GroupStatistics::CountEngine(), Engine::DetermineCapacity(), DrawRoadVehDetails(), DrawShipDetails(), DrawTrainDetails(), FillNewGRFVehicleCache(), FindNearestHangar(), RoadVehicle::GetAirDrag(), Train::GetAirDrag(), GetCargoSubtypeText(), Train::GetCurveSpeedModifier(), Train::GetDisplayImageWidth(), GetEngine(), GetLoadAmount(), RoadVehicle::GetMaxWeight(), Train::GetMaxWeight(), GetNewEngineType(), RoadVehicle::GetPower(), Train::GetPower(), GetRoadVehLength(), VehicleResolverObject::GetScope(), RoadVehicle::GetTractiveEffort(), Train::GetTractiveEffort(), GetVehiclePalette(), RoadVehicle::GetWeight(), Train::GetWeight(), HandleBreakdown(), IsVehicleRefitable(), LiveryHelper(), MaybeCrashAirplane(), DepotWindow::OnRightClick(), PrepareRefitAction::operator()(), Ship::PlayLeaveStationSound(), Train::PlayLeaveStationSound(), PlayVehicleSound(), PositionHelper(), PreDestructor(), 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 320 of file vehicle_base.h.

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

◆ first

Vehicle* Vehicle::first = nullptr
private

NOSAVE: pointer to the first vehicle in the chain.

Definition at line 245 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 358 of file vehicle_base.h.

Referenced by FillNewGRFVehicleCache(), and InvalidateNewGRFCache().

◆ group_id

◆ hash_tile_current

Vehicle** Vehicle::hash_tile_current = nullptr

NOSAVE: Cache of the current hash chain.

Definition at line 281 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 279 of file vehicle_base.h.

Referenced by VehicleFromPos().

◆ hash_tile_prev

Vehicle** Vehicle::hash_tile_prev = nullptr

NOSAVE: Previous vehicle in the tile location hash.

Definition at line 280 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 276 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 277 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 333 of file vehicle_base.h.

Referenced by BeginLoading(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRoadVehicle(), CmdBuildShip(), LeaveStation(), 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 334 of file vehicle_base.h.

Referenced by BeginLoading(), and LeaveStation().

◆ last_station_visited

◆ load_unload_ticks

uint16_t Vehicle::load_unload_ticks = 0

Ticks to wait before starting next cycle.

Definition at line 347 of file vehicle_base.h.

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

◆ max_age

◆ motion_counter

uint32_t Vehicle::motion_counter = 0

counter to occasionally play a vehicle sound.

Definition at line 326 of file vehicle_base.h.

◆ next

Vehicle* Vehicle::next = nullptr
private

pointer to the next vehicle in the chain

Definition at line 243 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 247 of file vehicle_base.h.

Referenced by AddToShared(), NextShared(), and RemoveFromShared().

◆ old_orders

Order* Vehicle::old_orders

Only used during conversion of old save games.

Definition at line 355 of file vehicle_base.h.

◆ orders

◆ owner

Owner Vehicle::owner = INVALID_OWNER

Which company owns the vehicle?

Definition at line 304 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AgeVehicle(), AircraftEntersTerminal(), AircraftHandleDestTooFar(), BeginLoading(), CanBuildVehicleInfrastructure(), CcStartStopVehicle(), CheckIfTrainNeedsService(), CheckOrders(), CheckTrainCollision(), CheckTrainStayInDepot(), CmdAutofillTimetable(), CmdAutoreplaceVehicle(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRoadVehicle(), CmdBuildShip(), CmdBuildVehicle(), CmdBulkChangeTimetable(), CmdChangeServiceInt(), CmdChangeTimetable(), CmdCloneOrder(), CmdCloneVehicle(), CmdDeleteOrder(), CmdForceTrainProceed(), CmdInsertOrder(), CmdModifyOrder(), CmdMoveOrder(), CmdMoveRailVehicle(), CmdOrderRefit(), CmdRefitVehicle(), CmdRenameVehicle(), CmdReverseTrainDirection(), CmdSellVehicle(), CmdSetTimetableStart(), CmdSetVehicleOnTime(), CmdSkipToOrder(), CmdStartStopVehicle(), CmdTurnRoadVeh(), CountArticulatedParts(), CrashAirplane(), DeleteGroupHighlightOfVehicle(), DeleteLastWagon(), DisasterTick_Ufo(), DisasterVehicle::DisasterVehicle(), FindNearestHangar(), FindTrainCollideEnum(), FixOwnerOfRailTrack(), FloodVehicle(), FollowTrainReservation(), FreeTrainTrackReservation(), GenerateVehicleSortList(), GroupStatistics::Get(), GroupStatistics::GetAllGroup(), GetVehiclePalette(), HandlePathfindingResult(), 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(), CargoPayment::PayFinalDelivery(), PreDestructor(), ReleaseUnitNumber(), RemoveFromShared(), ReplaceChain(), ReplaceFreeUnit(), ReverseTrainDirection(), RoadFindPathToDest(), RoadVehArrivesAt(), SendToDepot(), 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 244 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 248 of file vehicle_base.h.

Referenced by AddToShared(), PreviousShared(), and RemoveFromShared().

◆ profit_last_year

Money Vehicle::profit_last_year = 0

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

Definition at line 269 of file vehicle_base.h.

Referenced by CopyVehicleConfigAndStatistics().

◆ profit_this_year

Money Vehicle::profit_this_year = 0

◆ progress

uint8_t Vehicle::progress = 0

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

Definition at line 327 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 330 of file vehicle_base.h.

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

◆ refit_cap

uint16_t Vehicle::refit_cap = 0

◆ reliability

◆ reliability_spd_dec

uint16_t Vehicle::reliability_spd_dec = 0

Reliability decrease speed.

Definition at line 293 of file vehicle_base.h.

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

◆ running_ticks

uint8_t Vehicle::running_ticks = 0

◆ sprite_cache

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

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

◆ subspeed

◆ subtype

uint8_t Vehicle::subtype = 0

◆ tick_counter

◆ tile

TileIndex Vehicle::tile = INVALID_TILE

Current tile index.

Definition at line 259 of file vehicle_base.h.

Referenced by AddArticulatedParts(), AdvanceWagonsAfterSwap(), AfterLoadGame(), AircraftController(), AircraftEventHandler_InHangar(), AircraftLeaveHangar(), BeginLoading(), BuildReplacementVehicle(), CancelReservation(), CcBuildWagon(), CheckNextTrainTile(), CYapfFollowShipT< Types >::CheckShipReverse(), CheckTrainCollision(), CheckTrainStayInDepot(), CmdAddVehicleGroup(), CmdBuildAircraft(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRoadVehicle(), CmdBuildShip(), CmdBuildSingleSignal(), CmdBuildVehicle(), CmdMoveRailVehicle(), CmdRefitVehicle(), CmdReverseTrainDirection(), CmdSellRailWagon(), CmdStartStopVehicle(), CmdTurnRoadVeh(), CollectTrackbitsFromCrashedVehiclesEnum(), Crash(), RoadVehicle::Crash(), Train::Crash(), CreateEffectVehicle(), CYapfFollowShipT< Types >::CreateRandomPath(), DeleteDepotHighlightOfVehicle(), DeleteLastRoadVeh(), DeleteLastWagon(), DisasterTick_Big_Ufo(), DisasterTick_Big_Ufo_Destroyer(), DisasterTick_Submarine(), DisasterTick_Ufo(), DisasterTick_Zeppeliner(), DisasterVehicle::DisasterVehicle(), FixupTrainLengths(), FloodVehicle(), FloodVehicleProc(), FollowTrainReservation(), FreeTrainReservation(), FreeTrainTrackReservation(), Train::GetCurrentMaxSpeed(), Train::GetCurveSpeedLimit(), RoadVehicle::GetMaxTrackSpeed(), Train::GetMaxTrackSpeed(), GetNewVehiclePos(), Train::GetPower(), Train::GetPoweredPartPower(), Aircraft::IsInDepot(), RoadStop::Leave(), LeaveStation(), 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(), VehicleFromPos(), 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 342 of file vehicle_base.h.

Referenced by LeaveStation().

◆ unitnumber

◆ value

◆ vcache

◆ vehstatus

VehStates Vehicle::vehstatus {}

Status.

Definition at line 349 of file vehicle_base.h.

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

◆ waiting_triggers

uint8_t Vehicle::waiting_triggers = 0

Triggers to be yet matched before rerandomizing the random bits.

Definition at line 329 of file vehicle_base.h.

Referenced by VehicleScopeResolver::GetTriggers().

◆ x_bb_offs

int8_t Vehicle::x_bb_offs = 0

x offset of vehicle bounding box

Definition at line 314 of file vehicle_base.h.

Referenced by DoDrawVehicle(), RoadVehicle::UpdateDeltaXY(), and Train::UpdateDeltaXY().

◆ x_extent

◆ x_offs

◆ x_pos

◆ y_bb_offs

int8_t Vehicle::y_bb_offs = 0

y offset of vehicle bounding box

Definition at line 315 of file vehicle_base.h.

Referenced by DoDrawVehicle(), RoadVehicle::UpdateDeltaXY(), and Train::UpdateDeltaXY().

◆ y_extent

◆ y_offs

◆ y_pos

◆ z_extent

◆ z_pos


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