OpenTTD
|
'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. More... | |
void | MarkDirty () |
Goods at the consist have changed, update the graphics, cargo, and acceleration. More... | |
void | UpdateDeltaXY (Direction direction) |
Updates the x and y offsets and the size of the sprite used for this vehicle. More... | |
ExpensesType | GetExpenseType (bool income) const |
Sets the expense type associated to this vehicle type. More... | |
void | PlayLeaveStationSound () const |
Play a sound for a train leaving the station. More... | |
bool | IsPrimaryVehicle () const |
Whether this is the primary vehicle in the chain. | |
void | GetImage (Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const |
Get the sprite to display the train. More... | |
int | GetDisplaySpeed () const |
Gets the speed in km-ish/h that can be sent into SetDParam for string processing. More... | |
int | GetDisplayMaxSpeed () const |
Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing. More... | |
Money | GetRunningCost () const |
Get running cost for the train consist. More... | |
int | GetDisplayImageWidth (Point *offset=NULL) const |
Get the width of a train vehicle image in the GUI. More... | |
bool | IsInDepot () const |
Check whether the vehicle is in the depot. More... | |
bool | Tick () |
Update train vehicle data for a tick. More... | |
void | OnNewDay () |
Update day counters of the train vehicle. More... | |
uint | Crash (bool flooded=false) |
The train vehicle crashed! Update its status and other parts around it. More... | |
Trackdir | GetVehicleTrackdir () const |
Get the tracks of the train vehicle. More... | |
TileIndex | GetOrderStationLocation (StationID station) |
Get the location of the next station to visit. More... | |
bool | FindClosestDepot (TileIndex *location, DestinationID *destination, bool *reverse) |
Locate the closest depot for this consist, and return the information to the caller. More... | |
void | ReserveTrackUnderConsist () const |
Tries to reserve track under whole train consist. More... | |
int | 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. More... | |
int | GetCurrentMaxSpeed () const |
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... | |
![]() | |
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 |
Check whether the whole vehicle chain is in the depot. More... | |
uint | Crash (bool flooded) |
Common code executed for crashed ground vehicles. More... | |
int64 | 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... | |
![]() | |
SpecializedVehicle () | |
Set vehicle type correctly. | |
Train * | First () const |
Get the first vehicle in the chain. More... | |
Train * | Last () |
Get the last vehicle in the chain. More... | |
const Train * | Last () const |
Get the last vehicle in the chain. More... | |
Train * | Next () const |
Get next vehicle in the chain. More... | |
Train * | Previous () const |
Get previous vehicle in the chain. More... | |
Train * | GetNextArticulatedPart () |
Get the next part of an articulated engine. More... | |
Train * | GetNextArticulatedPart () const |
Get the next part of an articulated engine. More... | |
Train * | GetFirstEnginePart () |
Get the first part of an articulated engine. More... | |
const Train * | GetFirstEnginePart () const |
Get the first part of an articulated engine. More... | |
Train * | GetLastEnginePart () |
Get the last part of an articulated engine. More... | |
Train * | GetNextVehicle () const |
Get the next real (non-articulated part) vehicle in the consist. More... | |
Train * | 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... | |
![]() | |
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. More... | |
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 & | GetGroundVehicleFlags () |
Access the ground vehicle flags of the vehicle. More... | |
const uint16 & | 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... | |
void | GetConsistFreeCapacities (SmallMap< CargoID, uint > &capacities) const |
Get a map of cargoes and free capacities in the consist. More... | |
uint | GetConsistTotalCapacity () const |
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... | |
const Engine * | GetEngine () const |
Retrieves the engine of the vehicle. More... | |
const GRFFile * | GetGRF () const |
Retrieve the NewGRF the vehicle is tied to. More... | |
uint32 | 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... | |
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... | |
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 | CopyVehicleConfigAndStatistics (const Vehicle *src) |
Copy certain configurations and statistics of a vehicle after successful autoreplace/renew The function shall copy everything that cannot be copied by a command (like orders / group etc), and that shall not be resetted for the new vehicle. 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... | |
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 | UpdatePositionAndViewport () |
Update the position of the vehicle, and update the viewport. | |
void | MarkAllViewportsDirty () const |
Marks viewports dirty where the vehicle's image is. | |
uint16 | GetServiceInterval () const |
void | SetServiceInterval (uint16 interval) |
bool | ServiceIntervalIsCustom () const |
bool | ServiceIntervalIsPercent () const |
void | SetServiceIntervalIsCustom (bool on) |
void | SetServiceIntervalIsPercent (bool on) |
void | IncrementImplicitOrderIndex () |
Increments cur_implicit_order_index, keeps care of the wrap-around and invalidates the GUI. 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 NULL when it doesn't exists. More... | |
Order * | GetLastOrder () const |
Returns the last order of a vehicle, or NULL 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... | |
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... | |
![]() | |
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 size, void *ptr) |
Allocates space for new Titem at given memory address. More... | |
void | operator delete (void *p) |
Marks Titem as free. More... | |
![]() | |
void | CopyConsistPropertiesFrom (const BaseConsist *src) |
Copy properties of other BaseConsist. More... | |
Data Fields | |
TrainCache | tcache |
Train * | other_multiheaded_part |
uint16 | crash_anim_pos |
Crash animation counter. | |
uint16 | flags |
TrackBitsByte | track |
TrainForceProceedingByte | force_proceed |
RailTypeByte | railtype |
RailTypes | compatible_railtypes |
uint16 | wait_counter |
Ticks waiting in front of a signal, ticks being stuck or a counter for forced proceeding through signals. More... | |
![]() | |
GroundVehicleCache | gcache |
Cache of often calculated values. | |
uint16 | gv_flags |
![]() | |
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. | |
Year | build_year |
Year the vehicle has been built. | |
Date | age |
Age in days. | |
Date | max_age |
Maximum age. | |
Date | date_of_last_service |
Last date the vehicle had a service at a depot. | |
uint16 | reliability |
Reliability. | |
uint16 | reliability_spd_dec |
Reliability decrease speed. | |
byte | breakdown_ctr |
Counter for managing breakdown events. More... | |
byte | breakdown_delay |
Counter for managing breakdown length. | |
byte | breakdowns_since_last_service |
Counter for the amount of breakdowns. | |
byte | breakdown_chance |
Current chance of breakdowns. | |
int32 | x_pos |
x coordinate. | |
int32 | y_pos |
y coordinate. | |
int32 | z_pos |
z coordinate. | |
DirectionByte | direction |
facing | |
OwnerByte | owner |
Which company owns the vehicle? | |
byte | spritenum |
currently displayed sprite index 0xfd == custom sprite, 0xfe == custom second head sprite 0xff == reserved for another custom sprite | |
VehicleSpriteSeq | sprite_seq |
Vehicle appearance. | |
byte | x_extent |
x-extent of vehicle bounding box | |
byte | y_extent |
y-extent of vehicle bounding box | |
byte | z_extent |
z-extent of vehicle bounding box | |
int8 | x_bb_offs |
x offset of vehicle bounding box | |
int8 | y_bb_offs |
y offset of vehicle bounding box | |
int8 | x_offs |
x offset for vehicle sprite | |
int8 | y_offs |
y offset for vehicle sprite | |
EngineID | engine_type |
The type of engine used for this vehicle. | |
TextEffectID | fill_percent_te_id |
a text-effect id to a loading indicator object | |
UnitID | unitnumber |
unit number, for display purposes only | |
uint16 | cur_speed |
current speed | |
byte | subspeed |
fractional speed | |
byte | acceleration |
used by train & aircraft | |
uint32 | motion_counter |
counter to occasionally play a vehicle sound. | |
byte | progress |
The percentage (if divided by 256) this vehicle already crossed the tile unit. | |
byte | random_bits |
Bits used for determining which randomized variational spritegroups to use when drawing. | |
byte | waiting_triggers |
Triggers to be yet matched before rerandomizing the random bits. | |
StationID | last_station_visited |
The last station we stopped at. | |
StationID | last_loading_station |
Last station the vehicle has stopped at and could possibly leave from with any cargo loaded. | |
CargoID | cargo_type |
type of cargo this vehicle is carrying | |
byte | cargo_subtype |
Used for livery refits (NewGRF variations) | |
uint16 | cargo_cap |
total capacity | |
uint16 | refit_cap |
Capacity left over from before last refit. | |
VehicleCargoList | cargo |
The cargo this vehicle is carrying. | |
uint16 | cargo_age_counter |
Ticks till cargo is aged next. | |
int8 | trip_occupancy |
NOSAVE: Occupancy of vehicle of the current trip (updated after leaving a station). | |
byte | day_counter |
Increased by one for each day. | |
byte | tick_counter |
Increased by one for each tick. | |
byte | running_ticks |
Number of ticks this vehicle was not stopped this day. | |
byte | vehstatus |
Status. | |
Order | current_order |
The current order (+ status, like: loading) | |
union { | |
OrderList * list | |
Pointer to the order list for this vehicle. | |
Order * old | |
Only used during conversion of old save games. | |
} | orders |
The orders currently assigned to the vehicle. | |
uint16 | load_unload_ticks |
Ticks to wait before starting next cycle. | |
GroupID | group_id |
Index of group Pool array. | |
byte | subtype |
subtype (Filled with values from #EffectVehicles/#TrainSubTypes/#AircraftSubTypes) | |
NewGRFCache | grf_cache |
Cache of often used calculated NewGRF values. | |
VehicleCache | vcache |
Cache of often used vehicle values. | |
![]() | |
Tindex | index |
Index of this pool item. | |
![]() | |
VehicleTypeByte | type |
Type of vehicle. | |
![]() | |
char * | name |
Name of vehicle. | |
uint32 | current_order_time |
How many ticks have passed since this order started. | |
int32 | lateness_counter |
How many ticks late (or early if negative) this vehicle is. | |
Date | timetable_start |
When the vehicle is supposed to start the timetable. | |
uint16 | 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 | vehicle_flags |
Used for gradual loading and other miscellaneous things (. More... | |
Protected Member Functions | |
uint16 | GetPower () const |
Allows to know the power value that this vehicle will use. More... | |
uint16 | GetPoweredPartPower (const Train *head) const |
Returns a value if this articulated part is powered. More... | |
uint16 | GetWeight () const |
Allows to know the weight value that this vehicle will use. More... | |
byte | GetTractiveEffort () const |
Allows to know the tractive effort value that this vehicle will use. More... | |
byte | GetAirDragArea () const |
Gets the area used for calculating air drag. More... | |
byte | GetAirDrag () const |
Gets the air drag coefficient of this vehicle. More... | |
AccelStatus | GetAccelerationStatus () const |
Checks the current acceleration status of this vehicle. More... | |
uint16 | GetCurrentSpeed () const |
Calculates the current speed of this vehicle. More... | |
uint32 | 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 | GetSlopeSteepness () const |
Returns the slope steepness used by this vehicle. More... | |
uint16 | GetMaxTrackSpeed () const |
Gets the maximum speed allowed by the track for 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... | |
![]() | |
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 | |
![]() | |
typedef GroundVehicle< Train, Type > | GroundVehicleBase |
Our type. | |
![]() | |
typedef SpecializedVehicle< Train, Type > | SpecializedVehicleBase |
Our type. | |
![]() | |
static bool | IsValidID (size_t index) |
Tests whether given index is a valid index for vehicle of this type. More... | |
static Train * | Get (size_t index) |
Gets vehicle with given index. More... | |
static Train * | GetIfValid (size_t index) |
Returns vehicle if the index is a valid index for this vehicle type. More... | |
static Train * | From (Vehicle *v) |
Converts a Vehicle to SpecializedVehicle with type checking. More... | |
static const Train * | From (const Vehicle *v) |
Converts a const Vehicle to const SpecializedVehicle with type checking. More... | |
![]() | |
static uint | GetAdvanceSpeed (uint speed) |
Determines the effective vehicle movement speed. More... | |
![]() | |
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-NULL) 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 (size_t index) |
Dummy function called after destructor of each member. More... | |
![]() | |
static const VehicleType | EXPECTED_TYPE |
Specialized type. | |
|
inlinevirtual |
We want to 'destruct' the right class.
Definition at line 108 of file train.h.
References Vehicle::direction, Vehicle::MarkDirty(), and Vehicle::UpdateDeltaXY().
|
inline |
Calculate the offset from this vehicle's center to the following center taking the vehicle lengths into account.
Definition at line 170 of file train.h.
References GroundVehicleCache::cached_veh_length, GroundVehicle< T, Type >::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 129 of file train_cmd.cpp.
Referenced by DeleteLastWagon(), and NormaliseTrainHead().
|
virtual |
The train vehicle crashed! Update its status and other parts around it.
flooded | Crash was caused by flooding. |
Reimplemented from Vehicle.
Definition at line 2945 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().
|
virtual |
Locate the closest depot for this consist, and return the information to the caller.
location | [out] If not NULL and a depot is found, store its location in the given address. |
destination | [out] If not NULL and a depot is found, store its index in the given address. |
reverse | [out] If not NULL and a depot is found, store reversal information in the given address. |
Reimplemented from Vehicle.
Definition at line 2042 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 265 of file train.h.
References HasBit(), Vehicle::vehstatus, and VS_STOPPED.
|
inlineprotected |
Allows to know the acceleration type of a vehicle.
Definition at line 295 of file train.h.
References RailtypeInfo::acceleration_type, and GetRailTypeInfo().
|
inlineprotected |
|
inlineprotected |
Gets the area used for calculating air drag.
Definition at line 246 of file train.h.
References TRACK_BIT_WORMHOLE, Vehicle::vehstatus, and VS_HIDDEN.
|
virtual |
Calculates the maximum speed of the vehicle under its current conditions.
Reimplemented from Vehicle.
Definition at line 392 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 274 of file train.h.
References Vehicle::cur_speed.
int Train::GetCurveSpeedLimit | ( | ) | const |
Computes train speed limit caused by curves.
Definition at line 323 of file train_cmd.cpp.
int Train::GetDisplayImageWidth | ( | Point * | offset = NULL | ) | const |
Get the width of a train vehicle image in the GUI.
offset | Additional offset for positioning the sprite; set to NULL if not needed |
Definition at line 455 of file train_cmd.cpp.
Referenced by NewGRFInspectWindow::DrawWidget(), GetLengthOfArticulatedVehicle(), and GetSingleVehicleWidth().
|
inlinevirtual |
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, Vehicle::GetRunningCost(), and Vehicle::vcache.
|
inlinevirtual |
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< T, Type >::gcache, and GroundVehicleCache::last_speed.
|
inlinevirtual |
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_INC, EXPENSES_TRAIN_RUN, and Vehicle::PlayLeaveStationSound().
|
virtual |
Get the sprite to display the train.
direction | Direction of view/travel. |
image_type | Visualisation context. |
Reimplemented from Vehicle.
Definition at line 485 of file train_cmd.cpp.
References HasBit(), ReverseDir(), Vehicle::spritenum, and VRF_REVERSE_DIRECTION.
|
inlineprotected |
Gets the maximum speed allowed by the track for this vehicle.
Definition at line 313 of file train.h.
References GetRailType(), GetRailTypeInfo(), RailtypeInfo::max_speed, and Vehicle::tile.
|
inline |
Get the next real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist.
Definition at line 146 of file train.h.
References SpecializedVehicle< T, Type >::GetNextVehicle(), and GroundVehicle< T, Type >::IsRearDualheaded().
Referenced by ArrangeTrains(), CmdAutoreplaceVehicle(), and Vehicle::NeedsServicing().
|
virtual |
Get the location of the next station to visit.
station | Next station to visit. |
Reimplemented from Vehicle.
Definition at line 2786 of file train_cmd.cpp.
References Vehicle::last_station_visited.
|
inlineprotected |
Allows to know the power value that this vehicle will use.
Definition at line 185 of file train.h.
References GetRailType(), HasPowerOnRail(), Vehicle::IsArticulatedPart(), and Vehicle::tile.
|
inlineprotected |
Returns a value if this articulated part is powered.
Definition at line 202 of file train.h.
References GetRailType(), HasBit(), HasPowerOnRail(), 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 158 of file train.h.
References SpecializedVehicle< T, Type >::GetPrevVehicle(), and GroundVehicle< T, Type >::IsRearDualheaded().
|
inlineprotected |
|
virtual |
Get running cost for the train consist.
Reimplemented from Vehicle.
Definition at line 3899 of file train_cmd.cpp.
References Vehicle::GetEngine().
|
inlineprotected |
Returns the slope steepness used by this vehicle.
Definition at line 304 of file train.h.
References _settings_game, VehicleSettings::train_slope_steepness, and GameSettings::vehicle.
|
inlineprotected |
|
virtual |
Get the tracks of the train vehicle.
Reimplemented from Vehicle.
Definition at line 4032 of file train_cmd.cpp.
References DiagDirToDiagTrackdir(), Vehicle::direction, DirToDiagDir(), FindFirstTrack(), GetRailDepotDirection(), INVALID_TRACKDIR, Vehicle::tile, TRACK_BIT_DEPOT, TRACK_BIT_WORMHOLE, TrackDirectionToTrackdir(), Vehicle::vehstatus, and VS_CRASHED.
Referenced by Crash(), FreeTrainReservation(), NPFTrainFindNearestDepot(), RestoreTrainReservation(), YapfTrainCheckReverse(), and YapfTrainFindNearestDepot().
|
inlineprotected |
Allows to know the weight value that this vehicle will use.
Definition at line 216 of file train.h.
References Vehicle::cargo, Vehicle::cargo_type, FreightWagonMult(), CargoSpec::Get(), Vehicle::IsArticulatedPart(), VehicleCargoList::StoredCount(), and CargoSpec::weight.
|
inlineprotected |
|
inlinevirtual |
Check whether the vehicle is in the depot.
Reimplemented from Vehicle.
Definition at line 122 of file train.h.
References GroundVehicle< T, Type >::Crash(), Vehicle::FindClosestDepot(), Vehicle::GetCurrentMaxSpeed(), Vehicle::GetOrderStationLocation(), Vehicle::GetVehicleTrackdir(), OnNewDay(), Vehicle::Tick(), and TRACK_BIT_DEPOT.
|
virtual |
Goods at the consist have changed, update the graphics, cargo, and acceleration.
Reimplemented from Vehicle.
Definition at line 2801 of file train_cmd.cpp.
References Vehicle::colourmap.
|
virtual |
Update day counters of the train vehicle.
Reimplemented from Vehicle.
Definition at line 3994 of file train_cmd.cpp.
References AgeVehicle(), Vehicle::day_counter, DecreaseVehicleValue(), and Vehicle::IsFrontEngine().
|
virtual |
Play a sound for a train leaving the station.
Reimplemented from Vehicle.
Definition at line 2055 of file train_cmd.cpp.
void Train::ReserveTrackUnderConsist | ( | ) | const |
Tries to reserve track under whole train consist.
Definition at line 2923 of file train_cmd.cpp.
References DiagDirToDiagTrack(), GetTunnelBridgeDirection(), SpecializedVehicle< T, Type >::Next(), TRACK_BIT_DEPOT, TRACK_BIT_WORMHOLE, TrackBitsToTrack(), and TryReserveRailTrack().
Referenced by TrainCrashed().
|
virtual |
Update train vehicle data for a tick.
Reimplemented from Vehicle.
Definition at line 3924 of file train_cmd.cpp.
References Vehicle::cur_speed, BaseConsist::current_order_time, Vehicle::IsFrontEngine(), 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 322 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 440 of file train_cmd.cpp.
|
virtual |
Updates the x and y offsets and the size of the sprite used for this vehicle.
direction | the direction the vehicle is facing |
Reimplemented from Vehicle.
Definition at line 1445 of file train_cmd.cpp.
References GroundVehicleCache::cached_veh_length, DIR_NE, DIR_NW, DIR_SE, DIR_SW, Vehicle::direction, GroundVehicle< Train, VEH_TRAIN >::gcache, IsDiagonalDirection(), VEHICLE_LENGTH, Vehicle::x_bb_offs, Vehicle::x_extent, Vehicle::x_offs, Vehicle::y_bb_offs, Vehicle::y_extent, Vehicle::y_offs, and Vehicle::z_extent.
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 2821 of file train_cmd.cpp.
References _settings_game, VehicleSettings::train_acceleration_model, and GameSettings::vehicle.
uint16 Train::wait_counter |
Ticks waiting in front of a signal, ticks being stuck or a counter for forced proceeding through signals.
Definition at line 103 of file train.h.
Referenced by CheckTrainStayInDepot(), and MarkTrainAsStuck().