'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. | |
const char * | GetTypeString () const |
Get a string 'representation' of the vehicle type. | |
void | MarkDirty () |
Marks the vehicles to be redrawn and updates cached variables. | |
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 the sound associated with leaving the station. | |
bool | IsPrimaryVehicle () const |
Whether this is the primary vehicle in the chain. | |
SpriteID | GetImage (Direction direction) const |
Gets the sprite to show for the given direction. | |
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 |
Gets the running cost of a vehicle. | |
int | GetDisplayImageWidth (Point *offset=NULL) const |
Get the width of a train vehicle image in the GUI. | |
bool | IsInDepot () const |
Check whether the vehicle is in the depot. | |
bool | IsStoppedInDepot () const |
Check whether the vehicle is in the depot *and* stopped. | |
bool | Tick () |
Calls the tick handler of the vehicle. | |
void | OnNewDay () |
Calls the new day handler of the vehicle. | |
uint | Crash (bool flooded=false) |
Common code executed for crashed ground vehicles. | |
Trackdir | GetVehicleTrackdir () const |
Returns the Trackdir on which the vehicle is currently located. | |
TileIndex | GetOrderStationLocation (StationID station) |
Determine the location for the station where the vehicle goes to next. | |
bool | FindClosestDepot (TileIndex *location, DestinationID *destination, bool *reverse) |
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. | |
int | GetCurveSpeedLimit () const |
Computes train speed limit caused by curves. | |
void | ConsistChanged (bool same_length) |
Recalculates the cached stuff of a train. | |
void | RailtypeChanged () |
Update visual effect, power and acceleration caches. | |
int | UpdateSpeed () |
This function looks at the vehicle and updates its speed (cur_speed and subspeed) variables. | |
void | UpdateAcceleration () |
int | GetCurrentMaxSpeed () const |
Calculates the maximum speed of the vehicle under its current conditions. | |
FORCEINLINE Train * | GetNextArticulatedPart () const |
Get the next part of a multi-part engine. | |
FORCEINLINE Train * | GetFirstEnginePart () |
Get the first part of a multi-part engine. | |
FORCEINLINE const Train * | GetFirstEnginePart () const |
Get the first part of a multi-part engine. | |
FORCEINLINE Train * | GetLastEnginePart () |
Get the last part of a multi-part engine. | |
FORCEINLINE Train * | GetNextVehicle () const |
Get the next real (non-articulated part) vehicle in the consist. | |
FORCEINLINE Train * | GetPrevVehicle () const |
Get the previous real (non-articulated part) vehicle in the consist. | |
FORCEINLINE Train * | GetNextUnit () const |
Get the next real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist. | |
FORCEINLINE Train * | GetPrevUnit () |
Get the previous real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist. | |
Data Fields | |
TrainCache | tcache |
Train * | other_multiheaded_part |
uint16 | crash_anim_pos |
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 | |
FORCEINLINE uint16 | GetPower () const |
Allows to know the power value that this vehicle will use. | |
FORCEINLINE uint16 | GetPoweredPartPower (const Train *head) const |
Returns a value if this articulated part is powered. | |
FORCEINLINE uint16 | GetWeight () const |
Allows to know the weight value that this vehicle will use. | |
FORCEINLINE byte | GetTractiveEffort () const |
Allows to know the tractive effort value that this vehicle will use. | |
FORCEINLINE byte | GetAirDragArea () const |
Gets the area used for calculating air drag. | |
FORCEINLINE byte | GetAirDrag () const |
Gets the air drag coefficient of this vehicle. | |
FORCEINLINE AccelStatus | GetAccelerationStatus () const |
Checks the current acceleration status of this vehicle. | |
FORCEINLINE uint16 | GetCurrentSpeed () const |
Calculates the current speed of this vehicle. | |
FORCEINLINE uint32 | GetRollingFriction () const |
Returns the rolling friction coefficient of this vehicle. | |
FORCEINLINE int | GetAccelerationType () const |
Allows to know the acceleration type of a vehicle. | |
FORCEINLINE uint32 | GetSlopeSteepness () const |
Returns the slope steepness used by this vehicle. | |
FORCEINLINE uint16 | GetMaxTrackSpeed () const |
Gets the maximum speed allowed by the track for this vehicle. | |
FORCEINLINE bool | TileMayHaveSlopedTrack () const |
Checks if the vehicle is at a tile that can be sloped. | |
FORCEINLINE bool | HasToUseGetSlopeZ () |
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 82 of file train.h.
virtual Train::~Train | ( | ) | [inline, virtual] |
We want to 'destruct' the right class.
Definition at line 102 of file train.h.
References Vehicle::PreDestructor().
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 147 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, GroundVehicle< Train, VEH_TRAIN >::CargoChanged(), CBID_VEHICLE_LENGTH, CBM_VEHICLE_LENGTH, Clamp(), ClrBit(), EF_RAIL_TILTS, GroundVehicle< Train, VEH_TRAIN >::gcache, SpecializedVehicle< Train, Type >::Get(), GetCurveSpeedLimit(), GetRailTypeInfo(), GetVehicleCallback(), GetVehicleCapacity(), HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_vehicle_pool >::index, Vehicle::InvalidateNewGRFCache(), InvalidateWindowData(), GroundVehicle< Train, VEH_TRAIN >::IsFreeWagon(), GroundVehicle< Train, VEH_TRAIN >::IsFrontEngine(), RailVehicleInfo::max_speed, min(), RailVehicleInfo::pow_wag_power, RailVehicleInfo::power, RailtypeInfo::powered_railtypes, PROP_TRAIN_SPEED, PROP_TRAIN_USER_DATA, RAILTYPE_RAIL, RAILTYPES_NONE, RAILTYPES_RAIL, RAILVEH_WAGON, RailVehicleLengthChanged(), SetBit(), SetWindowDirty(), RailVehicleInfo::shorten_factor, RailVehicleInfo::user_def_data, UsesWagonOverride(), Vehicle::vcache, VE_DISABLE_WAGON_POWER, GameSettings::vehicle, and VehicleSettings::wagon_speed_limits.
Referenced by AfterLoadVehicles(), CheckCaches(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdRefitVehicle(), DeleteLastWagon(), NormaliseTrainHead(), SettingsDisableElrail(), and TransferCargo().
uint Train::Crash | ( | bool | flooded = false |
) | [virtual] |
Common code executed for crashed ground vehicles.
flooded | was this vehicle flooded? |
Reimplemented from GroundVehicle< Train, VEH_TRAIN >.
Definition at line 2772 of file train_cmd.cpp.
References ClearPathReservation(), GroundVehicle< T, Type >::Crash(), Vehicle::fill_percent_te_id, FreeTrainTrackReservation(), GetOtherTunnelBridgeEnd(), GetVehicleTrackdir(), HasBit(), INVALID_TILE, GroundVehicle< Train, VEH_TRAIN >::IsFrontEngine(), IsTileType(), MP_TUNNELBRIDGE, SpecializedVehicle< T, Type >::Next(), SetTunnelBridgeReservation(), Vehicle::tile, TrainApproachingCrossingTile(), and UpdateLevelCrossing().
Referenced by TrainCrashed().
bool Train::FindClosestDepot | ( | TileIndex * | location, | |
DestinationID * | destination, | |||
bool * | reverse | |||
) | [virtual] |
Find the closest depot for this vehicle and tell us the location, DestinationID and whether we should reverse.
location | where do we go to? | |
destination | what hangar do we go to? | |
reverse | should the vehicle be reversed? |
Reimplemented from Vehicle.
Definition at line 1901 of file train_cmd.cpp.
References FindDepotData::best_length, FindClosestTrainDepot(), GetDepotIndex(), FindDepotData::reverse, and FindDepotData::tile.
FORCEINLINE AccelStatus Train::GetAccelerationStatus | ( | ) | const [inline, protected] |
Checks the current acceleration status of this vehicle.
Definition at line 321 of file train.h.
References AS_ACCEL, AS_BRAKE, HasBit(), Vehicle::vehstatus, and VS_STOPPED.
Referenced by UpdateSpeed().
FORCEINLINE int Train::GetAccelerationType | ( | ) | const [inline, protected] |
Allows to know the acceleration type of a vehicle.
Definition at line 351 of file train.h.
References RailtypeInfo::acceleration_type, and GetRailTypeInfo().
FORCEINLINE byte Train::GetAirDrag | ( | ) | const [inline, protected] |
FORCEINLINE byte Train::GetAirDragArea | ( | ) | const [inline, protected] |
Gets the area used for calculating air drag.
Definition at line 302 of file train.h.
References TRACK_BIT_WORMHOLE, Vehicle::vehstatus, and VS_HIDDEN.
int Train::GetCurrentMaxSpeed | ( | ) | const |
Calculates the maximum speed of the vehicle under its current conditions.
Definition at line 388 of file train_cmd.cpp.
References 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(), min(), Order::ShouldStopAtStation(), Vehicle::tile, TILE_SIZE, and TRACK_BIT_DEPOT.
Referenced by UpdateSpeed().
FORCEINLINE uint16 Train::GetCurrentSpeed | ( | ) | const [inline, protected] |
Calculates the current speed of this vehicle.
Definition at line 330 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 319 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(), and GetCurrentMaxSpeed().
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 443 of file train_cmd.cpp.
References GroundVehicleCache::cached_veh_length, GroundVehicle< Train, VEH_TRAIN >::gcache, SpecializedVehicle< Train, Type >::Get(), Engine::grf_prop, GRFFilePropsBase< Tcnt >::grffile, GRFFile::traininfo_vehicle_pitch, and GRFFile::traininfo_vehicle_width.
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 114 of file train.h.
References VehicleCache::cached_max_speed, and Vehicle::vcache.
Referenced by CYapfCostRailT< Types >::PfCalcCost().
int Train::GetDisplaySpeed | ( | ) | const [inline, virtual] |
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 109 of file train.h.
References EXPENSES_TRAIN_INC, and EXPENSES_TRAIN_RUN.
FORCEINLINE const Train* Train::GetFirstEnginePart | ( | ) | const [inline] |
Get the first part of a multi-part engine.
Definition at line 167 of file train.h.
References GroundVehicle< T, Type >::IsArticulatedPart(), and SpecializedVehicle< T, Type >::Previous().
FORCEINLINE Train* Train::GetFirstEnginePart | ( | ) | [inline] |
Get the first part of a multi-part engine.
Definition at line 156 of file train.h.
References GroundVehicle< T, Type >::IsArticulatedPart(), and SpecializedVehicle< T, Type >::Previous().
Referenced by CmdMoveRailVehicle(), CmdSellRailWagon(), and GetVehicleSet().
Gets the sprite to show for the given direction.
direction | the direction the vehicle is facing |
Reimplemented from Vehicle.
Definition at line 466 of file train_cmd.cpp.
References Vehicle::cargo, Vehicle::cargo_cap, CargoList< Tinst >::Count(), SpecializedVehicle< Train, Type >::Get(), HasBit(), and ReverseDir().
Referenced by DrawTrainDetails().
FORCEINLINE Train* Train::GetLastEnginePart | ( | ) | [inline] |
Get the last part of a multi-part engine.
Definition at line 178 of file train.h.
References GetNextArticulatedPart(), and GroundVehicle< T, Type >::HasArticulatedPart().
Referenced by CmdMoveRailVehicle(), RemoveFromConsist(), and TransferCargo().
FORCEINLINE uint16 Train::GetMaxTrackSpeed | ( | ) | const [inline, protected] |
Gets the maximum speed allowed by the track for this vehicle.
Definition at line 369 of file train.h.
References GetRailType(), GetRailTypeInfo(), RailtypeInfo::max_speed, and Vehicle::tile.
FORCEINLINE Train* Train::GetNextArticulatedPart | ( | ) | const [inline] |
Get the next part of a multi-part engine.
Will only work on a multi-part engine (this->EngineHasArticPart() == true), Result is undefined for normal engine.
Definition at line 146 of file train.h.
References GroundVehicle< Train, VEH_TRAIN >::HasArticulatedPart(), and SpecializedVehicle< Train, Type >::Next().
Referenced by CheckConsistencyOfArticulatedVehicle(), CmdCloneVehicle(), GetLastEnginePart(), GetNextVehicle(), GetVehicleSet(), and IsArticulatedVehicleCarryingDifferentCargos().
FORCEINLINE 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 214 of file train.h.
References GetNextVehicle(), and GroundVehicle< T, Type >::IsRearDualheaded().
Referenced by AIVehicle::_MoveWagonInternal(), AIVehicle::_SellWagonInternal(), ArrangeTrains(), CmdAutoreplaceVehicle(), AIVehicle::GetNumWagons(), Vehicle::NeedsServicing(), and ReplaceChain().
FORCEINLINE Train* Train::GetNextVehicle | ( | ) | const [inline] |
Get the next real (non-articulated part) vehicle in the consist.
Definition at line 189 of file train.h.
References GetNextArticulatedPart(), GroundVehicle< T, Type >::HasArticulatedPart(), and SpecializedVehicle< T, Type >::Next().
Referenced by ArrangeTrains(), CmdCloneVehicle(), DrawTrainDetails(), GetNextUnit(), GetRunningCost(), GetTrainDetailsWndVScroll(), and NormaliseDualHeads().
Determine the location for the station where the vehicle goes to next.
Things done for example are allocating slots in a road stop or exact location of the platform is determined for ships.
station | the station to make the next location of the vehicle. |
Reimplemented from Vehicle.
Definition at line 2603 of file train_cmd.cpp.
References FACIL_TRAIN, BaseStation::facilities, SpecializedVehicle< Train, Type >::Get(), Vehicle::IncrementOrderIndex(), and BaseStation::xy.
FORCEINLINE uint16 Train::GetPower | ( | ) | const [inline, protected] |
Allows to know the power value that this vehicle will use.
Definition at line 241 of file train.h.
References GetRailType(), HasPowerOnRail(), GroundVehicle< Train, VEH_TRAIN >::IsArticulatedPart(), GroundVehicle< Train, VEH_TRAIN >::IsMultiheaded(), PROP_TRAIN_POWER, and Vehicle::tile.
FORCEINLINE uint16 Train::GetPoweredPartPower | ( | const Train * | head | ) | const [inline, protected] |
Returns a value if this articulated part is powered.
Definition at line 258 of file train.h.
References GroundVehicleCache::first_engine, GroundVehicle< Train, VEH_TRAIN >::gcache, GetRailType(), HasBit(), HasPowerOnRail(), and Vehicle::tile.
FORCEINLINE 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 226 of file train.h.
References GetPrevVehicle(), and GroundVehicle< T, Type >::IsRearDualheaded().
Referenced by ReplaceChain().
FORCEINLINE Train* Train::GetPrevVehicle | ( | ) | const [inline] |
Get the previous real (non-articulated part) vehicle in the consist.
Definition at line 202 of file train.h.
References GroundVehicle< T, Type >::IsArticulatedPart(), SpecializedVehicle< T, Type >::Previous(), and SpecializedVehicle< Train, Type >::Previous().
Referenced by GetPrevUnit().
FORCEINLINE uint32 Train::GetRollingFriction | ( | ) | const [inline, protected] |
Returns the rolling friction coefficient of this vehicle.
Definition at line 339 of file train.h.
References GetCurrentSpeed().
Money Train::GetRunningCost | ( | ) | const [virtual] |
Gets the running cost of a vehicle.
Reimplemented from Vehicle.
Definition at line 3696 of file train_cmd.cpp.
References SpecializedVehicle< Train, Type >::Get(), GetNextVehicle(), GetPrice(), Engine::grf_prop, GRFFilePropsBase< Tcnt >::grffile, GroundVehicle< T, Type >::IsMultiheaded(), PROP_TRAIN_RUNNING_COST_FACTOR, and RailVehicleInfo::running_cost.
Referenced by OnNewDay().
FORCEINLINE uint32 Train::GetSlopeSteepness | ( | ) | const [inline, protected] |
Returns the slope steepness used by this vehicle.
Definition at line 360 of file train.h.
References _settings_game, VehicleSettings::train_slope_steepness, and GameSettings::vehicle.
FORCEINLINE byte Train::GetTractiveEffort | ( | ) | const [inline, protected] |
Allows to know the tractive effort value that this vehicle will use.
Definition at line 293 of file train.h.
References PROP_TRAIN_TRACTIVE_EFFORT.
const char* Train::GetTypeString | ( | ) | const [inline, virtual] |
Trackdir Train::GetVehicleTrackdir | ( | ) | const [virtual] |
Returns the Trackdir on which the vehicle is currently located.
Works for trains and ships. Currently works only sortof for road vehicles, since they have a fuzzy concept of being "on" a trackdir. Dunno really what it returns for a road vehicle that is halfway a tile, never really understood that part. For road vehicles that are at the beginning or end of the tile, should just return the diagonal trackdir on which they are driving. I _think_. For other vehicles types, or vehicles with no clear trackdir (such as those in depots), returns 0xFF.
Reimplemented from Vehicle.
Definition at line 3818 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(), CmdBuildRailStation(), CmdBuildSingleSignal(), Crash(), FollowTrainReservation(), FreeTrainTrackReservation(), NPFTrainCheckReverse(), NPFTrainFindNearestDepot(), RemoveFromRailBaseStation(), YapfTrainCheckReverse(), and YapfTrainFindNearestDepot().
FORCEINLINE uint16 Train::GetWeight | ( | ) | const [inline, protected] |
Allows to know the weight value that this vehicle will use.
Definition at line 272 of file train.h.
References Vehicle::cargo, Vehicle::cargo_type, CargoList< Tinst >::Count(), GroundVehicleCache::first_engine, FreightWagonMult(), GroundVehicle< Train, VEH_TRAIN >::gcache, SpecializedVehicle< Train, Type >::Get(), HasBit(), GroundVehicle< Train, VEH_TRAIN >::IsArticulatedPart(), and PROP_TRAIN_WEIGHT.
FORCEINLINE bool Train::HasToUseGetSlopeZ | ( | ) | [inline, protected] |
bool Train::IsInDepot | ( | ) | const [virtual] |
Check whether the vehicle is in the depot.
Reimplemented from Vehicle.
Definition at line 744 of file train_cmd.cpp.
References Vehicle::cur_speed, IsRailDepotTile(), SpecializedVehicle< T, Type >::Next(), Vehicle::tile, and TRACK_BIT_DEPOT.
Referenced by CmdForceTrainProceed(), CmdMassStartStopVehicle(), and IsStoppedInDepot().
bool Train::IsStoppedInDepot | ( | ) | const [virtual] |
Check whether the vehicle is in the depot *and* stopped.
Reimplemented from Vehicle.
Definition at line 757 of file train_cmd.cpp.
References GroundVehicle< Train, VEH_TRAIN >::IsFrontEngine(), IsInDepot(), Vehicle::vehstatus, and VS_STOPPED.
Referenced by CmdMoveRailVehicle(), and CmdReverseTrainDirection().
void Train::MarkDirty | ( | ) | [virtual] |
Marks the vehicles to be redrawn and updates cached variables.
This method marks the area of the vehicle on the screen as dirty. It can be use to repaint the vehicle.
Reimplemented from Vehicle.
Definition at line 2617 of file train_cmd.cpp.
References GroundVehicle< Train, VEH_TRAIN >::CargoChanged(), SpecializedVehicle< T, Type >::Next(), and SpecializedVehicle< T, Type >::UpdateViewport().
void Train::RailtypeChanged | ( | ) |
Update visual effect, power and acceleration caches.
Called when a vehicle in the consist enters a different railtype.
Definition at line 131 of file train_cmd.cpp.
References GroundVehicle< Train, VEH_TRAIN >::IsFrontEngine(), and GroundVehicle< Train, VEH_TRAIN >::PowerChanged().
bool Train::Tick | ( | ) | [virtual] |
Calls the tick handler of the vehicle.
Reimplemented from Vehicle.
Definition at line 3718 of file train_cmd.cpp.
References Vehicle::cur_speed, Vehicle::current_order_time, GroundVehicle< Train, VEH_TRAIN >::IsFreeWagon(), GroundVehicle< Train, VEH_TRAIN >::IsFrontEngine(), Vehicle::running_ticks, Vehicle::tick_counter, Vehicle::vehstatus, VS_CRASHED, and VS_STOPPED.
FORCEINLINE bool Train::TileMayHaveSlopedTrack | ( | ) | const [inline, protected] |
Checks if the vehicle is at a tile that can be sloped.
Definition at line 378 of file train.h.
References TRACK_BIT_X, and TRACK_BIT_Y.
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 1369 of file train_cmd.cpp.
References GB(), Vehicle::x_extent, Vehicle::x_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 2636 of file train_cmd.cpp.
References _settings_game, Vehicle::acceleration, AS_BRAKE, GroundVehicleCache::cached_max_track_speed, Clamp(), Vehicle::cur_speed, GroundVehicle< Train, VEH_TRAIN >::gcache, GroundVehicle< Train, VEH_TRAIN >::GetAcceleration(), GetAccelerationStatus(), Vehicle::GetAdvanceSpeed(), GetCurrentMaxSpeed(), max(), Vehicle::subspeed, 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 97 of file train.h.
Referenced by MarkTrainAsStuck(), and TryPathReserve().