|
OpenTTD Source
1.10.0-RC1
|
'Train' is either a loco or a wagon. More...
#include <train.h>
Public Member Functions | |
| Train () | |
| We don't want GCC to zero our struct! It already is zeroed and has an index! | |
| virtual | ~Train () |
| We want to 'destruct' the right class. More... | |
| void | MarkDirty () |
| Goods at the consist have changed, update the graphics, cargo, and acceleration. More... | |
| void | UpdateDeltaXY () |
| 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. More... | |
| void | PlayLeaveStationSound () const |
| Play a sound for a train leaving the station. More... | |
| bool | IsPrimaryVehicle () const |
| Whether this is the primary vehicle in the chain. | |
| void | GetImage (Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const |
| Get the sprite to display the train. More... | |
| int | GetDisplaySpeed () const |
| Gets the speed in km-ish/h that can be sent into SetDParam for string processing. More... | |
| int | GetDisplayMaxSpeed () const |
| Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing. More... | |
| Money | GetRunningCost () const |
| Get running cost for the train consist. More... | |
| int | GetDisplayImageWidth (Point *offset=nullptr) const |
| Get the width of a train vehicle image in the GUI. More... | |
| bool | IsInDepot () const |
| Check whether the vehicle is in the depot. More... | |
| bool | Tick () |
| Update train vehicle data for a tick. More... | |
| void | OnNewDay () |
| Update day counters of the train vehicle. More... | |
| uint | Crash (bool flooded=false) |
| The train vehicle crashed! Update its status and other parts around it. More... | |
| Trackdir | GetVehicleTrackdir () const |
| Get the tracks of the train vehicle. More... | |
| TileIndex | GetOrderStationLocation (StationID station) |
| Get the location of the next station to visit. More... | |
| bool | FindClosestDepot (TileIndex *location, DestinationID *destination, bool *reverse) |
| Locate the closest depot for this consist, and return the information to the caller. More... | |
| void | ReserveTrackUnderConsist () const |
| Tries to reserve track under whole train consist. More... | |
| int | GetCurveSpeedLimit () const |
| Computes train speed limit caused by curves. More... | |
| void | ConsistChanged (ConsistChangeFlags allowed_changes) |
| Recalculates the cached stuff of a train. More... | |
| int | UpdateSpeed () |
| This function looks at the vehicle and updates its speed (cur_speed and subspeed) variables. More... | |
| void | UpdateAcceleration () |
| Update acceleration of the train from the cached power and weight. More... | |
| int | GetCurrentMaxSpeed () const |
| Calculates the maximum speed of the vehicle under its current conditions. More... | |
| Train * | GetNextUnit () const |
| Get the next real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist. More... | |
| Train * | GetPrevUnit () |
| Get the previous real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist. More... | |
| int | CalcNextVehicleOffset () const |
| Calculate the offset from this vehicle's center to the following center taking the vehicle lengths into account. More... | |
Public Member Functions inherited from GroundVehicle< Train, VEH_TRAIN > | |
| GroundVehicle () | |
| The constructor at SpecializedVehicle must be called. | |
| void | PowerChanged () |
| Recalculates the cached total power of a vehicle. More... | |
| void | CargoChanged () |
| Recalculates the cached weight of a vehicle and its parts. More... | |
| int | GetAcceleration () const |
| Calculates the acceleration of the vehicle under its current conditions. More... | |
| bool | IsChainInDepot () const override |
| Check whether the whole vehicle chain is in the depot. More... | |
| uint | Crash (bool flooded) override |
| Common code executed for crashed ground vehicles. More... | |
| int64 | GetSlopeResistance () const |
| Calculates the total slope resistance for this vehicle. More... | |
| void | UpdateZPositionAndInclination () |
| Updates vehicle's Z position and inclination. More... | |
| void | UpdateZPosition () |
| Updates vehicle's Z position. More... | |
| int | UpdateInclination (bool new_tile, bool update_delta) |
| Checks if the vehicle is in a slope and sets the required flags in that case. More... | |
| void | SetFrontEngine () |
| Set front engine state. | |
| void | ClearFrontEngine () |
| Remove the front engine state. | |
| void | SetArticulatedPart () |
| Set a vehicle to be an articulated part. | |
| void | ClearArticulatedPart () |
| Clear a vehicle from being an articulated part. | |
| void | SetWagon () |
| Set a vehicle to be a wagon. | |
| void | ClearWagon () |
| Clear wagon property. | |
| void | SetEngine () |
| Set engine status. | |
| void | ClearEngine () |
| Clear engine status. | |
| void | SetFreeWagon () |
| Set a vehicle as a free wagon. | |
| void | ClearFreeWagon () |
| Clear a vehicle from being a free wagon. | |
| void | SetMultiheaded () |
| Set a vehicle as a multiheaded engine. | |
| void | ClearMultiheaded () |
| Clear multiheaded engine property. | |
| bool | IsFreeWagon () const |
| Check if the vehicle is a free wagon (got no engine in front of it). More... | |
| bool | IsEngine () const |
| Check if a vehicle is an engine (can be first in a consist). More... | |
| bool | IsWagon () const |
| Check if a vehicle is a wagon. More... | |
| bool | IsMultiheaded () const |
| Check if the vehicle is a multiheaded engine. More... | |
| bool | IsRearDualheaded () const |
| Tell if we are dealing with the rear end of a multiheaded engine. More... | |
| void | SetLastSpeed () |
| Update the GUI variant of the current speed of the vehicle. More... | |
Public Member Functions inherited from SpecializedVehicle< Train, Type > | |
| SpecializedVehicle () | |
| Set vehicle type correctly. | |
| Train * | First () const |
| Get the first vehicle in the chain. More... | |
| Train * | Last () |
| Get the last vehicle in the chain. More... | |
| const Train * | Last () const |
| Get the last vehicle in the chain. More... | |
| Train * | Next () const |
| Get next vehicle in the chain. More... | |
| Train * | Previous () const |
| Get previous vehicle in the chain. More... | |
| Train * | GetNextArticulatedPart () |
| Get the next part of an articulated engine. More... | |
| Train * | GetNextArticulatedPart () const |
| Get the next part of an articulated engine. More... | |
| Train * | GetFirstEnginePart () |
| Get the first part of an articulated engine. More... | |
| const Train * | GetFirstEnginePart () const |
| Get the first part of an articulated engine. More... | |
| Train * | GetLastEnginePart () |
| Get the last part of an articulated engine. More... | |
| Train * | GetNextVehicle () const |
| Get the next real (non-articulated part) vehicle in the consist. More... | |
| Train * | GetPrevVehicle () const |
| Get the previous real (non-articulated part) vehicle in the consist. More... | |
| void | UpdateViewport (bool force_update, bool update_delta) |
| Update vehicle sprite- and position caches. More... | |
Public Member Functions inherited from Vehicle | |
| Vehicle (VehicleType type=VEH_INVALID) | |
| Vehicle constructor. More... | |
| void | PreDestructor () |
| Destroy all stuff that (still) needs the virtual functions to work properly. | |
| virtual | ~Vehicle () |
| We want to 'destruct' the right class. More... | |
| void | BeginLoading () |
| Prepare everything to begin the loading when arriving at a station. More... | |
| void | CancelReservation (StationID next, Station *st) |
| Return all reserved cargo packets to the station and reset all packets staged for transfer. More... | |
| void | LeaveStation () |
| Perform all actions when leaving a station. More... | |
| GroundVehicleCache * | GetGroundVehicleCache () |
| Access the ground vehicle cache of the vehicle. More... | |
| const GroundVehicleCache * | GetGroundVehicleCache () const |
| Access the ground vehicle cache of the vehicle. More... | |
| uint16 & | GetGroundVehicleFlags () |
| Access the ground vehicle flags of the vehicle. More... | |
| const uint16 & | GetGroundVehicleFlags () const |
| Access the ground vehicle flags of the vehicle. More... | |
| void | DeleteUnreachedImplicitOrders () |
| Delete all implicit orders which were not reached. | |
| void | HandleLoading (bool mode=false) |
| Handle the loading of the vehicle; when not it skips through dummy orders and does nothing in all other cases. More... | |
| void | GetConsistFreeCapacities (SmallMap< CargoID, uint > &capacities) const |
| Get a map of cargoes and free capacities in the consist. More... | |
| uint | GetConsistTotalCapacity () const |
| uint | GetOldAdvanceSpeed (uint speed) |
| Determines the effective direction-specific vehicle movement speed. More... | |
| uint | GetAdvanceDistance () |
| Determines the vehicle "progress" needed for moving a step. More... | |
| const Engine * | GetEngine () const |
| Retrieves the engine of the vehicle. More... | |
| const GRFFile * | GetGRF () const |
| Retrieve the NewGRF the vehicle is tied to. More... | |
| uint32 | GetGRFID () const |
| Retrieve the GRF ID of the NewGRF the vehicle is tied to. More... | |
| void | InvalidateNewGRFCache () |
| Invalidates cached NewGRF variables. More... | |
| void | InvalidateNewGRFCacheOfChain () |
| Invalidates cached NewGRF variables of all vehicles in the chain (after the current vehicle) More... | |
| bool | IsGroundVehicle () const |
| Check if the vehicle is a ground vehicle. More... | |
| bool | IsStoppedInDepot () const |
| Check whether the vehicle is in the depot and stopped. More... | |
| Money | GetDisplayRunningCost () const |
| Gets the running cost of a vehicle that can be sent into SetDParam for string processing. More... | |
| Money | GetDisplayProfitThisYear () const |
| Gets the profit vehicle had this year. More... | |
| Money | GetDisplayProfitLastYear () const |
| Gets the profit vehicle had last year. More... | |
| void | SetNext (Vehicle *next) |
| Set the next vehicle of this vehicle. More... | |
| Vehicle * | Next () const |
| Get the next vehicle of this vehicle. More... | |
| Vehicle * | Previous () const |
| Get the previous vehicle of this vehicle. More... | |
| Vehicle * | First () const |
| Get the first vehicle of this vehicle chain. More... | |
| Vehicle * | Last () |
| Get the last vehicle of this vehicle chain. More... | |
| const Vehicle * | Last () const |
| Get the last vehicle of this vehicle chain. More... | |
| Vehicle * | Move (int n) |
| Get the vehicle at offset n of this vehicle chain. More... | |
| const Vehicle * | Move (int n) const |
| Get the vehicle at offset n of this vehicle chain. More... | |
| Order * | GetFirstOrder () const |
| Get the first order of the vehicles order list. More... | |
| void | AddToShared (Vehicle *shared_chain) |
| Adds this vehicle to a shared vehicle chain. More... | |
| void | RemoveFromShared () |
| Removes the vehicle from the shared order list. | |
| Vehicle * | NextShared () const |
| Get the next vehicle of the shared vehicle chain. More... | |
| Vehicle * | PreviousShared () const |
| Get the previous vehicle of the shared vehicle chain. More... | |
| Vehicle * | FirstShared () const |
| Get the first vehicle of this vehicle chain. More... | |
| bool | IsOrderListShared () const |
| Check if we share our orders with another vehicle. More... | |
| VehicleOrderID | GetNumOrders () const |
| Get the number of orders this vehicle has. More... | |
| VehicleOrderID | GetNumManualOrders () const |
| Get the number of manually added orders this vehicle has. More... | |
| StationIDStack | GetNextStoppingStation () const |
| Get the next station the vehicle will stop at. More... | |
| void | ResetRefitCaps () |
| Reset all refit_cap in the consist to cargo_cap. | |
| void | CopyVehicleConfigAndStatistics (const Vehicle *src) |
| Copy certain configurations and statistics of a vehicle after successful autoreplace/renew The function shall copy everything that cannot be copied by a command (like orders / group etc), and that shall not be resetted for the new vehicle. More... | |
| bool | HandleBreakdown () |
| Handle all of the aspects of a vehicle breakdown This includes adding smoke and sounds, and ending the breakdown when appropriate. More... | |
| bool | NeedsAutorenewing (const Company *c, bool use_renew_setting=true) const |
| Function to tell if a vehicle needs to be autorenewed. More... | |
| bool | NeedsServicing () const |
| Check if the vehicle needs to go to a depot in near future (if a opportunity presents itself) for service or replacement. More... | |
| bool | NeedsAutomaticServicing () const |
| Checks if the current order should be interrupted for a service-in-depot order. More... | |
| virtual void | SetDestTile (TileIndex tile) |
| CommandCost | SendToDepot (DoCommandFlag flags, DepotCommand command) |
| Send this vehicle to the depot using the given command(s). More... | |
| void | UpdateVisualEffect (bool allow_power_change=true) |
| Update the cached visual effect. More... | |
| void | ShowVisualEffect () const |
| Draw visual effects (smoke and/or sparks) for a vehicle chain. More... | |
| void | UpdatePosition () |
| Update the position of the vehicle. More... | |
| void | UpdateViewport (bool dirty) |
| Update the vehicle on the viewport, updating the right hash and setting the new coordinates. More... | |
| void | UpdatePositionAndViewport () |
| Update the position of the vehicle, and update the viewport. | |
| void | MarkAllViewportsDirty () const |
| Marks viewports dirty where the vehicle's image is. | |
| uint16 | GetServiceInterval () const |
| void | SetServiceInterval (uint16 interval) |
| bool | ServiceIntervalIsCustom () const |
| bool | ServiceIntervalIsPercent () const |
| void | SetServiceIntervalIsCustom (bool on) |
| void | SetServiceIntervalIsPercent (bool on) |
| void | IncrementImplicitOrderIndex () |
| Increments cur_implicit_order_index, keeps care of the wrap-around and invalidates the GUI. More... | |
| void | IncrementRealOrderIndex () |
| Advanced cur_real_order_index to the next real order, keeps care of the wrap-around and invalidates the GUI. More... | |
| void | UpdateRealOrderIndex () |
| Skip implicit orders until cur_real_order_index is a non-implicit order. | |
| Order * | GetOrder (int index) const |
| Returns order 'index' of a vehicle or nullptr when it doesn't exists. More... | |
| Order * | GetLastOrder () const |
| Returns the last order of a vehicle, or nullptr if it doesn't exists. More... | |
| bool | IsEngineCountable () const |
| Check if a vehicle is counted in num_engines in each company struct. More... | |
| bool | HasEngineType () const |
| Check whether Vehicle::engine_type has any meaning. More... | |
| bool | HasDepotOrder () const |
| Checks if a vehicle has a depot in its order list. More... | |
| void | HandlePathfindingResult (bool path_found) |
| Handle the pathfinding result, especially the lost status. More... | |
| bool | IsFrontEngine () const |
| Check if the vehicle is a front engine. More... | |
| bool | IsArticulatedPart () const |
| Check if the vehicle is an articulated part of an engine. More... | |
| bool | HasArticulatedPart () const |
| Check if an engine has an articulated part. More... | |
| Vehicle * | GetNextArticulatedPart () const |
| Get the next part of an articulated engine. More... | |
| Vehicle * | GetFirstEnginePart () |
| Get the first part of an articulated engine. More... | |
| const Vehicle * | GetFirstEnginePart () const |
| Get the first part of an articulated engine. More... | |
| Vehicle * | GetLastEnginePart () |
| Get the last part of an articulated engine. More... | |
| Vehicle * | GetNextVehicle () const |
| Get the next real (non-articulated part) vehicle in the consist. More... | |
| Vehicle * | GetPrevVehicle () const |
| Get the previous real (non-articulated part) vehicle in the consist. More... | |
Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool > | |
| void * | operator new (size_t size) |
| Allocates space for new Titem. More... | |
| void * | operator new (size_t size, size_t index) |
| Allocates space for new Titem with given index. More... | |
| void * | operator new (size_t size, void *ptr) |
| Allocates space for new Titem at given memory address. More... | |
| void | operator delete (void *p) |
| Marks Titem as free. More... | |
Public Member Functions inherited from BaseConsist | |
| void | CopyConsistPropertiesFrom (const BaseConsist *src) |
| Copy properties of other BaseConsist. More... | |
Data Fields | |
| TrainCache | tcache |
| Train * | other_multiheaded_part |
| uint16 | crash_anim_pos |
| Crash animation counter. | |
| uint16 | flags |
| TrackBits | track |
| TrainForceProceeding | force_proceed |
| RailType | railtype |
| RailTypes | compatible_railtypes |
| uint16 | wait_counter |
| Ticks waiting in front of a signal, ticks being stuck or a counter for forced proceeding through signals. More... | |
Data Fields inherited from GroundVehicle< Train, VEH_TRAIN > | |
| GroundVehicleCache | gcache |
| Cache of often calculated values. | |
| uint16 | gv_flags |
Data Fields inherited from Vehicle | |
| TileIndex | tile |
| Current tile index. | |
| TileIndex | dest_tile |
| Heading for this tile. More... | |
| Money | profit_this_year |
| Profit this year << 8, low 8 bits are fract. | |
| Money | profit_last_year |
| Profit last year << 8, low 8 bits are fract. | |
| Money | value |
| Value of the vehicle. | |
| CargoPayment * | cargo_payment |
| The cargo payment we're currently in. | |
| Rect | coord |
| NOSAVE: Graphical bounding box of the vehicle, i.e. what to redraw on moves. | |
| Vehicle * | hash_viewport_next |
| NOSAVE: Next vehicle in the visual location hash. | |
| Vehicle ** | hash_viewport_prev |
| NOSAVE: Previous vehicle in the visual location hash. | |
| Vehicle * | hash_tile_next |
| NOSAVE: Next vehicle in the tile location hash. | |
| Vehicle ** | hash_tile_prev |
| NOSAVE: Previous vehicle in the tile location hash. | |
| Vehicle ** | hash_tile_current |
| NOSAVE: Cache of the current hash chain. | |
| SpriteID | colourmap |
| NOSAVE: cached colour mapping. | |
| Year | build_year |
| Year the vehicle has been built. | |
| Date | age |
| Age in days. | |
| Date | max_age |
| Maximum age. | |
| Date | date_of_last_service |
| Last date the vehicle had a service at a depot. | |
| uint16 | reliability |
| Reliability. | |
| uint16 | reliability_spd_dec |
| Reliability decrease speed. | |
| byte | breakdown_ctr |
| Counter for managing breakdown events. More... | |
| byte | breakdown_delay |
| Counter for managing breakdown length. | |
| byte | breakdowns_since_last_service |
| Counter for the amount of breakdowns. | |
| byte | breakdown_chance |
| Current chance of breakdowns. | |
| int32 | x_pos |
| x coordinate. | |
| int32 | y_pos |
| y coordinate. | |
| int32 | z_pos |
| z coordinate. | |
| Direction | direction |
| facing | |
| Owner | owner |
| Which company owns the vehicle? | |
| byte | spritenum |
| currently displayed sprite index 0xfd == custom sprite, 0xfe == custom second head sprite 0xff == reserved for another custom sprite | |
| VehicleSpriteSeq | sprite_seq |
| Vehicle appearance. | |
| byte | x_extent |
| x-extent of vehicle bounding box | |
| byte | y_extent |
| y-extent of vehicle bounding box | |
| byte | z_extent |
| z-extent of vehicle bounding box | |
| int8 | x_bb_offs |
| x offset of vehicle bounding box | |
| int8 | y_bb_offs |
| y offset of vehicle bounding box | |
| int8 | x_offs |
| x offset for vehicle sprite | |
| int8 | y_offs |
| y offset for vehicle sprite | |
| EngineID | engine_type |
| The type of engine used for this vehicle. | |
| TextEffectID | fill_percent_te_id |
| a text-effect id to a loading indicator object | |
| UnitID | unitnumber |
| unit number, for display purposes only | |
| uint16 | cur_speed |
| current speed | |
| byte | subspeed |
| fractional speed | |
| byte | acceleration |
| used by train & aircraft | |
| uint32 | motion_counter |
| counter to occasionally play a vehicle sound. | |
| byte | progress |
| The percentage (if divided by 256) this vehicle already crossed the tile unit. | |
| byte | random_bits |
| Bits used for determining which randomized variational spritegroups to use when drawing. | |
| byte | waiting_triggers |
| Triggers to be yet matched before rerandomizing the random bits. | |
| StationID | last_station_visited |
| The last station we stopped at. | |
| StationID | last_loading_station |
| Last station the vehicle has stopped at and could possibly leave from with any cargo loaded. | |
| CargoID | cargo_type |
| type of cargo this vehicle is carrying | |
| byte | cargo_subtype |
| Used for livery refits (NewGRF variations) | |
| uint16 | cargo_cap |
| total capacity | |
| uint16 | refit_cap |
| Capacity left over from before last refit. | |
| VehicleCargoList | cargo |
| The cargo this vehicle is carrying. | |
| uint16 | cargo_age_counter |
| Ticks till cargo is aged next. | |
| int8 | trip_occupancy |
| NOSAVE: Occupancy of vehicle of the current trip (updated after leaving a station). | |
| byte | day_counter |
| Increased by one for each day. | |
| byte | tick_counter |
| Increased by one for each tick. | |
| byte | running_ticks |
| Number of ticks this vehicle was not stopped this day. | |
| byte | vehstatus |
| Status. | |
| Order | current_order |
| The current order (+ status, like: loading) | |
| union { | |
| OrderList * list | |
| Pointer to the order list for this vehicle. | |
| Order * old | |
| Only used during conversion of old save games. | |
| } | orders |
| The orders currently assigned to the vehicle. | |
| uint16 | load_unload_ticks |
| Ticks to wait before starting next cycle. | |
| GroupID | group_id |
| Index of group Pool array. | |
| byte | subtype |
| subtype (Filled with values from AircraftSubType/DisasterSubType/EffectVehicleType/GroundVehicleSubtypeFlags) | |
| NewGRFCache | grf_cache |
| Cache of often used calculated NewGRF values. | |
| VehicleCache | vcache |
| Cache of often used vehicle values. | |
Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool > | |
| Tindex | index |
| Index of this pool item. | |
Data Fields inherited from BaseVehicle | |
| VehicleType | type |
| Type of vehicle. | |
Data Fields inherited from BaseConsist | |
| char * | name |
| Name of vehicle. | |
| uint32 | current_order_time |
| How many ticks have passed since this order started. | |
| int32 | lateness_counter |
| How many ticks late (or early if negative) this vehicle is. | |
| Date | timetable_start |
| When the vehicle is supposed to start the timetable. | |
| uint16 | service_interval |
| The interval for (automatic) servicing; either in days or %. | |
| VehicleOrderID | cur_real_order_index |
| The index to the current real (non-implicit) order. | |
| VehicleOrderID | cur_implicit_order_index |
| The index to the current implicit order. | |
| uint16 | vehicle_flags |
| Used for gradual loading and other miscellaneous things (. More... | |
Protected Member Functions | |
| uint16 | GetPower () const |
| Allows to know the power value that this vehicle will use. More... | |
| uint16 | GetPoweredPartPower (const Train *head) const |
| Returns a value if this articulated part is powered. More... | |
| uint16 | GetWeight () const |
| Allows to know the weight value that this vehicle will use. More... | |
| byte | GetTractiveEffort () const |
| Allows to know the tractive effort value that this vehicle will use. More... | |
| byte | GetAirDragArea () const |
| Gets the area used for calculating air drag. More... | |
| byte | GetAirDrag () const |
| Gets the air drag coefficient of this vehicle. More... | |
| AccelStatus | GetAccelerationStatus () const |
| Checks the current acceleration status of this vehicle. More... | |
| uint16 | GetCurrentSpeed () const |
| Calculates the current speed of this vehicle. More... | |
| uint32 | GetRollingFriction () const |
| Returns the rolling friction coefficient of this vehicle. More... | |
| int | GetAccelerationType () const |
| Allows to know the acceleration type of a vehicle. More... | |
| uint32 | GetSlopeSteepness () const |
| Returns the slope steepness used by this vehicle. More... | |
| uint16 | GetMaxTrackSpeed () const |
| Gets the maximum speed allowed by the track for this vehicle. More... | |
| bool | TileMayHaveSlopedTrack () const |
| Checks if the vehicle is at a tile that can be sloped. More... | |
| bool | HasToUseGetSlopePixelZ () |
| Trains can always use the faster algorithm because they have always the same direction as the track under them. More... | |
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. More... | |
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. | |
Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool > | |
| typedef struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > | Pool |
| Type of the pool this item is going to be part of. | |
Static Public Member Functions inherited from SpecializedVehicle< Train, Type > | |
| static bool | IsValidID (size_t index) |
| Tests whether given index is a valid index for vehicle of this type. More... | |
| static Train * | Get (size_t index) |
| Gets vehicle with given index. More... | |
| static Train * | GetIfValid (size_t index) |
| Returns vehicle if the index is a valid index for this vehicle type. More... | |
| static Train * | From (Vehicle *v) |
| Converts a Vehicle to SpecializedVehicle with type checking. More... | |
| static const Train * | From (const Vehicle *v) |
| Converts a const Vehicle to const SpecializedVehicle with type checking. More... | |
| static Pool::IterateWrapper< Train > | Iterate (size_t from=0) |
| Returns an iterable ensemble of all valid vehicles of type T. More... | |
Static Public Member Functions inherited from Vehicle | |
| static uint | GetAdvanceSpeed (uint speed) |
| Determines the effective vehicle movement speed. More... | |
Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool > | |
| static bool | CanAllocateItem (size_t n=1) |
| Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function() More... | |
| static bool | CleaningPool () |
| Returns current state of pool cleaning - yes or no. More... | |
| static bool | IsValidID (size_t index) |
| Tests whether given index can be used to get valid (non-nullptr) Titem. More... | |
| static Titem * | Get (size_t index) |
| Returns Titem with given index. More... | |
| static Titem * | GetIfValid (size_t index) |
| Returns Titem with given index. More... | |
| static size_t | GetPoolSize () |
| Returns first unused index. More... | |
| static size_t | GetNumItems () |
| Returns number of valid items in the pool. More... | |
| static void | PostDestructor (size_t index) |
| Dummy function called after destructor of each member. More... | |
| static Pool::IterateWrapper< Titem > | Iterate (size_t from=0) |
| Returns an iterable ensemble of all valid Titem. More... | |
Static Public Attributes inherited from SpecializedVehicle< Train, Type > | |
| static const VehicleType | EXPECTED_TYPE |
| Specialized type. | |
|
inlinevirtual |
We want to 'destruct' the right class.
Definition at line 105 of file train.h.
References Vehicle::MarkDirty(), and Vehicle::UpdateDeltaXY().
|
inline |
Calculate the offset from this vehicle's center to the following center taking the vehicle lengths into account.
Definition at line 167 of file train.h.
References GroundVehicleCache::cached_veh_length, GroundVehicle< T, Type >::gcache, and SpecializedVehicle< T, Type >::Next().
Referenced by TicksToLeaveDepot().
| void Train::ConsistChanged | ( | ConsistChangeFlags | allowed_changes | ) |
Recalculates the cached stuff of a train.
Should be called each time a vehicle is added to/removed from the chain, and when the game is loaded. Note: this needs to be called too for 'wagon chains' (in the depot, without an engine)
| allowed_changes | Stuff that is allowed to change. |
Definition at line 106 of file train_cmd.cpp.
Referenced by DeleteLastWagon(), and NormaliseTrainHead().
|
virtual |
The train vehicle crashed! Update its status and other parts around it.
| flooded | Crash was caused by flooding. |
Reimplemented from Vehicle.
Definition at line 2916 of file train_cmd.cpp.
References ClearPathReservation(), GroundVehicle< T, Type >::Crash(), crash_anim_pos, Vehicle::fill_percent_te_id, FreeTrainTrackReservation(), GetOtherTunnelBridgeEnd(), GetVehicleTrackdir(), HasBit(), HideFillingPercent(), INVALID_TILE, Vehicle::IsFrontEngine(), IsTileType(), MP_TUNNELBRIDGE, SpecializedVehicle< T, Type >::Next(), SetTunnelBridgeReservation(), Vehicle::tile, TrainApproachingCrossingTile(), UpdateLevelCrossing(), and VRF_TRAIN_STUCK.
Referenced by TrainCrashed().
|
virtual |
Locate the closest depot for this consist, and return the information to the caller.
| [out] | location | If not nullptr and a depot is found, store its location in the given address. |
| [out] | destination | If not nullptr and a depot is found, store its index in the given address. |
| [out] | reverse | If not nullptr and a depot is found, store reversal information in the given address. |
Reimplemented from Vehicle.
Definition at line 2015 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 262 of file train.h.
References HasBit(), Vehicle::vehstatus, and VS_STOPPED.
|
inlineprotected |
Allows to know the acceleration type of a vehicle.
Definition at line 292 of file train.h.
References RailtypeInfo::acceleration_type, and GetRailTypeInfo().
|
inlineprotected |
|
inlineprotected |
Gets the area used for calculating air drag.
Definition at line 243 of file train.h.
References TRACK_BIT_WORMHOLE, Vehicle::vehstatus, and VS_HIDDEN.
|
virtual |
Calculates the maximum speed of the vehicle under its current conditions.
Reimplemented from Vehicle.
Definition at line 369 of file train_cmd.cpp.
References _settings_game, VehicleSettings::train_acceleration_model, and GameSettings::vehicle.
|
inlineprotected |
Calculates the current speed of this vehicle.
Definition at line 271 of file train.h.
References Vehicle::cur_speed.
| int Train::GetCurveSpeedLimit | ( | ) | const |
Computes train speed limit caused by curves.
Definition at line 300 of file train_cmd.cpp.
| 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 432 of file train_cmd.cpp.
Referenced by NewGRFInspectWindow::DrawWidget(), GetLengthOfArticulatedVehicle(), and GetSingleVehicleWidth().
|
inlinevirtual |
Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing.
Reimplemented from Vehicle.
Definition at line 116 of file train.h.
References VehicleCache::cached_max_speed, Vehicle::GetRunningCost(), and Vehicle::vcache.
|
inlinevirtual |
Gets the speed in km-ish/h that can be sent into SetDParam for string processing.
Reimplemented from Vehicle.
Definition at line 115 of file train.h.
References GroundVehicle< T, Type >::gcache, and GroundVehicleCache::last_speed.
|
inlinevirtual |
Sets the expense type associated to this vehicle type.
| income | whether this is income or (running) expenses of the vehicle |
Reimplemented from Vehicle.
Definition at line 111 of file train.h.
References EXPENSES_TRAIN_INC, EXPENSES_TRAIN_RUN, and Vehicle::PlayLeaveStationSound().
|
virtual |
Get the sprite to display the train.
| direction | Direction of view/travel. |
| image_type | Visualisation context. |
Reimplemented from Vehicle.
Definition at line 462 of file train_cmd.cpp.
References HasBit(), ReverseDir(), Vehicle::spritenum, and VRF_REVERSE_DIRECTION.
|
inlineprotected |
Gets the maximum speed allowed by the track for this vehicle.
Definition at line 310 of file train.h.
References GetRailType(), GetRailTypeInfo(), RailtypeInfo::max_speed, and Vehicle::tile.
|
inline |
Get the next real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist.
Definition at line 143 of file train.h.
References SpecializedVehicle< T, Type >::GetNextVehicle(), and GroundVehicle< T, Type >::IsRearDualheaded().
Referenced by ArrangeTrains(), CmdAutoreplaceVehicle(), and Vehicle::NeedsServicing().
|
virtual |
Get the location of the next station to visit.
| station | Next station to visit. |
Reimplemented from Vehicle.
Definition at line 2757 of file train_cmd.cpp.
References Vehicle::last_station_visited.
|
inlineprotected |
Allows to know the power value that this vehicle will use.
Definition at line 182 of file train.h.
References GetRailType(), HasPowerOnRail(), Vehicle::IsArticulatedPart(), and Vehicle::tile.
|
inlineprotected |
Returns a value if this articulated part is powered.
Definition at line 199 of file train.h.
References GetRailType(), HasBit(), HasPowerOnRail(), Vehicle::tile, and VRF_POWEREDWAGON.
|
inline |
Get the previous real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist.
Definition at line 155 of file train.h.
References SpecializedVehicle< T, Type >::GetPrevVehicle(), and GroundVehicle< T, Type >::IsRearDualheaded().
|
inlineprotected |
|
virtual |
Get running cost for the train consist.
Reimplemented from Vehicle.
Definition at line 3870 of file train_cmd.cpp.
References Vehicle::GetEngine().
|
inlineprotected |
Returns the slope steepness used by this vehicle.
Definition at line 301 of file train.h.
References _settings_game, VehicleSettings::train_slope_steepness, and GameSettings::vehicle.
|
inlineprotected |
|
virtual |
Get the tracks of the train vehicle.
Reimplemented from Vehicle.
Definition at line 4005 of file train_cmd.cpp.
References DiagDirToDiagTrackdir(), Vehicle::direction, DirToDiagDir(), FindFirstTrack(), GetRailDepotDirection(), INVALID_TRACKDIR, Vehicle::tile, TRACK_BIT_DEPOT, TRACK_BIT_WORMHOLE, TrackDirectionToTrackdir(), Vehicle::vehstatus, and VS_CRASHED.
Referenced by Crash(), FreeTrainReservation(), NPFTrainFindNearestDepot(), RestoreTrainReservation(), YapfTrainCheckReverse(), and YapfTrainFindNearestDepot().
|
inlineprotected |
Allows to know the weight value that this vehicle will use.
Definition at line 213 of file train.h.
References Vehicle::cargo, Vehicle::cargo_type, FreightWagonMult(), CargoSpec::Get(), Vehicle::IsArticulatedPart(), VehicleCargoList::StoredCount(), and CargoSpec::weight.
|
inlineprotected |
|
inlinevirtual |
Check whether the vehicle is in the depot.
Reimplemented from Vehicle.
Definition at line 119 of file train.h.
References GroundVehicle< T, Type >::Crash(), Vehicle::FindClosestDepot(), Vehicle::GetCurrentMaxSpeed(), Vehicle::GetOrderStationLocation(), Vehicle::GetVehicleTrackdir(), OnNewDay(), Vehicle::Tick(), and TRACK_BIT_DEPOT.
|
virtual |
Goods at the consist have changed, update the graphics, cargo, and acceleration.
Reimplemented from Vehicle.
Definition at line 2772 of file train_cmd.cpp.
References Vehicle::colourmap.
|
virtual |
Update day counters of the train vehicle.
Reimplemented from Vehicle.
Definition at line 3967 of file train_cmd.cpp.
References AgeVehicle(), Vehicle::day_counter, DecreaseVehicleValue(), and Vehicle::IsFrontEngine().
|
virtual |
Play a sound for a train leaving the station.
Reimplemented from Vehicle.
Definition at line 2028 of file train_cmd.cpp.
| void Train::ReserveTrackUnderConsist | ( | ) | const |
Tries to reserve track under whole train consist.
Definition at line 2894 of file train_cmd.cpp.
References DiagDirToDiagTrack(), GetTunnelBridgeDirection(), SpecializedVehicle< T, Type >::Next(), TRACK_BIT_DEPOT, TRACK_BIT_WORMHOLE, TrackBitsToTrack(), and TryReserveRailTrack().
Referenced by TrainCrashed().
|
virtual |
Update train vehicle data for a tick.
Reimplemented from Vehicle.
Definition at line 3895 of file train_cmd.cpp.
References Vehicle::cur_speed, BaseConsist::current_order_time, Vehicle::IsFrontEngine(), PFE_GL_TRAINS, Vehicle::running_ticks, Vehicle::tick_counter, Vehicle::vehstatus, and VS_STOPPED.
|
inlineprotected |
Checks if the vehicle is at a tile that can be sloped.
Definition at line 319 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 417 of file train_cmd.cpp.
| 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 2792 of file train_cmd.cpp.
References _settings_game, VehicleSettings::train_acceleration_model, and GameSettings::vehicle.
| uint16 Train::wait_counter |
Ticks waiting in front of a signal, ticks being stuck or a counter for forced proceeding through signals.
Definition at line 100 of file train.h.
Referenced by CheckTrainStayInDepot(), and MarkTrainAsStuck().