OpenTTD Source 20241224-master-gf74b0cf984
|
'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 |
Sets the expense type associated to this vehicle type. | |
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. | |
int | GetDisplaySpeed () const override |
Gets the speed in km-ish/h that can be sent into SetDParam for string processing. | |
int | GetDisplayMaxSpeed () const override |
Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing. | |
Money | GetRunningCost () const override |
Get running cost for the train consist. | |
int | GetCursorImageOffset () const |
int | GetDisplayImageWidth (Point *offset=nullptr) const |
Get the width of a train vehicle image in the GUI. | |
bool | IsInDepot () const override |
Check whether the vehicle is in the depot. | |
bool | Tick () override |
Update train vehicle data for a tick. | |
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. | |
Trackdir | GetVehicleTrackdir () const override |
Get the tracks of the train vehicle. | |
TileIndex | GetOrderStationLocation (StationID station) override |
Get the location of the next station to visit. | |
ClosestDepot | FindClosestDepot () override |
Find the closest depot for this vehicle and tell us the location, DestinationID and whether we should reverse. | |
void | ReserveTrackUnderConsist () const |
Tries to reserve track under whole train consist. | |
uint16_t | GetCurveSpeedLimit () const |
Computes train speed limit caused by curves. | |
void | ConsistChanged (ConsistChangeFlags allowed_changes) |
Recalculates the cached stuff of a train. | |
int | UpdateSpeed () |
This function looks at the vehicle and updates its speed (cur_speed and subspeed) variables. | |
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. | |
Train * | GetNextUnit () const |
Get the next real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist. | |
Train * | GetPrevUnit () |
Get the previous real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist. | |
int | CalcNextVehicleOffset () const |
Calculate the offset from this vehicle's center to the following center taking the vehicle lengths into account. | |
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. | |
void | CargoChanged () |
Recalculates the cached weight of a vehicle and its parts. | |
int | GetAcceleration () const |
Calculates the acceleration of the vehicle under its current conditions. | |
bool | IsChainInDepot () const override |
Check whether the whole vehicle chain is in the depot. | |
int64_t | GetSlopeResistance () const |
Calculates the total slope resistance for this vehicle. | |
void | UpdateZPositionAndInclination () |
Updates vehicle's Z position and inclination. | |
void | UpdateZPosition () |
Updates vehicle's Z position. | |
int | UpdateInclination (bool new_tile, bool update_delta) |
Checks if the vehicle is in a slope and sets the required flags in that case. | |
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). | |
bool | IsEngine () const |
Check if a vehicle is an engine (can be first in a consist). | |
bool | IsWagon () const |
Check if a vehicle is a wagon. | |
bool | IsMultiheaded () const |
Check if the vehicle is a multiheaded engine. | |
bool | IsRearDualheaded () const |
Tell if we are dealing with the rear end of a multiheaded engine. | |
void | SetLastSpeed () |
Update the GUI variant of the current speed of the vehicle. | |
Public Member Functions inherited from SpecializedVehicle< T, Type > | |
SpecializedVehicle () | |
Set vehicle type correctly. | |
T * | First () const |
Get the first vehicle in the chain. | |
T * | Last () |
Get the last vehicle in the chain. | |
const T * | Last () const |
Get the last vehicle in the chain. | |
T * | Next () const |
Get next vehicle in the chain. | |
T * | Previous () const |
Get previous vehicle in the chain. | |
T * | GetNextArticulatedPart () |
Get the next part of an articulated engine. | |
T * | GetNextArticulatedPart () const |
Get the next part of an articulated engine. | |
T * | GetFirstEnginePart () |
Get the first part of an articulated engine. | |
const T * | GetFirstEnginePart () const |
Get the first part of an articulated engine. | |
T * | GetLastEnginePart () |
Get the last part of an articulated engine. | |
T * | GetNextVehicle () const |
Get the next real (non-articulated part) vehicle in the consist. | |
T * | GetPrevVehicle () const |
Get the previous real (non-articulated part) vehicle in the consist. | |
void | UpdateViewport (bool force_update, bool update_delta) |
Update vehicle sprite- and position caches. | |
Public Member Functions inherited from Vehicle | |
Vehicle (VehicleType type=VEH_INVALID) | |
Vehicle constructor. | |
void | PreDestructor () |
Destroy all stuff that (still) needs the virtual functions to work properly. | |
virtual | ~Vehicle () |
We want to 'destruct' the right class. | |
void | BeginLoading () |
Prepare everything to begin the loading when arriving at a station. | |
void | CancelReservation (StationID next, Station *st) |
Return all reserved cargo packets to the station and reset all packets staged for transfer. | |
void | LeaveStation () |
Perform all actions when leaving a station. | |
GroundVehicleCache * | GetGroundVehicleCache () |
Access the ground vehicle cache of the vehicle. | |
const GroundVehicleCache * | GetGroundVehicleCache () const |
Access the ground vehicle cache of the vehicle. | |
uint16_t & | GetGroundVehicleFlags () |
Access the ground vehicle flags of the vehicle. | |
const uint16_t & | GetGroundVehicleFlags () const |
Access the ground vehicle flags of the vehicle. | |
void | DeleteUnreachedImplicitOrders () |
Delete all implicit orders which were not reached. | |
void | HandleLoading (bool mode=false) |
Handle the loading of the vehicle; when not it skips through dummy orders and does nothing in all other cases. | |
uint | GetOldAdvanceSpeed (uint speed) |
Determines the effective direction-specific vehicle movement speed. | |
uint | GetAdvanceDistance () |
Determines the vehicle "progress" needed for moving a step. | |
const Engine * | GetEngine () const |
Retrieves the engine of the vehicle. | |
const GRFFile * | GetGRF () const |
Retrieve the NewGRF the vehicle is tied to. | |
uint32_t | GetGRFID () const |
Retrieve the GRF ID of the NewGRF the vehicle is tied to. | |
void | InvalidateNewGRFCache () |
Invalidates cached NewGRF variables. | |
void | InvalidateNewGRFCacheOfChain () |
Invalidates cached NewGRF variables of all vehicles in the chain (after the current vehicle) | |
debug_inline bool | IsGroundVehicle () const |
Check if the vehicle is a ground vehicle. | |
bool | IsStoppedInDepot () const |
Check whether the vehicle is in the depot and stopped. | |
void | ShiftDates (TimerGameEconomy::Date interval) |
Shift all dates by given interval. | |
Money | GetDisplayRunningCost () const |
Gets the running cost of a vehicle that can be sent into SetDParam for string processing. | |
Money | GetDisplayProfitThisYear () const |
Gets the profit vehicle had this year. | |
Money | GetDisplayProfitLastYear () const |
Gets the profit vehicle had last year. | |
void | SetNext (Vehicle *next) |
Set the next vehicle of this vehicle. | |
Vehicle * | Next () const |
Get the next vehicle of this vehicle. | |
Vehicle * | Previous () const |
Get the previous vehicle of this vehicle. | |
Vehicle * | First () const |
Get the first vehicle of this vehicle chain. | |
Vehicle * | Last () |
Get the last vehicle of this vehicle chain. | |
const Vehicle * | Last () const |
Get the last vehicle of this vehicle chain. | |
Vehicle * | Move (int n) |
Get the vehicle at offset n of this vehicle chain. | |
const Vehicle * | Move (int n) const |
Get the vehicle at offset n of this vehicle chain. | |
Order * | GetFirstOrder () const |
Get the first order of the vehicles order list. | |
void | AddToShared (Vehicle *shared_chain) |
Adds this vehicle to a shared vehicle chain. | |
void | RemoveFromShared () |
Removes the vehicle from the shared order list. | |
Vehicle * | NextShared () const |
Get the next vehicle of the shared vehicle chain. | |
Vehicle * | PreviousShared () const |
Get the previous vehicle of the shared vehicle chain. | |
Vehicle * | FirstShared () const |
Get the first vehicle of this vehicle chain. | |
bool | IsOrderListShared () const |
Check if we share our orders with another vehicle. | |
VehicleOrderID | GetNumOrders () const |
Get the number of orders this vehicle has. | |
VehicleOrderID | GetNumManualOrders () const |
Get the number of manually added orders this vehicle has. | |
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 | GetCargoTile () const |
virtual void | SetDestTile (TileIndex tile) |
CommandCost | SendToDepot (DoCommandFlag flags, DepotCommand command) |
Send this vehicle to the depot using the given command(s). | |
void | UpdateVisualEffect (bool allow_power_change=true) |
Update the cached visual effect. | |
void | ShowVisualEffect () const |
Draw visual effects (smoke and/or sparks) for a vehicle chain. | |
void | UpdatePosition () |
Update the position of the vehicle. | |
void | UpdateViewport (bool dirty) |
Update the vehicle on the viewport, updating the right hash and setting the new coordinates. | |
void | UpdateBoundingBoxCoordinates (bool update_cache) const |
Update the bounding box co-ordinates of the vehicle. | |
void | UpdatePositionAndViewport () |
Update the position of the vehicle, and update the viewport. | |
bool | MarkAllViewportsDirty () const |
Marks viewports dirty where the vehicle's image is. | |
uint16_t | GetServiceInterval () const |
void | SetServiceInterval (uint16_t interval) |
bool | ServiceIntervalIsCustom () const |
bool | ServiceIntervalIsPercent () const |
void | SetServiceIntervalIsCustom (bool on) |
void | SetServiceIntervalIsPercent (bool on) |
bool | HasFullLoadOrder () const |
Check if the current vehicle has a full load order. | |
bool | HasConditionalOrder () const |
Check if the current vehicle has a conditional order. | |
bool | HasUnbunchingOrder () const |
Check if the current vehicle has an unbunching order. | |
void | LeaveUnbunchingDepot () |
Leave an unbunching depot and calculate the next departure time for shared order vehicles. | |
bool | IsWaitingForUnbunching () const |
Check whether a vehicle inside a depot is waiting for unbunching. | |
void | IncrementImplicitOrderIndex () |
Increments cur_implicit_order_index, keeps care of the wrap-around and invalidates the GUI. | |
void | IncrementRealOrderIndex () |
Advanced cur_real_order_index to the next real order, keeps care of the wrap-around and invalidates the GUI. | |
void | UpdateRealOrderIndex () |
Skip implicit orders until cur_real_order_index is a non-implicit order. | |
Order * | GetOrder (int index) const |
Returns order 'index' of a vehicle or nullptr when it doesn't exists. | |
Order * | GetLastOrder () const |
Returns the last order of a vehicle, or nullptr if it doesn't exists. | |
bool | IsEngineCountable () const |
Check if a vehicle is counted in num_engines in each company struct. | |
bool | HasEngineType () const |
Check whether Vehicle::engine_type has any meaning. | |
bool | HasDepotOrder () const |
Checks if a vehicle has a depot in its order list. | |
void | HandlePathfindingResult (bool path_found) |
Handle the pathfinding result, especially the lost status. | |
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. | |
Vehicle * | GetNextArticulatedPart () const |
Get the next part of an articulated engine. | |
Vehicle * | GetFirstEnginePart () |
Get the first part of an articulated engine. | |
const Vehicle * | GetFirstEnginePart () const |
Get the first part of an articulated engine. | |
Vehicle * | GetLastEnginePart () |
Get the last part of an articulated engine. | |
Vehicle * | GetNextVehicle () const |
Get the next real (non-articulated part) vehicle in the consist. | |
Vehicle * | GetPrevVehicle () const |
Get the previous real (non-articulated part) vehicle in the consist. | |
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, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool > | |
void * | operator new (size_t size) |
Allocates space for new Titem. | |
void * | operator new (size_t size, size_t 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) |
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. | |
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. | ||
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. | ||
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. 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 | |
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 (. | ||
Protected Member Functions | |
uint16_t | GetPower () const |
Allows to know the power value that this vehicle will use. | |
uint16_t | GetPoweredPartPower (const Train *head) const |
Returns a value if this articulated part is powered. | |
uint16_t | GetWeight () const |
Allows to know the weight value that this vehicle will use. | |
uint16_t | GetMaxWeight () const override |
Calculates the weight value that this vehicle will have when fully loaded with its current cargo. | |
uint8_t | GetTractiveEffort () const |
Allows to know the tractive effort value that this vehicle will use. | |
uint8_t | GetAirDragArea () const |
Gets the area used for calculating air drag. | |
uint8_t | GetAirDrag () const |
Gets the air drag coefficient of this vehicle. | |
AccelStatus | GetAccelerationStatus () const |
Checks the current acceleration status of this vehicle. | |
uint16_t | GetCurrentSpeed () const |
Calculates the current speed of this vehicle. | |
uint32_t | GetRollingFriction () const |
Returns the rolling friction coefficient of this vehicle. | |
int | GetAccelerationType () const |
Allows to know the acceleration type of a vehicle. | |
uint32_t | GetSlopeSteepness () const |
Returns the slope steepness used by this vehicle. | |
uint16_t | GetMaxTrackSpeed () const |
Gets the maximum speed allowed by the track for this vehicle. | |
int16_t | GetCurveSpeedModifier () const |
Returns the curve speed modifier of this vehicle. | |
bool | TileMayHaveSlopedTrack () const |
Checks if the vehicle is at a tile that can be sloped. | |
bool | HasToUseGetSlopePixelZ () |
Trains can always use the faster algorithm because they have always the same direction as the track under them. | |
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. | |
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. | |
static T * | Get (size_t index) |
Gets vehicle with given index. | |
static T * | GetIfValid (size_t index) |
Returns vehicle if the index is a valid index for this vehicle type. | |
static T * | From (Vehicle *v) |
Converts a Vehicle to SpecializedVehicle with type checking. | |
static const T * | From (const Vehicle *v) |
Converts a const Vehicle to const SpecializedVehicle with type checking. | |
static Pool::IterateWrapper< T > | Iterate (size_t from=0) |
Returns an iterable ensemble of all valid vehicles of type T. | |
Static Public Member Functions inherited from Vehicle | |
static uint | GetAdvanceSpeed (uint speed) |
Determines the effective vehicle movement speed. | |
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() | |
static bool | CleaningPool () |
Returns current state of pool cleaning - yes or no. | |
static bool | IsValidID (size_t index) |
Tests whether given index can be used to get valid (non-nullptr) Titem. | |
static Titem * | Get (size_t index) |
Returns Titem with given index. | |
static Titem * | GetIfValid (size_t 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. | |
Static Public Attributes inherited from SpecializedVehicle< T, Type > | |
static const VehicleType | EXPECTED_TYPE = Type |
Specialized type. | |
|
inline |
|
inlinevirtual |
We want to 'destruct' the right class.
Definition at line 108 of file train.h.
References Vehicle::PreDestructor().
|
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 AdvanceWagonsAfterSwap(), AdvanceWagonsBeforeSwap(), TicksToLeaveDepot(), and VehicleEnter_Track().
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.
References _settings_game, TrainCache::cached_curve_speed_mod, TrainCache::cached_max_curve_speed, VehicleCache::cached_max_speed, TrainCache::cached_tilt, GroundVehicleCache::cached_total_length, CALLBACK_FAILED, EngineInfo::callback_mask, EngineInfo::cargo_age_period, GroundVehicle< Train, VEH_TRAIN >::CargoChanged(), CBID_VEHICLE_LENGTH, CBM_VEHICLE_LENGTH, CCF_CAPACITY, CCF_LENGTH, Clamp(), ClrBit(), Engine::DetermineCapacity(), EF_RAIL_TILTS, Vehicle::engine_type, ErrorUnknownCallbackResult(), GBUG_VEH_CAPACITY, GroundVehicle< Train, VEH_TRAIN >::gcache, GetCurveSpeedLimit(), Engine::GetGRF(), Engine::GetGRFID(), GetRailTypeInfo(), GetVehicleCallback(), HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::index, INVALID_ENGINE, Vehicle::InvalidateNewGRFCache(), InvalidateNewGRFInspectWindow(), InvalidateWindowData(), GroundVehicle< Train, VEH_TRAIN >::IsFreeWagon(), Vehicle::IsFrontEngine(), RailVehicleInfo::max_speed, EngineInfo::misc_flags, SpecializedVehicle< T, Type >::Next(), RailVehicleInfo::pow_wag_power, RailVehicleInfo::power, RailTypeInfo::powered_railtypes, PROP_TRAIN_CARGO_AGE_PERIOD, PROP_TRAIN_SHORTEN_FACTOR, PROP_TRAIN_SPEED, PROP_TRAIN_USER_DATA, RailVehicleInfo::railtype, RAILTYPE_RAIL, RAILTYPES_NONE, RAILTYPES_RAIL, RAILVEH_WAGON, SetBit(), SetWindowDirty(), RailVehicleInfo::shorten_factor, ShowNewGrfVehicleError(), UpdateAcceleration(), RailVehicleInfo::user_def_data, UsesWagonOverride(), Vehicle::vcache, VE_DISABLE_WAGON_POWER, GameSettings::vehicle, VEHICLE_LENGTH, VehicleLengthChanged(), VIWD_CONSIST_CHANGED, VRF_EL_ENGINE_ALLOWED_NORMAL_RAIL, VRF_POWEREDWAGON, VehicleSettings::wagon_speed_limits, WC_VEHICLE_DETAILS, WC_VEHICLE_ORDERS, and WC_VEHICLE_REFIT.
Referenced by AfterLoadVehiclesPhase2(), CmdBuildRailVehicle(), CmdReverseTrainDirection(), DeleteLastWagon(), NormaliseTrainHead(), ReverseTrainDirection(), and VehicleEnterDepot().
|
overridevirtual |
The train vehicle crashed! Update its status and other parts around it.
flooded | Crash was caused by flooding. |
Reimplemented from GroundVehicle< Train, VEH_TRAIN >.
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 AS_ACCEL, AS_BRAKE, HasBit(), Vehicle::vehstatus, VRF_TRAIN_STUCK, and VS_STOPPED.
Referenced by UpdateSpeed().
|
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 |
Gets the air drag coefficient of this vehicle.
Definition at line 264 of file train.h.
References RailVehicleInfo::air_drag, and Vehicle::engine_type.
|
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, TrainCache::cached_max_curve_speed, GroundVehicleCache::cached_max_track_speed, Vehicle::cur_speed, Vehicle::current_order, GroundVehicle< Train, VEH_TRAIN >::gcache, GetBridgeSpec(), GetBridgeType(), Order::GetMaxSpeed(), GetStationIndex(), GetTrainStopLocation(), IsRailStationTile(), SpecializedVehicle< T, Type >::Next(), Order::ShouldStopAtStation(), BridgeSpec::speed, Vehicle::tile, TILE_SIZE, TRACK_BIT_DEPOT, TRACK_BIT_WORMHOLE, VehicleSettings::train_acceleration_model, GameSettings::vehicle, and VS_HIDDEN.
Referenced by UpdateSpeed().
|
inlineprotected |
Calculates the current speed of this vehicle.
Definition at line 282 of file train.h.
References Vehicle::cur_speed.
Referenced by GetRollingFriction().
int Train::GetCursorImageOffset | ( | ) | const |
Definition at line 440 of file train_cmd.cpp.
uint16_t Train::GetCurveSpeedLimit | ( | ) | const |
Computes train speed limit caused by curves.
Definition at line 307 of file train_cmd.cpp.
References _settings_game, TrainCache::cached_curve_speed_mod, TrainCache::cached_tilt, CeilDiv(), Clamp(), RailTypeInfo::curve_speed, DIRDIFF_45LEFT, DIRDIFF_45RIGHT, DIRDIFF_90LEFT, DIRDIFF_90RIGHT, DIRDIFF_SAME, DirDifference(), SpecializedVehicle< T, Type >::First(), GetRailType(), GetRailTypeInfo(), SpecializedVehicle< T, Type >::Next(), Vehicle::tile, VehicleSettings::train_acceleration_model, GameSettings::vehicle, and VEHICLE_LENGTH.
Referenced by ConsistChanged(), and TrainController().
|
inlineprotected |
Returns the curve speed modifier of this vehicle.
Definition at line 330 of file train.h.
References Vehicle::engine_type, and PROP_TRAIN_CURVE_SPEED_MOD.
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.
References GroundVehicleCache::cached_veh_length, EF_RAIL_FLIPS, Vehicle::engine_type, GroundVehicle< Train, VEH_TRAIN >::gcache, Vehicle::GetEngine(), Engine::GetGRF(), HasBit(), ScaleSpriteTrad(), GRFFile::traininfo_vehicle_pitch, GRFFile::traininfo_vehicle_width, VEHICLE_LENGTH, and VRF_REVERSE_DIRECTION.
Referenced by DrawTrainDetails(), GetLengthOfArticulatedVehicle(), and DepotWindow::OnPaint().
|
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.
Referenced by CYapfCostRailT< Types >::PfCalcCost().
|
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.
|
inlineoverridevirtual |
Sets the expense type associated to this vehicle type.
income | whether this is income or (running) expenses of the vehicle |
Reimplemented from Vehicle.
Definition at line 114 of file train.h.
References EXPENSES_TRAIN_REVENUE, and EXPENSES_TRAIN_RUN.
|
overridevirtual |
Get the sprite to display the train.
direction | Direction of view/travel. |
image_type | Visualisation context. |
Reimplemented from Vehicle.
Definition at line 494 of file train_cmd.cpp.
References Vehicle::cargo, Vehicle::direction, Vehicle::GetEngine(), HasBit(), VehicleSpriteSeq::IsValid(), Engine::original_image_index, ReverseDir(), VehicleSpriteSeq::Set(), Vehicle::spritenum, VehicleCargoList::StoredCount(), and VRF_REVERSE_DIRECTION.
Referenced by DrawTrainDetails(), and DrawTrainImage().
|
inlineprotected |
Gets the maximum speed allowed by the track for this vehicle.
Definition at line 321 of file train.h.
References GetRailType(), GetRailTypeInfo(), RailTypeInfo::max_speed, and Vehicle::tile.
|
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.
References Vehicle::cargo_type, Vehicle::engine_type, GroundVehicleCache::first_engine, GroundVehicle< Train, VEH_TRAIN >::gcache, CargoSpec::Get(), Vehicle::GetEngine(), HasBit(), Vehicle::IsArticulatedPart(), RailVehicleInfo::pow_wag_weight, PROP_TRAIN_WEIGHT, and VRF_POWEREDWAGON.
|
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(), and ReplaceChain().
|
overridevirtual |
Get the location of the next station to visit.
station | Next station to visit. |
Reimplemented from Vehicle.
Definition at line 2951 of file train_cmd.cpp.
References FACIL_TRAIN, BaseStation::facilities, SpecializedStation< Station, false >::Get(), Vehicle::IncrementRealOrderIndex(), Vehicle::last_station_visited, and BaseStation::xy.
|
inlineprotected |
Allows to know the power value that this vehicle will use.
Definition at line 187 of file train.h.
References Vehicle::engine_type, GetRailType(), HasPowerOnRail(), Vehicle::IsArticulatedPart(), GroundVehicle< Train, VEH_TRAIN >::IsMultiheaded(), PROP_TRAIN_POWER, and Vehicle::tile.
|
inlineprotected |
Returns a value if this articulated part is powered.
Definition at line 204 of file train.h.
References GroundVehicleCache::first_engine, GroundVehicle< Train, VEH_TRAIN >::gcache, GetRailType(), HasBit(), HasPowerOnRail(), RailVehicleInfo::pow_wag_power, Vehicle::tile, and VRF_POWEREDWAGON.
|
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(), Engine::GetGRF(), SpecializedVehicle< T, Type >::GetNextVehicle(), GetPrice(), GroundVehicle< T, Type >::IsMultiheaded(), PROP_TRAIN_RUNNING_COST_FACTOR, and RailVehicleInfo::running_cost.
Referenced by OnNewEconomyDay().
|
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 |
Allows to know the tractive effort value that this vehicle will use.
Definition at line 245 of file train.h.
References Vehicle::engine_type, and PROP_TRAIN_TRACTIVE_EFFORT.
|
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 CheckNextTrainTile(), CmdBuildSingleSignal(), Crash(), FollowTrainReservation(), FreeTrainReservation(), FreeTrainTrackReservation(), RestoreTrainReservation(), ReverseTrainDirection(), TrainController(), YapfTrainCheckReverse(), and YapfTrainFindNearestDepot().
|
inlineprotected |
Allows to know the weight value that this vehicle will use.
Definition at line 218 of file train.h.
References Vehicle::cargo, Vehicle::cargo_type, Vehicle::engine_type, GroundVehicleCache::first_engine, GroundVehicle< Train, VEH_TRAIN >::gcache, CargoSpec::Get(), HasBit(), Vehicle::IsArticulatedPart(), RailVehicleInfo::pow_wag_weight, PROP_TRAIN_WEIGHT, VehicleCargoList::StoredCount(), and VRF_POWEREDWAGON.
|
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.
|
inlineoverridevirtual |
Whether this is the primary vehicle in the chain.
Reimplemented from Vehicle.
Definition at line 116 of file train.h.
References Vehicle::IsFrontEngine().
Referenced by CmdForceTrainProceed(), CmdReverseTrainDirection(), and CmdSellRailWagon().
|
overridevirtual |
Goods at the consist have changed, update the graphics, cargo, and acceleration.
Reimplemented from Vehicle.
Definition at line 2966 of file train_cmd.cpp.
References GroundVehicle< Train, VEH_TRAIN >::CargoChanged(), Vehicle::colourmap, SpecializedVehicle< T, Type >::Next(), UpdateAcceleration(), and SpecializedVehicle< T, Type >::UpdateViewport().
|
overridevirtual |
Calendar day handler.
Reimplemented from Vehicle.
Definition at line 4176 of file train_cmd.cpp.
References AgeVehicle().
|
overridevirtual |
Economy day handler.
Reimplemented from Vehicle.
Definition at line 4182 of file train_cmd.cpp.
References CheckIfTrainNeedsService(), CheckOrders(), Vehicle::current_order, Vehicle::day_counter, Ticks::DAY_TICKS, TimerGameConst< struct Calendar >::DAYS_IN_YEAR, DecreaseVehicleValue(), Vehicle::dest_tile, EconomyAgeVehicle(), EXPENSES_TRAIN_RUN, SpecializedStation< Station, false >::Get(), CommandCost::GetCost(), Order::GetDestination(), GetRunningCost(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::index, INVALID_TILE, Vehicle::IsFrontEngine(), Order::IsType(), Vehicle::owner, Vehicle::profit_this_year, Vehicle::running_ticks, SetWindowClassesDirty(), SetWindowDirty(), SubtractMoneyFromCompanyFract(), OrthogonalTileArea::tile, Vehicle::tile, BaseStation::train_station, WC_TRAINS_LIST, and WC_VEHICLE_DETAILS.
|
overridevirtual |
Play a sound for a train leaving the station.
Reimplemented from Vehicle.
Definition at line 2182 of file train_cmd.cpp.
References Vehicle::engine_type, PlayVehicleSound(), SND_04_DEPARTURE_STEAM, SND_0A_DEPARTURE_TRAIN, SND_41_DEPARTURE_MAGLEV, SND_47_DEPARTURE_MONORAIL, and VSE_START.
Referenced by CheckTrainStayInDepot().
void Train::ReserveTrackUnderConsist | ( | ) | const |
Tries to reserve track under whole train consist.
Definition at line 3088 of file train_cmd.cpp.
References DiagDirToDiagTrack(), GetTunnelBridgeDirection(), SpecializedVehicle< T, Type >::Next(), Vehicle::tile, TRACK_BIT_DEPOT, TRACK_BIT_WORMHOLE, TrackBitsToTrack(), and TryReserveRailTrack().
Referenced by TrainCrashed().
|
overridevirtual |
Update train vehicle data for a tick.
Reimplemented from Vehicle.
Definition at line 4109 of file train_cmd.cpp.
References crash_anim_pos, Vehicle::cur_speed, BaseConsist::current_order_time, GroundVehicle< Train, VEH_TRAIN >::IsFreeWagon(), Vehicle::IsFrontEngine(), PFE_GL_TRAINS, Vehicle::running_ticks, Vehicle::tick_counter, Vehicle::vehstatus, VS_CRASHED, 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.
void Train::UpdateAcceleration | ( | ) |
Update acceleration of the train from the cached power and weight.
Definition at line 430 of file train_cmd.cpp.
References Vehicle::acceleration, GroundVehicleCache::cached_power, GroundVehicleCache::cached_weight, Clamp(), GroundVehicle< Train, VEH_TRAIN >::gcache, GroundVehicle< Train, VEH_TRAIN >::IsFreeWagon(), and Vehicle::IsFrontEngine().
Referenced by CheckTrainStayInDepot(), ConsistChanged(), and MarkDirty().
|
overridevirtual |
Updates the x and y offsets and the size of the sprite used for this vehicle.
Reimplemented from Vehicle.
Definition at line 1465 of file train_cmd.cpp.
References GroundVehicleCache::cached_veh_length, DIR_NE, DIR_NW, DIR_SE, DIR_SW, Vehicle::direction, EF_RAIL_FLIPS, Vehicle::engine_type, GroundVehicle< Train, VEH_TRAIN >::gcache, HasBit(), IsDiagonalDirection(), ReverseDir(), VEHICLE_LENGTH, VRF_REVERSE_DIRECTION, Vehicle::x_bb_offs, Vehicle::x_extent, Vehicle::x_offs, Vehicle::y_bb_offs, Vehicle::y_extent, Vehicle::y_offs, and Vehicle::z_extent.
Referenced by TrainController().
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, Vehicle::acceleration, AS_BRAKE, GroundVehicle< Train, VEH_TRAIN >::DoUpdateSpeed(), GroundVehicle< Train, VEH_TRAIN >::GetAcceleration(), GetAccelerationStatus(), GetCurrentMaxSpeed(), VehicleSettings::train_acceleration_model, and GameSettings::vehicle.
|
friend |
uint16_t Train::crash_anim_pos |
Crash animation counter.
Definition at line 91 of file train.h.
Referenced by Crash(), HandleCrashedTrain(), and Tick().
TrainForceProceeding Train::force_proceed |
TrainCache Train::tcache |
uint16_t Train::wait_counter |
Ticks waiting in front of a signal, ticks being stuck or a counter for forced proceeding through signals.
Definition at line 92 of file train.h.
Referenced by CheckTrainStayInDepot(), MarkTrainAsStuck(), ReverseTrainDirection(), TrainController(), TryPathReserve(), and VehicleEnterDepot().