'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 () |
Goods at the consist have changed, update the graphics, cargo, and acceleration. | |
void | UpdateDeltaXY (Direction direction) |
Updates the x and y offsets and the size of the sprite used for this vehicle. | |
ExpensesType | GetExpenseType (bool income) const |
Sets the expense type associated to this vehicle type. | |
void | PlayLeaveStationSound () const |
Play a sound for a train leaving the station. | |
bool | IsPrimaryVehicle () const |
Whether this is the primary vehicle in the chain. | |
SpriteID | GetImage (Direction direction, EngineImageType image_type) const |
Get the sprite to display the train. | |
int | GetDisplaySpeed () const |
Gets the speed in km-ish/h that can be sent into SetDParam for string processing. | |
int | GetDisplayMaxSpeed () const |
Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing. | |
Money | GetRunningCost () const |
Get running cost for the train consist. | |
int | GetDisplayImageWidth (Point *offset=NULL) const |
Get the width of a train vehicle image in the GUI. | |
bool | IsInDepot () const |
Is the whole consist the in a depot? | |
bool | IsStoppedInDepot () const |
Is the train stopped in a depot? | |
bool | Tick () |
Update train vehicle data for a tick. | |
void | OnNewDay () |
Update day counters of the train vehicle. | |
uint | Crash (bool flooded=false) |
The train vehicle crashed! Update its status and other parts around it. | |
Trackdir | GetVehicleTrackdir () const |
Get the tracks of the train vehicle. | |
TileIndex | GetOrderStationLocation (StationID station) |
Get the location of the next station to visit. | |
bool | FindClosestDepot (TileIndex *location, DestinationID *destination, bool *reverse) |
Locate the closest depot for this consist, and return the information to the caller. | |
void | ReserveTrackUnderConsist () const |
Tries to reserve track under whole train consist. | |
int | GetCurveSpeedLimit () const |
Computes train speed limit caused by curves. | |
void | ConsistChanged (bool same_length) |
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 |
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. | |
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. | |
Protected Member Functions | |
uint16 | GetPower () const |
Allows to know the power value that this vehicle will use. | |
uint16 | GetPoweredPartPower (const Train *head) const |
Returns a value if this articulated part is powered. | |
uint16 | GetWeight () const |
Allows to know the weight value that this vehicle will use. | |
byte | GetTractiveEffort () const |
Allows to know the tractive effort value that this vehicle will use. | |
byte | GetAirDragArea () const |
Gets the area used for calculating air drag. | |
byte | GetAirDrag () const |
Gets the air drag coefficient of this vehicle. | |
AccelStatus | GetAccelerationStatus () const |
Checks the current acceleration status of this vehicle. | |
uint16 | GetCurrentSpeed () const |
Calculates the current speed of this vehicle. | |
uint32 | GetRollingFriction () const |
Returns the rolling friction coefficient of this vehicle. | |
int | GetAccelerationType () const |
Allows to know the acceleration type of a vehicle. | |
uint32 | GetSlopeSteepness () const |
Returns the slope steepness used by this vehicle. | |
uint16 | GetMaxTrackSpeed () const |
Gets the maximum speed allowed by the track for 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. | |
Friends | |
struct | GroundVehicle< Train, VEH_TRAIN > |
'Train' is either a loco or a wagon.
Definition at line 70 of file train.h.
virtual Train::~Train | ( | ) | [inline, virtual] |
We want to 'destruct' the right class.
Definition at line 90 of file train.h.
References Vehicle::PreDestructor().
int Train::CalcNextVehicleOffset | ( | ) | const [inline] |
Calculate the offset from this vehicle's center to the following center taking the vehicle lengths into account.
Definition at line 153 of file train.h.
References GroundVehicleCache::cached_veh_length, GroundVehicle< T, Type >::gcache, GroundVehicle< Train, VEH_TRAIN >::gcache, and SpecializedVehicle< Train, Type >::Next().
Referenced by AdvanceWagonsAfterSwap(), AdvanceWagonsBeforeSwap(), TicksToLeaveDepot(), and VehicleEnter_Track().
void Train::ConsistChanged | ( | bool | same_length | ) |
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)
same_length | should length of vehicles stay the same? |
Definition at line 121 of file train_cmd.cpp.
References _settings_game, 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, Clamp(), ClrBit(), Engine::DetermineCapacity(), EF_RAIL_TILTS, Vehicle::engine_type, ErrorUnknownCallbackResult(), 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(), InvalidateWindowData(), GroundVehicle< Train, VEH_TRAIN >::IsFreeWagon(), Vehicle::IsFrontEngine(), RailVehicleInfo::max_speed, min(), EngineInfo::misc_flags, 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, RAILVEH_WAGON, SetBit(), SetWindowDirty(), RailVehicleInfo::shorten_factor, UpdateAcceleration(), RailVehicleInfo::user_def_data, UsesWagonOverride(), Vehicle::vcache, VE_DISABLE_WAGON_POWER, GameSettings::vehicle, VEHICLE_LENGTH, VehicleLengthChanged(), VRF_EL_ENGINE_ALLOWED_NORMAL_RAIL, VRF_POWEREDWAGON, VehicleSettings::wagon_speed_limits, WC_VEHICLE_DETAILS, and WC_VEHICLE_REFIT.
Referenced by AfterLoadGame(), AfterLoadVehicles(), CheckCaches(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdRefitVehicle(), CmdReverseTrainDirection(), DeleteLastWagon(), FixupTrainLengths(), NormaliseTrainHead(), ReverseTrainDirection(), SettingsDisableElrail(), TransferCargo(), and VehicleEnterDepot().
uint Train::Crash | ( | bool | flooded = false |
) | [virtual] |
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 2884 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().
bool Train::FindClosestDepot | ( | TileIndex * | location, | |
DestinationID * | destination, | |||
bool * | reverse | |||
) | [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 1986 of file train_cmd.cpp.
References FindDepotData::best_length, FindClosestTrainDepot(), GetDepotIndex(), FindDepotData::reverse, and FindDepotData::tile.
AccelStatus Train::GetAccelerationStatus | ( | ) | const [inline, protected] |
Checks the current acceleration status of this vehicle.
Definition at line 248 of file train.h.
References AS_BRAKE, HasBit(), Vehicle::vehstatus, VRF_TRAIN_STUCK, and VS_STOPPED.
Referenced by UpdateSpeed().
int Train::GetAccelerationType | ( | ) | const [inline, protected] |
Allows to know the acceleration type of a vehicle.
Definition at line 278 of file train.h.
References RailtypeInfo::acceleration_type, and GetRailTypeInfo().
byte Train::GetAirDrag | ( | ) | const [inline, protected] |
Gets the air drag coefficient of this vehicle.
Definition at line 239 of file train.h.
References Vehicle::engine_type.
byte Train::GetAirDragArea | ( | ) | const [inline, protected] |
Gets the area used for calculating air drag.
Definition at line 229 of file train.h.
References TRACK_BIT_WORMHOLE, Vehicle::vehstatus, and VS_HIDDEN.
int Train::GetCurrentMaxSpeed | ( | ) | const [virtual] |
Calculates the maximum speed of the vehicle under its current conditions.
Reimplemented from Vehicle.
Definition at line 370 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, GetCurveSpeedLimit(), GetStationIndex(), GetTrainStopLocation(), IsRailStationTile(), max(), Order::max_speed, min(), Order::ShouldStopAtStation(), Vehicle::tile, TILE_SIZE, TRACK_BIT_DEPOT, VehicleSettings::train_acceleration_model, and GameSettings::vehicle.
Referenced by UpdateSpeed().
uint16 Train::GetCurrentSpeed | ( | ) | const [inline, protected] |
Calculates the current speed of this vehicle.
Definition at line 257 of file train.h.
References Vehicle::cur_speed.
Referenced by GetRollingFriction().
int Train::GetCurveSpeedLimit | ( | ) | const |
Computes train speed limit caused by curves.
Definition at line 301 of file train_cmd.cpp.
References _settings_game, TrainCache::cached_tilt, Clamp(), RailtypeInfo::curve_speed, DIRDIFF_45LEFT, DIRDIFF_45RIGHT, DIRDIFF_90LEFT, DIRDIFF_90RIGHT, DIRDIFF_SAME, DirDifference(), SpecializedVehicle< Train, Type >::First(), GetRailTypeInfo(), VehicleSettings::train_acceleration_model, and GameSettings::vehicle.
Referenced by ConsistChanged(), GetCurrentMaxSpeed(), and TrainController().
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 429 of file train_cmd.cpp.
References GroundVehicleCache::cached_veh_length, GroundVehicle< Train, VEH_TRAIN >::gcache, Vehicle::GetEngine(), Engine::GetGRF(), GRFFile::traininfo_vehicle_pitch, GRFFile::traininfo_vehicle_width, and VEHICLE_LENGTH.
Referenced by DrawTrainDetails(), DrawTrainImage(), GetLengthOfArticulatedVehicle(), GetVehicleWidth(), HighlightDragPosition(), and DepotWindow::OnPaint().
int Train::GetDisplayMaxSpeed | ( | ) | const [inline, virtual] |
Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing.
Reimplemented from Vehicle.
Definition at line 101 of file train.h.
References VehicleCache::cached_max_speed, and Vehicle::vcache.
Referenced by CYapfCostRailT< Types >::PfCalcCost().
int Train::GetDisplaySpeed | ( | ) | const [inline, virtual] |
Gets the speed in km-ish/h that can be sent into SetDParam for string processing.
Reimplemented from Vehicle.
Definition at line 100 of file train.h.
References GroundVehicle< Train, VEH_TRAIN >::gcache, and GroundVehicleCache::last_speed.
ExpensesType Train::GetExpenseType | ( | bool | income | ) | const [inline, virtual] |
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 96 of file train.h.
References EXPENSES_TRAIN_INC.
SpriteID Train::GetImage | ( | Direction | direction, | |
EngineImageType | image_type | |||
) | const [virtual] |
Get the sprite to display the train.
direction | Direction of view/travel. | |
image_type | Visualisation context. |
Reimplemented from Vehicle.
Definition at line 458 of file train_cmd.cpp.
References Vehicle::cargo, Vehicle::cargo_cap, CargoList< Tinst, Tcont >::Count(), Vehicle::GetEngine(), HasBit(), Engine::original_image_index, ReverseDir(), and VRF_REVERSE_DIRECTION.
Referenced by ChangeTrainDirRandomly(), and DrawTrainDetails().
uint16 Train::GetMaxTrackSpeed | ( | ) | const [inline, protected] |
Gets the maximum speed allowed by the track for this vehicle.
Definition at line 296 of file train.h.
References GetRailType(), GetRailTypeInfo(), RailtypeInfo::max_speed, and Vehicle::tile.
Train* Train::GetNextUnit | ( | ) | const [inline] |
Get the next real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist.
Definition at line 129 of file train.h.
References SpecializedVehicle< T, Type >::GetNextVehicle(), SpecializedVehicle< Train, Type >::GetNextVehicle(), and GroundVehicle< T, Type >::IsRearDualheaded().
Referenced by ArrangeTrains(), CmdAutoreplaceVehicle(), Vehicle::NeedsServicing(), and ReplaceChain().
TileIndex Train::GetOrderStationLocation | ( | StationID | station | ) | [virtual] |
Get the location of the next station to visit.
station | Next station to visit. |
Reimplemented from Vehicle.
Definition at line 2727 of file train_cmd.cpp.
References FACIL_TRAIN, BaseStation::facilities, SpecializedVehicle< Train, Type >::Get(), Vehicle::IncrementRealOrderIndex(), Vehicle::last_station_visited, and BaseStation::xy.
uint16 Train::GetPower | ( | ) | const [inline, protected] |
Allows to know the power value that this vehicle will use.
Definition at line 168 of file train.h.
References Vehicle::engine_type, GetRailType(), HasPowerOnRail(), Vehicle::IsArticulatedPart(), GroundVehicle< Train, VEH_TRAIN >::IsMultiheaded(), PROP_TRAIN_POWER, and Vehicle::tile.
uint16 Train::GetPoweredPartPower | ( | const Train * | head | ) | const [inline, protected] |
Returns a value if this articulated part is powered.
Definition at line 185 of file train.h.
References GroundVehicleCache::first_engine, GroundVehicle< Train, VEH_TRAIN >::gcache, GetRailType(), HasBit(), HasPowerOnRail(), Vehicle::tile, and VRF_POWEREDWAGON.
Train* Train::GetPrevUnit | ( | ) | [inline] |
Get the previous real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist.
Definition at line 141 of file train.h.
References SpecializedVehicle< T, Type >::GetPrevVehicle(), SpecializedVehicle< Train, Type >::GetPrevVehicle(), and GroundVehicle< T, Type >::IsRearDualheaded().
Referenced by ReplaceChain().
uint32 Train::GetRollingFriction | ( | ) | const [inline, protected] |
Returns the rolling friction coefficient of this vehicle.
Definition at line 266 of file train.h.
References GetCurrentSpeed().
Money Train::GetRunningCost | ( | ) | const [virtual] |
Get running cost for the train consist.
Reimplemented from Vehicle.
Definition at line 3844 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 OnNewDay().
uint32 Train::GetSlopeSteepness | ( | ) | const [inline, protected] |
Returns the slope steepness used by this vehicle.
Definition at line 287 of file train.h.
References _settings_game, VehicleSettings::train_slope_steepness, and GameSettings::vehicle.
byte Train::GetTractiveEffort | ( | ) | const [inline, protected] |
Allows to know the tractive effort value that this vehicle will use.
Definition at line 220 of file train.h.
References Vehicle::engine_type, and PROP_TRAIN_TRACTIVE_EFFORT.
Trackdir Train::GetVehicleTrackdir | ( | ) | const [virtual] |
Get the tracks of the train vehicle.
Reimplemented from Vehicle.
Definition at line 3977 of file train_cmd.cpp.
References DiagDirToDiagTrackdir(), DirToDiagDir(), FindFirstTrack(), GetRailDepotDirection(), TRACK_BIT_DEPOT, TRACK_BIT_WORMHOLE, TrackDirectionToTrackdir(), Vehicle::vehstatus, and VS_CRASHED.
Referenced by CheckNextTrainTile(), CmdBuildRailStation(), CmdBuildSingleSignal(), Crash(), FollowTrainReservation(), FreeTrainTrackReservation(), NPFTrainCheckReverse(), NPFTrainFindNearestDepot(), RemoveFromRailBaseStation(), ReverseTrainDirection(), YapfTrainCheckReverse(), and YapfTrainFindNearestDepot().
uint16 Train::GetWeight | ( | ) | const [inline, protected] |
Allows to know the weight value that this vehicle will use.
Definition at line 199 of file train.h.
References Vehicle::cargo, Vehicle::cargo_type, CargoList< Tinst, Tcont >::Count(), Vehicle::engine_type, GroundVehicleCache::first_engine, FreightWagonMult(), GroundVehicle< Train, VEH_TRAIN >::gcache, SpecializedVehicle< Train, Type >::Get(), HasBit(), Vehicle::IsArticulatedPart(), PROP_TRAIN_WEIGHT, and VRF_POWEREDWAGON.
bool Train::HasToUseGetSlopePixelZ | ( | ) | [inline, protected] |
bool Train::IsInDepot | ( | ) | const [virtual] |
Is the whole consist the in a depot?
true
iff all vehicles of the train are in a depot. Reimplemented from Vehicle.
Definition at line 740 of file train_cmd.cpp.
References Vehicle::cur_speed, IsRailDepotTile(), SpecializedVehicle< T, Type >::Next(), Vehicle::tile, and TRACK_BIT_DEPOT.
Referenced by CheckIfTrainNeedsService(), CmdForceTrainProceed(), CmdMassStartStopVehicle(), and IsStoppedInDepot().
bool Train::IsStoppedInDepot | ( | ) | const [virtual] |
Is the train stopped in a depot?
Reimplemented from Vehicle.
Definition at line 757 of file train_cmd.cpp.
References Vehicle::IsFrontEngine(), IsInDepot(), Vehicle::vehstatus, and VS_STOPPED.
Referenced by CmdMoveRailVehicle(), and CmdReverseTrainDirection().
void Train::MarkDirty | ( | ) | [virtual] |
Goods at the consist have changed, update the graphics, cargo, and acceleration.
Reimplemented from Vehicle.
Definition at line 2742 of file train_cmd.cpp.
References GroundVehicle< Train, VEH_TRAIN >::CargoChanged(), SpecializedVehicle< T, Type >::Next(), UpdateAcceleration(), and SpecializedVehicle< T, Type >::UpdateViewport().
void Train::OnNewDay | ( | ) | [virtual] |
Update day counters of the train vehicle.
Reimplemented from Vehicle.
Definition at line 3939 of file train_cmd.cpp.
References AgeVehicle(), CheckIfTrainNeedsService(), CheckOrders(), Vehicle::current_order, Vehicle::day_counter, DAY_TICKS, DAYS_IN_YEAR, DecreaseVehicleValue(), Vehicle::dest_tile, EXPENSES_TRAIN_RUN, SpecializedVehicle< Train, Type >::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(), Vehicle::tile, WC_TRAINS_LIST, and WC_VEHICLE_DETAILS.
void Train::PlayLeaveStationSound | ( | ) | const [virtual] |
Play a sound for a train leaving the station.
Reimplemented from Vehicle.
Definition at line 1999 of file train_cmd.cpp.
References Vehicle::engine_type, PlayVehicleSound(), and VSE_START.
Referenced by CheckTrainStayInDepot().
void Train::ReserveTrackUnderConsist | ( | ) | const |
Tries to reserve track under whole train consist.
Definition at line 2862 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 AfterLoadGame(), and TrainCrashed().
bool Train::Tick | ( | ) | [virtual] |
Update train vehicle data for a tick.
Reimplemented from Vehicle.
Definition at line 3869 of file train_cmd.cpp.
References crash_anim_pos, Vehicle::cur_speed, Vehicle::current_order_time, GroundVehicle< Train, VEH_TRAIN >::IsFreeWagon(), Vehicle::IsFrontEngine(), Vehicle::running_ticks, Vehicle::tick_counter, Vehicle::vehstatus, VS_CRASHED, and VS_STOPPED.
bool Train::TileMayHaveSlopedTrack | ( | ) | const [inline, protected] |
Checks if the vehicle is at a tile that can be sloped.
Definition at line 305 of file train.h.
References TRACK_BIT_X.
void Train::UpdateAcceleration | ( | ) |
Update acceleration of the train from the cached power and weight.
Definition at line 414 of file train_cmd.cpp.
References Vehicle::acceleration, GroundVehicleCache::cached_power, GroundVehicleCache::cached_weight, Clamp(), GroundVehicle< Train, VEH_TRAIN >::gcache, and Vehicle::IsFrontEngine().
Referenced by CheckTrainStayInDepot(), ConsistChanged(), and MarkDirty().
void Train::UpdateDeltaXY | ( | Direction | direction | ) | [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 1391 of file train_cmd.cpp.
References GroundVehicleCache::cached_veh_length, DIR_NE, DIR_NW, DIR_SE, DIR_SW, 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.
Referenced by ChangeTrainDirRandomly().
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 2761 of file train_cmd.cpp.
References _settings_game, Vehicle::acceleration, AS_BRAKE, GroundVehicleCache::cached_max_track_speed, GroundVehicle< Train, VEH_TRAIN >::DoUpdateSpeed(), GroundVehicle< Train, VEH_TRAIN >::gcache, GroundVehicle< Train, VEH_TRAIN >::GetAcceleration(), GetAccelerationStatus(), GetCurrentMaxSpeed(), min(), 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 85 of file train.h.
Referenced by AfterLoadGame(), CheckTrainStayInDepot(), MarkTrainAsStuck(), ReverseTrainDirection(), TryPathReserve(), and VehicleEnterDepot().