OpenTTD Source
20241120-master-g6d3adc6169
|
'Train' is either a loco or a wagon. More...
#include <train.h>
Public Member Functions | |
Train () | |
We don't want GCC to zero our struct! It already is zeroed and has an index! | |
virtual | ~Train () |
We want to 'destruct' the right class. | |
void | MarkDirty () override |
Goods at the consist have changed, update the graphics, cargo, and acceleration. | |
void | UpdateDeltaXY () override |
Updates the x and y offsets and the size of the sprite used for this vehicle. | |
ExpensesType | GetExpenseType (bool income) const override |
void | PlayLeaveStationSound (bool force=false) const override |
Play a sound for a train leaving the station. | |
bool | IsPrimaryVehicle () const override |
Whether this is the primary vehicle in the chain. | |
void | GetImage (Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const override |
Get the sprite to display the train. More... | |
int | GetDisplaySpeed () const override |
Gets the speed in km-ish/h that can be sent into SetDParam for string processing. More... | |
int | GetDisplayMaxSpeed () const override |
Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing. More... | |
Money | GetRunningCost () const override |
Get running cost for the train consist. More... | |
int | GetCursorImageOffset () const |
int | GetDisplayImageWidth (Point *offset=nullptr) const |
Get the width of a train vehicle image in the GUI. More... | |
bool | IsInDepot () const override |
Check whether the vehicle is in the depot. More... | |
bool | Tick () override |
Update train vehicle data for a tick. More... | |
void | OnNewCalendarDay () override |
Calendar day handler. | |
void | OnNewEconomyDay () override |
Economy day handler. | |
uint | Crash (bool flooded=false) override |
The train vehicle crashed! Update its status and other parts around it. More... | |
Trackdir | GetVehicleTrackdir () const override |
Get the tracks of the train vehicle. More... | |
TileIndex | GetOrderStationLocation (StationID station) override |
Get the location of the next station to visit. More... | |
ClosestDepot | FindClosestDepot () override |
Find the closest depot for this vehicle and tell us the location, DestinationID and whether we should reverse. More... | |
void | ReserveTrackUnderConsist () const |
Tries to reserve track under whole train consist. | |
uint16_t | GetCurveSpeedLimit () const |
Computes train speed limit caused by curves. More... | |
void | ConsistChanged (ConsistChangeFlags allowed_changes) |
Recalculates the cached stuff of a train. More... | |
int | UpdateSpeed () |
This function looks at the vehicle and updates its speed (cur_speed and subspeed) variables. More... | |
void | UpdateAcceleration () |
Update acceleration of the train from the cached power and weight. | |
int | GetCurrentMaxSpeed () const override |
Calculates the maximum speed of the vehicle under its current conditions. More... | |
Train * | GetNextUnit () const |
Get the next real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist. More... | |
Train * | GetPrevUnit () |
Get the previous real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist. More... | |
int | CalcNextVehicleOffset () const |
Calculate the offset from this vehicle's center to the following center taking the vehicle lengths into account. More... | |
Public Member Functions inherited from GroundVehicle< Train, VEH_TRAIN > | |
GroundVehicle () | |
The constructor at SpecializedVehicle must be called. | |
void | PowerChanged () |
Recalculates the cached total power of a vehicle. More... | |
void | CargoChanged () |
Recalculates the cached weight of a vehicle and its parts. More... | |
int | GetAcceleration () const |
Calculates the acceleration of the vehicle under its current conditions. More... | |
bool | IsChainInDepot () const override |
Check whether the whole vehicle chain is in the depot. More... | |
uint | Crash (bool flooded) override |
Common code executed for crashed ground vehicles. More... | |
int64_t | GetSlopeResistance () const |
Calculates the total slope resistance for this vehicle. More... | |
void | UpdateZPositionAndInclination () |
Updates vehicle's Z position and inclination. More... | |
void | UpdateZPosition () |
Updates vehicle's Z position. More... | |
int | UpdateInclination (bool new_tile, bool update_delta) |
Checks if the vehicle is in a slope and sets the required flags in that case. More... | |
void | SetFrontEngine () |
Set front engine state. | |
void | ClearFrontEngine () |
Remove the front engine state. | |
void | SetArticulatedPart () |
Set a vehicle to be an articulated part. | |
void | ClearArticulatedPart () |
Clear a vehicle from being an articulated part. | |
void | SetWagon () |
Set a vehicle to be a wagon. | |
void | ClearWagon () |
Clear wagon property. | |
void | SetEngine () |
Set engine status. | |
void | ClearEngine () |
Clear engine status. | |
void | SetFreeWagon () |
Set a vehicle as a free wagon. | |
void | ClearFreeWagon () |
Clear a vehicle from being a free wagon. | |
void | SetMultiheaded () |
Set a vehicle as a multiheaded engine. | |
void | ClearMultiheaded () |
Clear multiheaded engine property. | |
bool | IsFreeWagon () const |
Check if the vehicle is a free wagon (got no engine in front of it). More... | |
bool | IsEngine () const |
Check if a vehicle is an engine (can be first in a consist). More... | |
bool | IsWagon () const |
Check if a vehicle is a wagon. More... | |
bool | IsMultiheaded () const |
Check if the vehicle is a multiheaded engine. More... | |
bool | IsRearDualheaded () const |
Tell if we are dealing with the rear end of a multiheaded engine. More... | |
void | SetLastSpeed () |
Update the GUI variant of the current speed of the vehicle. More... | |
Public Member Functions inherited from SpecializedVehicle< T, Type > | |
SpecializedVehicle () | |
Set vehicle type correctly. | |
T * | First () const |
Get the first vehicle in the chain. More... | |
T * | Last () |
Get the last vehicle in the chain. More... | |
const T * | Last () const |
Get the last vehicle in the chain. More... | |
T * | Next () const |
Get next vehicle in the chain. More... | |
T * | Previous () const |
Get previous vehicle in the chain. More... | |
T * | GetNextArticulatedPart () |
Get the next part of an articulated engine. More... | |
T * | GetNextArticulatedPart () const |
Get the next part of an articulated engine. More... | |
T * | GetFirstEnginePart () |
Get the first part of an articulated engine. More... | |
const T * | GetFirstEnginePart () const |
Get the first part of an articulated engine. More... | |
T * | GetLastEnginePart () |
Get the last part of an articulated engine. More... | |
T * | GetNextVehicle () const |
Get the next real (non-articulated part) vehicle in the consist. More... | |
T * | GetPrevVehicle () const |
Get the previous real (non-articulated part) vehicle in the consist. More... | |
void | UpdateViewport (bool force_update, bool update_delta) |
Update vehicle sprite- and position caches. More... | |
Public Member Functions inherited from Vehicle | |
Vehicle (VehicleType type=VEH_INVALID) | |
Vehicle constructor. More... | |
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. More... | |
void | CancelReservation (StationID next, Station *st) |
Return all reserved cargo packets to the station and reset all packets staged for transfer. More... | |
void | LeaveStation () |
Perform all actions when leaving a station. More... | |
GroundVehicleCache * | GetGroundVehicleCache () |
Access the ground vehicle cache of the vehicle. More... | |
const GroundVehicleCache * | GetGroundVehicleCache () const |
Access the ground vehicle cache of the vehicle. More... | |
uint16_t & | GetGroundVehicleFlags () |
Access the ground vehicle flags of the vehicle. More... | |
const uint16_t & | GetGroundVehicleFlags () const |
Access the ground vehicle flags of the vehicle. More... | |
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. More... | |
uint | GetOldAdvanceSpeed (uint speed) |
Determines the effective direction-specific vehicle movement speed. More... | |
uint | GetAdvanceDistance () |
Determines the vehicle "progress" needed for moving a step. More... | |
virtual ExpensesType | GetExpenseType ([[maybe_unused]] bool income) const |
Sets the expense type associated to this vehicle type. More... | |
virtual void | PlayLeaveStationSound ([[maybe_unused]] bool force=false) const |
Play the sound associated with leaving the station. More... | |
const Engine * | GetEngine () const |
Retrieves the engine of the vehicle. More... | |
virtual void | GetImage ([[maybe_unused]] Direction direction, [[maybe_unused]] EngineImageType image_type, [[maybe_unused]] VehicleSpriteSeq *result) const |
Gets the sprite to show for the given direction. More... | |
const GRFFile * | GetGRF () const |
Retrieve the NewGRF the vehicle is tied to. More... | |
uint32_t | GetGRFID () const |
Retrieve the GRF ID of the NewGRF the vehicle is tied to. More... | |
void | InvalidateNewGRFCache () |
Invalidates cached NewGRF variables. More... | |
void | InvalidateNewGRFCacheOfChain () |
Invalidates cached NewGRF variables of all vehicles in the chain (after the current vehicle) More... | |
debug_inline bool | IsGroundVehicle () const |
Check if the vehicle is a ground vehicle. More... | |
bool | IsStoppedInDepot () const |
Check whether the vehicle is in the depot and stopped. More... | |
void | ShiftDates (TimerGameEconomy::Date interval) |
Shift all dates by given interval. More... | |
Money | GetDisplayRunningCost () const |
Gets the running cost of a vehicle that can be sent into SetDParam for string processing. More... | |
Money | GetDisplayProfitThisYear () const |
Gets the profit vehicle had this year. More... | |
Money | GetDisplayProfitLastYear () const |
Gets the profit vehicle had last year. More... | |
void | SetNext (Vehicle *next) |
Set the next vehicle of this vehicle. More... | |
Vehicle * | Next () const |
Get the next vehicle of this vehicle. More... | |
Vehicle * | Previous () const |
Get the previous vehicle of this vehicle. More... | |
Vehicle * | First () const |
Get the first vehicle of this vehicle chain. More... | |
Vehicle * | Last () |
Get the last vehicle of this vehicle chain. More... | |
const Vehicle * | Last () const |
Get the last vehicle of this vehicle chain. More... | |
Vehicle * | Move (int n) |
Get the vehicle at offset n of this vehicle chain. More... | |
const Vehicle * | Move (int n) const |
Get the vehicle at offset n of this vehicle chain. More... | |
Order * | GetFirstOrder () const |
Get the first order of the vehicles order list. More... | |
void | AddToShared (Vehicle *shared_chain) |
Adds this vehicle to a shared vehicle chain. More... | |
void | RemoveFromShared () |
Removes the vehicle from the shared order list. | |
Vehicle * | NextShared () const |
Get the next vehicle of the shared vehicle chain. More... | |
Vehicle * | PreviousShared () const |
Get the previous vehicle of the shared vehicle chain. More... | |
Vehicle * | FirstShared () const |
Get the first vehicle of this vehicle chain. More... | |
bool | IsOrderListShared () const |
Check if we share our orders with another vehicle. More... | |
VehicleOrderID | GetNumOrders () const |
Get the number of orders this vehicle has. More... | |
VehicleOrderID | GetNumManualOrders () const |
Get the number of manually added orders this vehicle has. More... | |
StationIDStack | GetNextStoppingStation () const |
Get the next station the vehicle will stop at. More... | |
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. More... | |
bool | HandleBreakdown () |
Handle all of the aspects of a vehicle breakdown This includes adding smoke and sounds, and ending the breakdown when appropriate. More... | |
bool | NeedsAutorenewing (const Company *c, bool use_renew_setting=true) const |
Function to tell if a vehicle needs to be autorenewed. More... | |
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. More... | |
bool | NeedsAutomaticServicing () const |
Checks if the current order should be interrupted for a service-in-depot order. More... | |
virtual TileIndex | GetOrderStationLocation ([[maybe_unused]] StationID station) |
Determine the location for the station where the vehicle goes to next. More... | |
virtual TileIndex | GetCargoTile () const |
virtual void | SetDestTile (TileIndex tile) |
CommandCost | SendToDepot (DoCommandFlag flags, DepotCommand command) |
Send this vehicle to the depot using the given command(s). More... | |
void | UpdateVisualEffect (bool allow_power_change=true) |
Update the cached visual effect. More... | |
void | ShowVisualEffect () const |
Draw visual effects (smoke and/or sparks) for a vehicle chain. More... | |
void | UpdatePosition () |
Update the position of the vehicle. More... | |
void | UpdateViewport (bool dirty) |
Update the vehicle on the viewport, updating the right hash and setting the new coordinates. More... | |
void | UpdateBoundingBoxCoordinates (bool update_cache) const |
Update the bounding box co-ordinates of the vehicle. More... | |
void | UpdatePositionAndViewport () |
Update the position of the vehicle, and update the viewport. | |
bool | MarkAllViewportsDirty () const |
Marks viewports dirty where the vehicle's image is. More... | |
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. More... | |
bool | HasConditionalOrder () const |
Check if the current vehicle has a conditional order. More... | |
bool | HasUnbunchingOrder () const |
Check if the current vehicle has an unbunching order. More... | |
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. More... | |
void | IncrementImplicitOrderIndex () |
Increments cur_implicit_order_index, keeps care of the wrap-around and invalidates the GUI. More... | |
void | IncrementRealOrderIndex () |
Advanced cur_real_order_index to the next real order, keeps care of the wrap-around and invalidates the GUI. More... | |
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. More... | |
Order * | GetLastOrder () const |
Returns the last order of a vehicle, or nullptr if it doesn't exists. More... | |
bool | IsEngineCountable () const |
Check if a vehicle is counted in num_engines in each company struct. More... | |
bool | HasEngineType () const |
Check whether Vehicle::engine_type has any meaning. More... | |
bool | HasDepotOrder () const |
Checks if a vehicle has a depot in its order list. More... | |
void | HandlePathfindingResult (bool path_found) |
Handle the pathfinding result, especially the lost status. More... | |
debug_inline bool | IsFrontEngine () const |
Check if the vehicle is a front engine. More... | |
bool | IsArticulatedPart () const |
Check if the vehicle is an articulated part of an engine. More... | |
bool | HasArticulatedPart () const |
Check if an engine has an articulated part. More... | |
Vehicle * | GetNextArticulatedPart () const |
Get the next part of an articulated engine. More... | |
Vehicle * | GetFirstEnginePart () |
Get the first part of an articulated engine. More... | |
const Vehicle * | GetFirstEnginePart () const |
Get the first part of an articulated engine. More... | |
Vehicle * | GetLastEnginePart () |
Get the last part of an articulated engine. More... | |
Vehicle * | GetNextVehicle () const |
Get the next real (non-articulated part) vehicle in the consist. More... | |
Vehicle * | GetPrevVehicle () const |
Get the previous real (non-articulated part) vehicle in the consist. More... | |
IterateWrapper | Orders () const |
Returns an iterable ensemble of orders of a vehicle. More... | |
uint32_t | GetDisplayMaxWeight () const |
Calculates the maximum weight of the ground vehicle when loaded. More... | |
uint32_t | GetDisplayMinPowerToWeight () const |
Calculates the minimum power-to-weight ratio using the maximum weight of the ground vehicle. More... | |
Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool > | |
void * | operator new (size_t size) |
Allocates space for new Titem. More... | |
void * | operator new (size_t size, size_t index) |
Allocates space for new Titem with given index. More... | |
void * | operator new (size_t, void *ptr) |
Allocates space for new Titem at given memory address. More... | |
void | operator delete (void *p) |
Marks Titem as free. More... | |
Public Member Functions inherited from BaseConsist | |
void | CopyConsistPropertiesFrom (const BaseConsist *src) |
Copy properties of other BaseConsist. More... | |
void | ResetDepotUnbunching () |
Resets all the data used for depot unbunching. | |
Data Fields | |
uint16_t | flags |
uint16_t | crash_anim_pos |
Crash animation counter. | |
uint16_t | wait_counter |
Ticks waiting in front of a signal, ticks being stuck or a counter for forced proceeding through signals. | |
TrainCache | tcache |
Train * | other_multiheaded_part |
RailTypes | compatible_railtypes |
RailType | railtype |
TrackBits | track |
TrainForceProceeding | force_proceed |
Data Fields inherited from GroundVehicle< Train, VEH_TRAIN > | |
GroundVehicleCache | gcache |
Cache of often calculated values. | |
uint16_t | gv_flags |
Data Fields inherited from Vehicle | |
TileIndex | tile |
Current tile index. | |
TileIndex | dest_tile |
Heading for this tile. More... | |
Money | profit_this_year |
Profit this year << 8, low 8 bits are fract. | |
Money | profit_last_year |
Profit last year << 8, low 8 bits are fract. | |
Money | value |
Value of the vehicle. | |
CargoPayment * | cargo_payment |
The cargo payment we're currently in. | |
Rect | coord |
NOSAVE: Graphical bounding box of the vehicle, i.e. what to redraw on moves. | |
Vehicle * | hash_viewport_next |
NOSAVE: Next vehicle in the visual location hash. | |
Vehicle ** | hash_viewport_prev |
NOSAVE: Previous vehicle in the visual location hash. | |
Vehicle * | hash_tile_next |
NOSAVE: Next vehicle in the tile location hash. | |
Vehicle ** | hash_tile_prev |
NOSAVE: Previous vehicle in the tile location hash. | |
Vehicle ** | hash_tile_current |
NOSAVE: Cache of the current hash chain. | |
SpriteID | colourmap |
NOSAVE: cached colour mapping. | |
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 |
Reliability. | |
uint16_t | reliability_spd_dec |
Reliability decrease speed. | |
uint8_t | breakdown_ctr |
Counter for managing breakdown events. More... | |
uint8_t | breakdown_delay |
Counter for managing breakdown length. | |
uint8_t | breakdowns_since_last_service |
Counter for the amount of breakdowns. | |
uint8_t | breakdown_chance |
Current chance of breakdowns. | |
int32_t | x_pos |
x coordinate. | |
int32_t | y_pos |
y coordinate. | |
int32_t | z_pos |
z coordinate. | |
Direction | direction |
facing | |
Owner | owner |
Which company owns the vehicle? | |
uint8_t | spritenum |
currently displayed sprite index 0xfd == custom sprite, 0xfe == custom second head sprite 0xff == reserved for another custom sprite | |
uint8_t | x_extent |
x-extent of vehicle bounding box | |
uint8_t | y_extent |
y-extent of vehicle bounding box | |
uint8_t | z_extent |
z-extent of vehicle bounding box | |
int8_t | x_bb_offs |
x offset of vehicle bounding box | |
int8_t | y_bb_offs |
y offset of vehicle bounding box | |
int8_t | x_offs |
x offset for vehicle sprite | |
int8_t | y_offs |
y offset for vehicle sprite | |
EngineID | engine_type |
The type of engine used for this vehicle. | |
TextEffectID | fill_percent_te_id |
a text-effect id to a loading indicator object | |
UnitID | unitnumber |
unit number, for display purposes only | |
uint16_t | cur_speed |
current speed | |
uint8_t | subspeed |
fractional speed | |
uint8_t | acceleration |
used by train & aircraft | |
uint32_t | motion_counter |
counter to occasionally play a vehicle sound. | |
uint8_t | progress |
The percentage (if divided by 256) this vehicle already crossed the tile unit. | |
uint8_t | waiting_triggers |
Triggers to be yet matched before rerandomizing the random bits. | |
uint16_t | random_bits |
Bits used for randomized variational spritegroups. | |
StationID | last_station_visited |
The last station we stopped at. | |
StationID | last_loading_station |
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. | |
CargoID | cargo_type |
type of cargo this vehicle is carrying | |
uint8_t | cargo_subtype |
Used for livery refits (NewGRF variations) | |
uint16_t | cargo_cap |
total capacity | |
uint16_t | refit_cap |
Capacity left over from before last refit. | |
uint16_t | cargo_age_counter |
Ticks till cargo is aged next. | |
int8_t | trip_occupancy |
NOSAVE: Occupancy of vehicle of the current trip (updated after leaving a station). | |
uint8_t | day_counter |
Increased by one for each day. | |
uint8_t | tick_counter |
Increased by one for each tick. | |
uint8_t | running_ticks |
Number of ticks this vehicle was not stopped this day. | |
uint16_t | load_unload_ticks |
Ticks to wait before starting next cycle. | |
uint8_t | vehstatus |
Status. | |
uint8_t | subtype |
subtype (Filled with values from AircraftSubType/DisasterSubType/EffectVehicleType/GroundVehicleSubtypeFlags) | |
Order | current_order |
The current order (+ status, like: loading) | |
union { | |
OrderList * orders | |
Pointer to the order list for this vehicle. | |
Order * old_orders | |
Only used during conversion of old save games. | |
}; | |
NewGRFCache | grf_cache |
Cache of often used calculated NewGRF values. | |
VehicleCache | vcache |
Cache of often used vehicle values. | |
GroupID | group_id |
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, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool > | |
Tindex | index |
Index of this pool item. | |
Data Fields inherited from BaseVehicle | |
VehicleType | type |
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 |
The interval for (automatic) servicing; either in days or %. | |
VehicleOrderID | cur_real_order_index |
The index to the current real (non-implicit) order. | |
VehicleOrderID | cur_implicit_order_index |
The index to the current implicit order. | |
uint16_t | vehicle_flags |
Used for gradual loading and other miscellaneous things (. More... | |
Protected Member Functions | |
uint16_t | GetPower () const |
Allows to know the power value that this vehicle will use. More... | |
uint16_t | GetPoweredPartPower (const Train *head) const |
Returns a value if this articulated part is powered. More... | |
uint16_t | GetWeight () const |
Allows to know the weight value that this vehicle will use. More... | |
uint16_t | GetMaxWeight () const override |
Calculates the weight value that this vehicle will have when fully loaded with its current cargo. More... | |
uint8_t | GetTractiveEffort () const |
Allows to know the tractive effort value that this vehicle will use. More... | |
uint8_t | GetAirDragArea () const |
Gets the area used for calculating air drag. More... | |
uint8_t | GetAirDrag () const |
Gets the air drag coefficient of this vehicle. More... | |
AccelStatus | GetAccelerationStatus () const |
Checks the current acceleration status of this vehicle. More... | |
uint16_t | GetCurrentSpeed () const |
Calculates the current speed of this vehicle. More... | |
uint32_t | GetRollingFriction () const |
Returns the rolling friction coefficient of this vehicle. More... | |
int | GetAccelerationType () const |
Allows to know the acceleration type of a vehicle. More... | |
uint32_t | GetSlopeSteepness () const |
Returns the slope steepness used by this vehicle. More... | |
uint16_t | GetMaxTrackSpeed () const |
Gets the maximum speed allowed by the track for this vehicle. More... | |
int16_t | GetCurveSpeedModifier () const |
Returns the curve speed modifier of this vehicle. More... | |
bool | TileMayHaveSlopedTrack () const |
Checks if the vehicle is at a tile that can be sloped. More... | |
bool | HasToUseGetSlopePixelZ () |
Trains can always use the faster algorithm because they have always the same direction as the track under them. More... | |
Protected Member Functions inherited from GroundVehicle< Train, VEH_TRAIN > | |
uint | DoUpdateSpeed (uint accel, int min_speed, int max_speed) |
Update the speed of the vehicle. More... | |
Friends | |
struct | GroundVehicle< Train, VEH_TRAIN > |
Additional Inherited Members | |
Public Types inherited from GroundVehicle< Train, VEH_TRAIN > | |
typedef GroundVehicle< Train, Type > | GroundVehicleBase |
Our type. | |
Public Types inherited from SpecializedVehicle< T, Type > | |
typedef SpecializedVehicle< T, Type > | SpecializedVehicleBase |
Our type. | |
Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool > | |
typedef struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > | Pool |
Type of the pool this item is going to be part of. | |
Static Public Member Functions inherited from SpecializedVehicle< T, Type > | |
static bool | IsValidID (size_t index) |
Tests whether given index is a valid index for vehicle of this type. More... | |
static T * | Get (size_t index) |
Gets vehicle with given index. More... | |
static T * | GetIfValid (size_t index) |
Returns vehicle if the index is a valid index for this vehicle type. More... | |
static T * | From (Vehicle *v) |
Converts a Vehicle to SpecializedVehicle with type checking. More... | |
static const T * | From (const Vehicle *v) |
Converts a const Vehicle to const SpecializedVehicle with type checking. More... | |
static Pool::IterateWrapper< T > | Iterate (size_t from=0) |
Returns an iterable ensemble of all valid vehicles of type T. More... | |
Static Public Member Functions inherited from Vehicle | |
static uint | GetAdvanceSpeed (uint speed) |
Determines the effective vehicle movement speed. More... | |
Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool > | |
static bool | CanAllocateItem (size_t n=1) |
Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function() More... | |
static bool | CleaningPool () |
Returns current state of pool cleaning - yes or no. More... | |
static bool | IsValidID (size_t index) |
Tests whether given index can be used to get valid (non-nullptr) Titem. More... | |
static Titem * | Get (size_t index) |
Returns Titem with given index. More... | |
static Titem * | GetIfValid (size_t index) |
Returns Titem with given index. More... | |
static size_t | GetPoolSize () |
Returns first unused index. More... | |
static size_t | GetNumItems () |
Returns number of valid items in the pool. More... | |
static void | PostDestructor ([[maybe_unused]] size_t index) |
Dummy function called after destructor of each member. More... | |
static Pool::IterateWrapper< Titem > | Iterate (size_t from=0) |
Returns an iterable ensemble of all valid Titem. More... | |
Static Public Attributes inherited from SpecializedVehicle< T, Type > | |
static const VehicleType | EXPECTED_TYPE = Type |
Specialized type. | |
|
inline |
Calculate the offset from this vehicle's center to the following center taking the vehicle lengths into account.
Definition at line 172 of file train.h.
References GroundVehicleCache::cached_veh_length, GroundVehicle< Train, VEH_TRAIN >::gcache, and SpecializedVehicle< T, Type >::Next().
Referenced by TicksToLeaveDepot().
void Train::ConsistChanged | ( | ConsistChangeFlags | allowed_changes | ) |
Recalculates the cached stuff of a train.
Should be called each time a vehicle is added to/removed from the chain, and when the game is loaded. Note: this needs to be called too for 'wagon chains' (in the depot, without an engine)
allowed_changes | Stuff that is allowed to change. |
Definition at line 110 of file train_cmd.cpp.
Referenced by AfterLoadVehiclesPhase2(), DeleteLastWagon(), NormaliseTrainHead(), and VehicleEnterDepot().
|
overridevirtual |
The train vehicle crashed! Update its status and other parts around it.
flooded | Crash was caused by flooding. |
Reimplemented from Vehicle.
Definition at line 3110 of file train_cmd.cpp.
References ClearPathReservation(), GroundVehicle< T, Type >::Crash(), crash_anim_pos, Vehicle::fill_percent_te_id, FreeTrainTrackReservation(), GetOtherTunnelBridgeEnd(), GetVehicleTrackdir(), HasBit(), HideFillingPercent(), INVALID_TILE, Vehicle::IsFrontEngine(), IsTileType(), MP_TUNNELBRIDGE, SpecializedVehicle< T, Type >::Next(), SetTunnelBridgeReservation(), Vehicle::tile, TrainApproachingCrossingTile(), UpdateLevelCrossing(), and VRF_TRAIN_STUCK.
Referenced by TrainCrashed().
|
overridevirtual |
Find the closest depot for this vehicle and tell us the location, DestinationID and whether we should reverse.
Reimplemented from Vehicle.
Definition at line 2173 of file train_cmd.cpp.
References FindDepotData::best_length, FindClosestTrainDepot(), GetDepotIndex(), FindDepotData::reverse, and FindDepotData::tile.
|
inlineprotected |
Checks the current acceleration status of this vehicle.
Definition at line 273 of file train.h.
References HasBit(), Vehicle::vehstatus, and VS_STOPPED.
|
inlineprotected |
Allows to know the acceleration type of a vehicle.
Definition at line 303 of file train.h.
References RailTypeInfo::acceleration_type, and GetRailTypeInfo().
|
inlineprotected |
|
inlineprotected |
Gets the area used for calculating air drag.
Definition at line 254 of file train.h.
References TRACK_BIT_WORMHOLE, Vehicle::vehstatus, and VS_HIDDEN.
|
overridevirtual |
Calculates the maximum speed of the vehicle under its current conditions.
Reimplemented from Vehicle.
Definition at line 382 of file train_cmd.cpp.
References _settings_game, VehicleSettings::train_acceleration_model, and GameSettings::vehicle.
|
inlineprotected |
Calculates the current speed of this vehicle.
Definition at line 282 of file train.h.
Referenced by GetRollingFriction().
uint16_t Train::GetCurveSpeedLimit | ( | ) | const |
Computes train speed limit caused by curves.
Definition at line 307 of file train_cmd.cpp.
|
inlineprotected |
int Train::GetDisplayImageWidth | ( | Point * | offset = nullptr | ) | const |
Get the width of a train vehicle image in the GUI.
offset | Additional offset for positioning the sprite; set to nullptr if not needed |
Definition at line 460 of file train_cmd.cpp.
Referenced by GetLengthOfArticulatedVehicle().
|
inlineoverridevirtual |
Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing.
Reimplemented from Vehicle.
Definition at line 119 of file train.h.
References VehicleCache::cached_max_speed, and Vehicle::vcache.
|
inlineoverridevirtual |
Gets the speed in km-ish/h that can be sent into SetDParam for string processing.
Reimplemented from Vehicle.
Definition at line 118 of file train.h.
References GroundVehicle< Train, VEH_TRAIN >::gcache, and GroundVehicleCache::last_speed.
|
override |
Get the sprite to display the train.
direction | Direction of view/travel. |
image_type | Visualisation context. |
Definition at line 494 of file train_cmd.cpp.
|
inlineprotected |
|
overrideprotectedvirtual |
Calculates the weight value that this vehicle will have when fully loaded with its current cargo.
Reimplemented from Vehicle.
Definition at line 4237 of file train_cmd.cpp.
|
inline |
Get the next real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist.
Definition at line 148 of file train.h.
References SpecializedVehicle< T, Type >::GetNextVehicle(), and GroundVehicle< T, Type >::IsRearDualheaded().
Referenced by ArrangeTrains().
Get the location of the next station to visit.
station | Next station to visit. |
Definition at line 2951 of file train_cmd.cpp.
References Vehicle::last_station_visited.
|
inlineprotected |
|
inlineprotected |
|
inline |
Get the previous real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist.
Definition at line 160 of file train.h.
References SpecializedVehicle< T, Type >::GetPrevVehicle(), and GroundVehicle< T, Type >::IsRearDualheaded().
|
inlineprotected |
Returns the rolling friction coefficient of this vehicle.
Definition at line 291 of file train.h.
References GetCurrentSpeed().
|
overridevirtual |
Get running cost for the train consist.
Reimplemented from Vehicle.
Definition at line 4084 of file train_cmd.cpp.
References Vehicle::GetEngine().
|
inlineprotected |
Returns the slope steepness used by this vehicle.
Definition at line 312 of file train.h.
References _settings_game, VehicleSettings::train_slope_steepness, and GameSettings::vehicle.
|
inlineprotected |
|
overridevirtual |
Get the tracks of the train vehicle.
Reimplemented from Vehicle.
Definition at line 4220 of file train_cmd.cpp.
References DiagDirToDiagTrackdir(), DirToDiagDir(), FindFirstTrack(), GetRailDepotDirection(), INVALID_TRACKDIR, TRACK_BIT_DEPOT, TRACK_BIT_WORMHOLE, TrackDirectionToTrackdir(), Vehicle::vehstatus, and VS_CRASHED.
Referenced by Crash(), FollowTrainReservation(), FreeTrainReservation(), FreeTrainTrackReservation(), RestoreTrainReservation(), YapfTrainCheckReverse(), and YapfTrainFindNearestDepot().
|
inlineprotected |
|
inlineprotected |
|
inlineoverridevirtual |
Check whether the vehicle is in the depot.
Reimplemented from Vehicle.
Definition at line 123 of file train.h.
References TRACK_BIT_DEPOT.
|
overridevirtual |
Update train vehicle data for a tick.
Reimplemented from Vehicle.
Definition at line 4109 of file train_cmd.cpp.
References Vehicle::cur_speed, BaseConsist::current_order_time, Vehicle::IsFrontEngine(), PFE_GL_TRAINS, Vehicle::running_ticks, Vehicle::tick_counter, Vehicle::vehstatus, and VS_STOPPED.
|
inlineprotected |
Checks if the vehicle is at a tile that can be sloped.
Definition at line 339 of file train.h.
References TRACK_BIT_X, and TRACK_BIT_Y.
int Train::UpdateSpeed | ( | ) |
This function looks at the vehicle and updates its speed (cur_speed and subspeed) variables.
Furthermore, it returns the distance that the train can drive this tick. Vehicle::GetAdvanceDistance() determines the distance to drive before moving a step on the map.
Definition at line 2986 of file train_cmd.cpp.
References _settings_game, VehicleSettings::train_acceleration_model, and GameSettings::vehicle.