|
OpenTTD Source 20260311-master-g511d3794ce
|
'Train' is either a loco or a wagon. More...
#include <train.h>
Public Member Functions | |
| Train (VehicleID index) | |
| Create new Train object. | |
| ~Train () override | |
| 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 the sound associated with 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 string parameters for string processing. | |
| int | GetDisplayMaxSpeed () const override |
| Gets the maximum speed in km-ish/h that can be sent into string parameters for string processing. | |
| Money | GetRunningCost () const override |
| Get running cost for the train consist. | |
| int | GetCursorImageOffset () const |
| Get the offset for train image when it is used as cursor. | |
| 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! | |
| 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. | |
| VehicleAccelerationModel | GetAccelerationType () const |
| Allows to know the acceleration type of a vehicle. | |
| Public Member Functions inherited from GroundVehicle< Train, VEH_TRAIN > | |
| GroundVehicle (VehicleID index) | |
| 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< Train, Type > | |
| SpecializedVehicle (VehicleID index) | |
| Set vehicle type correctly. | |
| Train * | First () const |
| Get the first vehicle in the chain. | |
| Train * | Last () |
| Get the last vehicle in the chain. | |
| Train * | Next () const |
| Get next vehicle in the chain. | |
| Train * | Previous () const |
| Get previous vehicle in the chain. | |
| Train * | GetNextArticulatedPart () |
| Get the next part of an articulated engine. | |
| Train * | GetFirstEnginePart () |
| Get the first part of an articulated engine. | |
| Train * | GetLastEnginePart () |
| Get the last part of an articulated engine. | |
| Train * | GetNextVehicle () const |
| Get the next real (non-articulated part) vehicle in the consist. | |
| Train * | 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 (VehicleID index, VehicleType type=VEH_INVALID) | |
| Vehicle constructor. | |
| void | PreDestructor () |
| Destroy all stuff that (still) needs the virtual functions to work properly. | |
| ~Vehicle () override | |
| 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). | |
| 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 string parameters 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. | |
| const Order * | GetFirstOrder () const |
| Get the first order of the vehicles order list. | |
| std::span< const Order > | Orders () const |
| std::span< Order > | Orders () |
| 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. | |
| void | GetNextStoppingStation (std::vector< StationID > &next_station) 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 reset 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 |
| Tile to use for economic calculations when moving cargo into or out of this vehicle. | |
| virtual void | SetDestTile (TileIndex tile) |
| Set the destination of this vehicle. | |
| CommandCost | SendToDepot (DoCommandFlags flags, DepotCommandFlags 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. | |
| const 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. | |
| 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. | |
| 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 BaseConsist | |
| virtual | ~BaseConsist ()=default |
| Ensure the destructor of the sub classes are called as well. | |
| void | CopyConsistPropertiesFrom (const BaseConsist *src) |
| Copy properties of other BaseConsist. | |
| void | ResetDepotUnbunching () |
| Resets all the data used for depot unbunching. | |
Data Fields | |
| VehicleRailFlags | flags {} |
| Which flags has this train currently set. | |
| uint16_t | crash_anim_pos = 0 |
| Crash animation counter. | |
| uint16_t | wait_counter = 0 |
| Ticks waiting in front of a signal, ticks being stuck or a counter for forced proceeding through signals. | |
| TrainCache | tcache {} |
| Set of cached variables, recalculated on load and each time a vehicle is added to/removed from the consist. | |
| Train * | other_multiheaded_part = nullptr |
| Link between the two ends of a multiheaded engine. | |
| RailTypes | compatible_railtypes {} |
| With which rail types the train is compatible. | |
| RailTypes | railtypes {} |
| On which rail types the train can run. | |
| TrackBits | track {} |
| On which track the train currently is. | |
| TrainForceProceeding | force_proceed {} |
| How the train should behave when it encounters next obstacle. | |
| 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 = INVALID_TILE |
| Current tile index. | |
| TileIndex | dest_tile = INVALID_TILE |
| Heading for this tile. | |
| Money | profit_this_year = 0 |
| Profit this year << 8, low 8 bits are fract. | |
| Money | profit_last_year = 0 |
| Profit last year << 8, low 8 bits are fract. | |
| Money | value = 0 |
| Value of the vehicle. | |
| CargoPayment * | cargo_payment = nullptr |
| 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 = nullptr |
| NOSAVE: Next vehicle in the visual location hash. | |
| Vehicle ** | hash_viewport_prev = nullptr |
| NOSAVE: Previous vehicle in the visual location hash. | |
| Vehicle * | hash_tile_next = nullptr |
| NOSAVE: Next vehicle in the tile location hash. | |
| Vehicle ** | hash_tile_prev = nullptr |
| NOSAVE: Previous vehicle in the tile location hash. | |
| Vehicle ** | hash_tile_current = nullptr |
| 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 = 0 |
| Reliability. | |
| uint16_t | reliability_spd_dec = 0 |
| Reliability decrease speed. | |
| uint8_t | breakdown_ctr = 0 |
| Counter for managing breakdown events. | |
| uint8_t | breakdown_delay = 0 |
| Counter for managing breakdown length. | |
| uint8_t | breakdowns_since_last_service = 0 |
| Counter for the amount of breakdowns. | |
| uint8_t | breakdown_chance = 0 |
| Current chance of breakdowns. | |
| int32_t | x_pos = 0 |
| x coordinate. | |
| int32_t | y_pos = 0 |
| y coordinate. | |
| int32_t | z_pos = 0 |
| z coordinate. | |
| Direction | direction = INVALID_DIR |
| facing | |
| Owner | owner = INVALID_OWNER |
| Which company owns the vehicle? | |
| uint8_t | spritenum = 0 |
| currently displayed sprite index 0xfd == custom sprite, 0xfe == custom second head sprite 0xff == reserved for another custom sprite | |
| SpriteBounds | bounds {} |
| Bounding box of vehicle. | |
| EngineID | engine_type = EngineID::Invalid() |
| The type of engine used for this vehicle. | |
| TextEffectID | fill_percent_te_id = INVALID_TE_ID |
| a text-effect id to a loading indicator object | |
| UnitID | unitnumber {} |
| unit number, for display purposes only | |
| uint16_t | cur_speed = 0 |
| current speed | |
| uint8_t | subspeed = 0 |
| fractional speed | |
| uint8_t | acceleration = 0 |
| used by train & aircraft | |
| uint32_t | motion_counter = 0 |
| counter to occasionally play a vehicle sound. | |
| uint8_t | progress = 0 |
| The percentage (if divided by 256) this vehicle already crossed the tile unit. | |
| VehicleRandomTriggers | waiting_random_triggers |
| Triggers to be yet matched before rerandomizing the random bits. | |
| uint16_t | random_bits = 0 |
| Bits used for randomized variational spritegroups. | |
| StationID | last_station_visited = StationID::Invalid() |
| The last station we stopped at. | |
| StationID | last_loading_station = StationID::Invalid() |
| 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. | |
| CargoType | cargo_type {} |
| type of cargo this vehicle is carrying | |
| uint8_t | cargo_subtype = 0 |
| Used for livery refits (NewGRF variations). | |
| uint16_t | cargo_cap = 0 |
| total capacity | |
| uint16_t | refit_cap = 0 |
| Capacity left over from before last refit. | |
| uint16_t | cargo_age_counter = 0 |
| Ticks till cargo is aged next. | |
| int8_t | trip_occupancy = 0 |
| NOSAVE: Occupancy of vehicle of the current trip (updated after leaving a station). | |
| uint8_t | day_counter = 0 |
| Increased by one for each day. | |
| uint8_t | tick_counter = 0 |
| Increased by one for each tick. | |
| uint8_t | running_ticks = 0 |
| Number of ticks this vehicle was not stopped this day. | |
| uint16_t | load_unload_ticks = 0 |
| Ticks to wait before starting next cycle. | |
| VehStates | vehstatus {} |
| Status. | |
| uint8_t | subtype = 0 |
| subtype (Filled with values from AircraftSubType/DisasterSubType/EffectVehicleType/GroundVehicleSubtypeFlags) | |
| Order | current_order {} |
| The current order (+ status, like: loading). | |
| union { | |
| OrderList * orders = nullptr | |
| Pointer to the order list for this vehicle. More... | |
| uint32_t 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 = GroupID::Invalid() |
| Index of group Pool array. | |
| MutableSpriteCache | sprite_cache {} |
| Cache of sprites and values related to recalculating them, see MutableSpriteCache. | |
| Data Fields inherited from BaseVehicle | |
| VehicleType | type = VEH_INVALID |
| 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 = 0 |
| The interval for (automatic) servicing; either in days or %. | |
| VehicleOrderID | cur_real_order_index = 0 |
| The index to the current real (non-implicit) order. | |
| VehicleOrderID | cur_implicit_order_index = 0 |
| The index to the current implicit order. | |
| VehicleFlags | 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 |
| 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. | |
| 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< Train, Type > | |
| typedef SpecializedVehicle< Train, Type > | SpecializedVehicleBase |
| Our type. | |
| Static Public Member Functions inherited from SpecializedVehicle< Train, Type > | |
| static bool | IsValidID (auto index) |
| Tests whether given index is a valid index for vehicle of this type. | |
| static Train * | Get (auto index) |
| Gets vehicle with given index. | |
| static Train * | GetIfValid (auto index) |
| Returns vehicle if the index is a valid index for this vehicle type. | |
| static Train * | Create (Targs &&... args) |
| Creates a new T-object in the vehicle pool. | |
| static Train * | CreateAtIndex (VehicleID index, Targs &&... args) |
| Creates a new T-object in the vehicle pool. | |
| static Train * | From (Vehicle *v) |
| Converts a Vehicle to SpecializedVehicle with type checking. | |
| static Pool::IterateWrapper< Train > | 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 Attributes inherited from SpecializedVehicle< Train, Type > | |
| static const VehicleType | EXPECTED_TYPE |
| Specialized type. | |
|
inline |
Create new Train object.
The constructor at SpecializedVehicle must be called.
| index | The index into the vehicle pool. |
Definition at line 114 of file train.h.
Referenced by ConsistChanged(), Crash(), GetCurrentMaxSpeed(), GetCurveSpeedLimit(), GetNextUnit(), GetPrevUnit(), GetRunningCost(), MarkDirty(), and ReserveTrackUnderConsist().
|
inlineoverride |
We want to 'destruct' the right class.
Definition at line 116 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 180 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 VehicleEnterTile_Rail().
| 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 107 of file train_cmd.cpp.
References _settings_game, AllowedOnNormalRail, CALLBACK_FAILED, EngineInfo::callback_mask, Capacity, EngineInfo::cargo_age_period, GroundVehicle< Train, VEH_TRAIN >::CargoChanged(), CBID_VEHICLE_LENGTH, Clamp(), compatible_railtypes, Engine::DetermineCapacity(), Vehicle::engine_type, ErrorUnknownCallbackResult(), GroundVehicle< Train, VEH_TRAIN >::gcache, GetAllPoweredRailTypes(), GetCurveSpeedLimit(), Engine::GetGRF(), Engine::GetGRFID(), GetVehicleCallback(), HasBit(), Vehicle::InvalidateNewGRFCache(), InvalidateNewGRFInspectWindow(), InvalidateWindowData(), GroundVehicle< Train, VEH_TRAIN >::IsFreeWagon(), Vehicle::IsFrontEngine(), Length, RailVehicleInfo::max_speed, EngineInfo::misc_flags, RailVehicleInfo::pow_wag_power, RailVehicleInfo::power, PoweredWagon, PROP_TRAIN_CARGO_AGE_PERIOD, PROP_TRAIN_SHORTEN_FACTOR, PROP_TRAIN_SPEED, PROP_TRAIN_USER_DATA, RailTilts, RAILTYPE_RAIL, RailVehicleInfo::railtypes, RAILVEH_WAGON, SetWindowDirty(), RailVehicleInfo::shorten_factor, ShowNewGrfVehicleError(), tcache, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), Train(), UpdateAcceleration(), RailVehicleInfo::user_def_data, UsesWagonOverride(), Vehicle::vcache, VE_DISABLE_WAGON_POWER, VehCapacity, VEHICLE_LENGTH, VehicleLengthChanged(), VIWD_CONSIST_CHANGED, WC_VEHICLE_DETAILS, WC_VEHICLE_ORDERS, WC_VEHICLE_REFIT, and WC_VEHICLE_VIEW.
Referenced by AfterLoadVehiclesPhase2(), CheckCaches(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdRefitVehicle(), CmdReverseTrainDirection(), DeleteLastWagon(), FixupTrainLengths(), NormaliseTrainHead(), ReverseTrainDirection(), TrainController(), TransferCargo(), 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 3151 of file train_cmd.cpp.
References ClearPathReservation(), GroundVehicle< T, Type >::Crash(), crash_anim_pos, Vehicle::fill_percent_te_id, flags, FreeTrainTrackReservation(), GetOtherTunnelBridgeEnd(), GetVehicleTrackdir(), HideFillingPercent(), INVALID_TILE, Vehicle::IsFrontEngine(), IsTileType(), SpecializedVehicle< T, Type >::Next(), SetTunnelBridgeReservation(), Stuck, Vehicle::tile, Train(), TrainApproachingCrossingTile(), TunnelBridge, and UpdateLevelCrossing().
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 2213 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 290 of file train.h.
References BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Any(), AS_ACCEL, AS_BRAKE, Reversing, Stopped, Stuck, and Vehicle::vehstatus.
Referenced by UpdateSpeed().
|
inline |
Allows to know the acceleration type of a vehicle.
Definition at line 193 of file train.h.
References RailTypeInfo::acceleration_type, GetRailType(), GetRailTypeInfo(), and Vehicle::tile.
Referenced by AffectSpeedByZChange(), and TrainController().
|
inlineprotected |
Gets the air drag coefficient of this vehicle.
Definition at line 281 of file train.h.
References Vehicle::engine_type.
|
inlineprotected |
Gets the area used for calculating air drag.
Definition at line 271 of file train.h.
References Hidden, TRACK_BIT_WORMHOLE, and Vehicle::vehstatus.
|
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, Vehicle::cur_speed, Vehicle::current_order, GroundVehicle< Train, VEH_TRAIN >::gcache, GetBridgeSpec(), GetBridgeType(), GetStationIndex(), GetTrainStopLocation(), Hidden, IsRailStationTile(), BridgeSpec::speed, tcache, Vehicle::tile, TILE_SIZE, TRACK_BIT_DEPOT, TRACK_BIT_WORMHOLE, and Train().
Referenced by UpdateSpeed().
|
inlineprotected |
Calculates the current speed of this vehicle.
Definition at line 299 of file train.h.
References Vehicle::cur_speed.
Referenced by GetRollingFriction().
| int Train::GetCursorImageOffset | ( | ) | const |
Get the offset for train image when it is used as cursor.
Definition at line 444 of file train_cmd.cpp.
References Vehicle::engine_type, Flipped, GroundVehicle< Train, VEH_TRAIN >::gcache, Vehicle::GetEngine(), Engine::GetGRF(), RailFlips, ScaleSpriteTrad(), GRFFile::traininfo_vehicle_width, and VEHICLE_LENGTH.
Referenced by SetMouseCursorVehicle().
| uint16_t Train::GetCurveSpeedLimit | ( | ) | const |
Computes train speed limit caused by curves.
Definition at line 307 of file train_cmd.cpp.
References _settings_game, CeilDiv(), Clamp(), RailTypeInfo::curve_speed, DIRDIFF_45LEFT, DIRDIFF_45RIGHT, DIRDIFF_90LEFT, DIRDIFF_90RIGHT, DIRDIFF_SAME, DirDifference(), SpecializedVehicle< Train, Type >::First(), GetRailType(), GetRailTypeInfo(), tcache, Vehicle::tile, Train(), and VEHICLE_LENGTH.
Referenced by ConsistChanged(), and TrainController().
|
inlineprotected |
Returns the curve speed modifier of this vehicle.
Definition at line 338 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 464 of file train_cmd.cpp.
References Vehicle::engine_type, flags, Flipped, GroundVehicle< Train, VEH_TRAIN >::gcache, Vehicle::GetEngine(), Engine::GetGRF(), Point, RailFlips, ScaleSpriteTrad(), GRFFile::traininfo_vehicle_pitch, GRFFile::traininfo_vehicle_width, VEHICLE_LENGTH, Coord2D< T >::x, and Coord2D< T >::y.
Referenced by DrawTrainDetails(), DrawTrainImage(), NewGRFInspectWindow::DrawVehicleChainWidget(), GetLengthOfArticulatedVehicle(), GetSingleVehicleWidth(), and DepotWindow::GetVehicleFromDepotWndPt().
|
inlineoverridevirtual |
Gets the maximum speed in km-ish/h that can be sent into string parameters for string processing.
Reimplemented from Vehicle.
Definition at line 127 of file train.h.
References Vehicle::vcache.
Referenced by CYapfCostRailT< Types >::PfCalcCost().
|
inlineoverridevirtual |
Gets the speed in km-ish/h that can be sent into string parameters for string processing.
Reimplemented from Vehicle.
Definition at line 126 of file train.h.
References GroundVehicle< Train, VEH_TRAIN >::gcache.
|
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 122 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. |
| result | Sprite sequence to add the to be drawn sprites to. |
Reimplemented from Vehicle.
Definition at line 498 of file train_cmd.cpp.
References Vehicle::cargo, CUSTOM_VEHICLE_SPRITENUM_REVERSED, Vehicle::direction, flags, Flipped, Vehicle::GetEngine(), VehicleSpriteSeq::IsValid(), IsValidImageIndex(), Engine::original_image_index, ReverseDir(), VehicleSpriteSeq::Set(), and Vehicle::spritenum.
Referenced by DrawTrainDetails(), and DrawTrainImage().
|
inlineprotected |
Gets the maximum speed allowed by the track for this vehicle.
Definition at line 329 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 4253 of file train_cmd.cpp.
References Vehicle::cargo_type, Vehicle::engine_type, flags, GroundVehicle< Train, VEH_TRAIN >::gcache, CargoSpec::Get(), Vehicle::GetEngine(), Vehicle::IsArticulatedPart(), PoweredWagon, and PROP_TRAIN_WEIGHT.
|
inline |
Get the next real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist.
Definition at line 156 of file train.h.
References SpecializedVehicle< T, Type >::GetNextVehicle(), SpecializedVehicle< Train, Type >::GetNextVehicle(), GroundVehicle< T, Type >::IsRearDualheaded(), and Train().
Referenced by ArrangeTrains(), CmdAutoreplaceVehicle(), Vehicle::NeedsServicing(), and ReplaceChain().
|
overridevirtual |
Get the location of the next station to visit.
| station | Next station to visit. |
Reimplemented from Vehicle.
Definition at line 2993 of file train_cmd.cpp.
References BaseStation::facilities, SpecializedStation< Station, false >::Get(), Vehicle::IncrementRealOrderIndex(), Vehicle::last_station_visited, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), Train, and BaseStation::xy.
|
inlineprotected |
Allows to know the power value that this vehicle will use.
Definition at line 204 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 221 of file train.h.
References GroundVehicle< Train, VEH_TRAIN >::gcache, GetRailType(), HasPowerOnRail(), PoweredWagon, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and Vehicle::tile.
|
inline |
Get the previous real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist.
Definition at line 168 of file train.h.
References SpecializedVehicle< T, Type >::GetPrevVehicle(), SpecializedVehicle< Train, Type >::GetPrevVehicle(), GroundVehicle< T, Type >::IsRearDualheaded(), and Train().
Referenced by ReplaceChain().
|
inlineprotected |
Returns the rolling friction coefficient of this vehicle.
Definition at line 308 of file train.h.
References GetCurrentSpeed().
|
overridevirtual |
Get running cost for the train consist.
Reimplemented from Vehicle.
Definition at line 4100 of file train_cmd.cpp.
References Vehicle::GetEngine(), Engine::GetGRF(), SpecializedVehicle< T, Type >::GetNextVehicle(), GetPrice(), Invalid, GroundVehicle< T, Type >::IsMultiheaded(), PROP_TRAIN_RUNNING_COST_FACTOR, RailVehicleInfo::running_cost, and Train().
Referenced by OnNewEconomyDay().
|
inlineprotected |
Returns the slope steepness used by this vehicle.
Definition at line 320 of file train.h.
References _settings_game.
|
inlineprotected |
Allows to know the tractive effort value that this vehicle will use.
Definition at line 262 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 4236 of file train_cmd.cpp.
References Crashed, DiagDirToDiagTrackdir(), DirToDiagDir(), FindFirstTrack(), GetRailDepotDirection(), INVALID_TRACKDIR, TRACK_BIT_DEPOT, TRACK_BIT_WORMHOLE, TrackDirectionToTrackdir(), and Vehicle::vehstatus.
Referenced by CheckNextTrainTile(), CmdBuildSingleSignal(), Crash(), DetermineNextTrainForceProceeding(), FollowTrainReservation(), FreeTrainReservation(), FreeTrainTrackReservation(), RestoreTrainReservation(), ReverseTrainDirection(), TrainController(), YapfTrainCheckReverse(), and YapfTrainFindNearestDepot().
|
inlineprotected |
Allows to know the weight value that this vehicle will use.
Definition at line 235 of file train.h.
References Vehicle::cargo, Vehicle::cargo_type, Vehicle::engine_type, GroundVehicle< Train, VEH_TRAIN >::gcache, CargoSpec::Get(), Vehicle::IsArticulatedPart(), PoweredWagon, PROP_TRAIN_WEIGHT, and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().
|
inlineprotected |
|
inlineoverridevirtual |
Check whether the vehicle is in the depot.
Reimplemented from Vehicle.
Definition at line 131 of file train.h.
References TRACK_BIT_DEPOT.
|
inlineoverridevirtual |
Whether this is the primary vehicle in the chain.
true iff this considered the primary vehicle. Reimplemented from Vehicle.
Definition at line 124 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 3008 of file train_cmd.cpp.
References GroundVehicle< Train, VEH_TRAIN >::CargoChanged(), Vehicle::colourmap, SpecializedVehicle< T, Type >::Next(), Train(), UpdateAcceleration(), and SpecializedVehicle< T, Type >::UpdateViewport().
Referenced by CmdMoveRailVehicle().
|
overridevirtual |
Calendar day handler.
Reimplemented from Vehicle.
Definition at line 4192 of file train_cmd.cpp.
References AgeVehicle().
|
overridevirtual |
Economy day handler.
Reimplemented from Vehicle.
Definition at line 4198 of file train_cmd.cpp.
References CheckIfTrainNeedsService(), CheckOrders(), CheckVehicleBreakdown(), 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(), GetRunningCost(), INVALID_TILE, Vehicle::IsFrontEngine(), 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 the sound associated with leaving the station.
| force | Should we play the sound even if sound effects are muted? (horn hotkey) |
Reimplemented from Vehicle.
Definition at line 2221 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 3129 of file train_cmd.cpp.
References DiagDirToDiagTrack(), GetTunnelBridgeDirection(), SpecializedVehicle< T, Type >::Next(), Vehicle::tile, track, TRACK_BIT_DEPOT, TRACK_BIT_WORMHOLE, TrackBitsToTrack(), Train(), and TryReserveRailTrack().
Referenced by TrainCrashed().
|
overridevirtual |
Update train vehicle data for a tick.
Reimplemented from Vehicle.
Definition at line 4125 of file train_cmd.cpp.
References crash_anim_pos, Crashed, BaseConsist::current_order_time, GroundVehicle< Train, VEH_TRAIN >::IsFreeWagon(), Vehicle::IsFrontEngine(), PFE_GL_TRAINS, Vehicle::running_ticks, Stopped, Vehicle::tick_counter, and Vehicle::vehstatus.
|
inlineprotected |
Checks if the vehicle is at a tile that can be sloped.
Definition at line 347 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, 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 1500 of file train_cmd.cpp.
References Vehicle::bounds, DIR_NE, DIR_NW, DIR_SE, DIR_SW, DirToDiagDir(), Vehicle::engine_type, flags, Flipped, GroundVehicle< Train, VEH_TRAIN >::gcache, IsDiagonalDirection(), Point, RailFlips, ReverseDir(), VEHICLE_LENGTH, Coord2D< T >::x, and Coord2D< T >::y.
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 3028 of file train_cmd.cpp.
References _settings_game, Vehicle::acceleration, AS_BRAKE, GroundVehicle< Train, VEH_TRAIN >::DoUpdateSpeed(), GroundVehicle< Train, VEH_TRAIN >::GetAcceleration(), GetAccelerationStatus(), and GetCurrentMaxSpeed().
|
friend |
| RailTypes Train::compatible_railtypes {} |
With which rail types the train is compatible.
Definition at line 107 of file train.h.
Referenced by ConsistChanged().
| uint16_t Train::crash_anim_pos = 0 |
Crash animation counter.
Definition at line 99 of file train.h.
Referenced by Crash(), HandleCrashedTrain(), and Tick().
| VehicleRailFlags Train::flags {} |
Which flags has this train currently set.
Definition at line 98 of file train.h.
Referenced by AddArticulatedParts(), AfterLoadGame(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdCloneVehicle(), CmdReverseTrainDirection(), Crash(), DetermineNextTrainForceProceeding(), GetDisplayImageWidth(), GetImage(), GetMaxWeight(), Vehicle::LeaveStation(), MarkTrainAsStuck(), ReverseTrainDirection(), Vehicle::ShowVisualEffect(), TrainController(), TryPathReserve(), UpdateDeltaXY(), and VehicleEnterDepot().
| TrainForceProceeding Train::force_proceed {} |
How the train should behave when it encounters next obstacle.
Definition at line 111 of file train.h.
Referenced by CheckTrainStayInDepot(), CmdForceTrainProceed(), CmdReverseTrainDirection(), DetermineNextTrainForceProceeding(), TrainController(), TrainEnterStation(), and VehicleEnterDepot().
| Train* Train::other_multiheaded_part = nullptr |
Link between the two ends of a multiheaded engine.
Definition at line 105 of file train.h.
Referenced by CmdMoveRailVehicle(), ConnectMultiheadedTrains(), GetVehicleSet(), IterateVehicleParts(), and NormaliseDualHeads().
| RailTypes Train::railtypes {} |
On which rail types the train can run.
Definition at line 108 of file train.h.
Referenced by AddArticulatedParts(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdConvertRail(), FollowTrainReservation(), FreeTrainTrackReservation(), and IsSafeWaitingPosition().
| TrainCache Train::tcache {} |
Set of cached variables, recalculated on load and each time a vehicle is added to/removed from the consist.
Definition at line 102 of file train.h.
Referenced by ConsistChanged(), GetCurrentMaxSpeed(), GetCurveSpeedLimit(), TrainController(), UsesWagonOverride(), and VehicleResolverObject::VehicleResolverObject().
| TrackBits Train::track {} |
On which track the train currently is.
Definition at line 110 of file train.h.
Referenced by AddArticulatedParts(), AdvanceWagonsAfterSwap(), AfterLoadGame(), ChangeTrainDirRandomly(), CheckNextTrainTile(), CheckTrainCollision(), CheckTrainsOnTrack(), CheckTrainStayInDepot(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildSingleSignal(), DeleteLastWagon(), EnsureNoTrainOnTrackBits(), FixupTrainLengths(), FreeTrainTrackReservation(), IsTrainAndNotInDepot(), ReserveTrackUnderConsist(), ReverseTrainDirection(), ReverseTrainSwapVeh(), TrainApproachingCrossingTile(), TrainCanLeaveTile(), TrainCheckIfLineEnds(), TrainController(), TryPathReserve(), UpdateStatusAfterSwap(), VehicleEnterTile_Rail(), VehicleEnterTile_TunnelBridge(), and YapfTrainCheckReverse().
| uint16_t Train::wait_counter = 0 |
Ticks waiting in front of a signal, ticks being stuck or a counter for forced proceeding through signals.
Definition at line 100 of file train.h.
Referenced by CheckTrainStayInDepot(), MarkTrainAsStuck(), ReverseTrainDirection(), TrainController(), TryPathReserve(), and VehicleEnterDepot().