OpenTTD

Public Member Functions | Data Fields
EffectVehicle Struct Reference

A special vehicle is one of the following: More...

`#include <effectvehicle_base.h>`

Inheritance diagram for EffectVehicle:

## Public Member Functions
| EffectVehicle ()
| We don't want GCC to zero our struct! It already is zeroed and has an index!
virtual | ~EffectVehicle ()
| We want to 'destruct' the right class. More...
void | UpdateDeltaXY (Direction direction)
| Updates the x and y offsets and the size of the sprite used for this vehicle. More...
bool | Tick ()
| Calls the tick handler of the vehicle. More...
TransparencyOption | GetTransparencyOption () const
| Determines the transparency option affecting the effect. More...
Public Member Functions inherited from SpecializedVehicle< EffectVehicle, VEH_EFFECT >
| SpecializedVehicle ()
| Set vehicle type correctly.
EffectVehicle * | First () const
| Get the first vehicle in the chain. More...
EffectVehicle * | Last ()
| Get the last vehicle in the chain. More...
const EffectVehicle * | Last () const
| Get the last vehicle in the chain. More...
EffectVehicle * | Next () const
| Get next vehicle in the chain. More...
EffectVehicle * | Previous () const
| Get previous vehicle in the chain. More...
EffectVehicle * | GetNextArticulatedPart ()
| Get the next part of an articulated engine. More...
EffectVehicle * | GetNextArticulatedPart () const
| Get the next part of an articulated engine. More...
EffectVehicle * | GetFirstEnginePart ()
| Get the first part of an articulated engine. More...
const EffectVehicle * | GetFirstEnginePart () const
| Get the first part of an articulated engine. More...
EffectVehicle * | GetLastEnginePart ()
| Get the last part of an articulated engine. More...
EffectVehicle * | GetNextVehicle () const
| Get the next real (non-articulated part) vehicle in the consist. More...
EffectVehicle * | 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
virtual void | MarkDirty ()
| Marks the vehicles to be redrawn and updates cached variables. More...
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...
virtual ExpensesType | GetExpenseType (bool income) const
| Sets the expense type associated to this vehicle type. More...
virtual void | PlayLeaveStationSound () const
| Play the sound associated with leaving the station.
virtual bool | IsPrimaryVehicle () const
| Whether this is the primary vehicle in the chain.
const Engine * | GetEngine () const
| Retrieves the engine of the vehicle. More...
virtual void | GetImage (Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const
| Gets the sprite to show for the given direction. 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...
virtual int | GetDisplaySpeed () const
| Gets the speed in km-ish/h that can be sent into SetDParam for string processing. More...
virtual int | GetDisplayMaxSpeed () const
| Gets the maximum speed in km-ish/h that can be sent into SetDParam for string processing. More...
virtual int | GetCurrentMaxSpeed () const
| Calculates the maximum speed of the vehicle under its current conditions. More...
virtual Money | GetRunningCost () const
| Gets the running cost of a vehicle. More...
virtual bool | IsInDepot () const
| Check whether the vehicle is in the depot. More...
virtual bool | IsChainInDepot () const
| Check whether the whole vehicle chain is in the depot. More...
bool | IsStoppedInDepot () const
| Check whether the vehicle is in the depot and stopped. More...
virtual void | OnNewDay ()
| Calls the new day handler of the vehicle.
virtual uint | Crash (bool flooded=false)
| Crash the (whole) vehicle chain. More...
virtual Trackdir | GetVehicleTrackdir () const
| Returns the Trackdir on which the vehicle is currently located. 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 TileIndex | GetOrderStationLocation (StationID station)
| Determine the location for the station where the vehicle goes to next. More...
virtual 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. More...
CommandCost | SendToDepot (DoCommandFlag flags, DepotCommand command)
| Send this vehicle to the depot using the given command(s). More...
void | UpdateVisualEffect (bool allow_power_change=true)
| Update the cached visual effect. More...
void | ShowVisualEffect () const
| Draw visual effects (smoke and/or sparks) for a vehicle chain. More...
void | UpdatePosition ()
| Update the position of the vehicle. More...
void | UpdateViewport (bool dirty)
| Update the vehicle on the viewport, updating the right hash and setting the new coordinates. More...
void | UpdatePositionAndViewport ()
| Update the position of the vehicle, and update the viewport.
void | MarkAllViewportsDirty () const
| Marks viewports dirty where the vehicle's image is.
uint16 | GetServiceInterval () const
void | SetServiceInterval (uint16 interval)
bool | ServiceIntervalIsCustom () const
bool | ServiceIntervalIsPercent () const
void | SetServiceIntervalIsCustom (bool on)
void | SetServiceIntervalIsPercent (bool on)
void | IncrementImplicitOrderIndex ()
| Increments cur_implicit_order_index, keeps care of the wrap-around and invalidates the GUI. More...
void | IncrementRealOrderIndex ()
| Advanced cur_real_order_index to the next real order, keeps care of the wrap-around and invalidates the GUI. More...
void | UpdateRealOrderIndex ()
| Skip implicit orders until cur_real_order_index is a non-implicit order.
Order * | GetOrder (int index) const
| Returns order 'index' of a vehicle or NULL when it doesn't exists. More...
Order * | GetLastOrder () const
| Returns the last order of a vehicle, or NULL if it doesn't exists. More...
bool | IsEngineCountable () const
| Check if a vehicle is counted in num_engines in each company struct. More...
bool | HasEngineType () const
| Check whether Vehicle::engine_type has any meaning. More...
bool | HasDepotOrder () const
| Checks if a vehicle has a depot in its order list. More...
void | HandlePathfindingResult (bool path_found)
| Handle the pathfinding result, especially the lost status. More...
bool | IsFrontEngine () const
| Check if the vehicle is a front engine. More...
bool | IsArticulatedPart () const
| Check if the vehicle is an articulated part of an engine. More...
bool | HasArticulatedPart () const
| Check if an engine has an articulated part. More...
Vehicle * | GetNextArticulatedPart () const
| Get the next part of an articulated engine. More...
Vehicle * | GetFirstEnginePart ()
| Get the first part of an articulated engine. More...
const Vehicle * | GetFirstEnginePart () const
| Get the first part of an articulated engine. More...
Vehicle * | GetLastEnginePart ()
| Get the last part of an articulated engine. More...
Vehicle * | GetNextVehicle () const
| Get the next real (non-articulated part) vehicle in the consist. More...
Vehicle * | GetPrevVehicle () const
| Get the previous real (non-articulated part) vehicle in the consist. More...
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
uint16 | animation_state
| State primarily used to change the graphics/behaviour.
byte | animation_substate
| Sub state to time the change of the graphics/behaviour.
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.
DirectionByte | direction
| facing
OwnerByte | owner
| Which company owns the vehicle?
byte | spritenum
| currently displayed sprite index 0xfd == custom sprite, 0xfe == custom second head sprite 0xff == reserved for another custom sprite
VehicleSpriteSeq | sprite_seq
| Vehicle appearance.
byte | x_extent
| x-extent of vehicle bounding box
byte | y_extent
| y-extent of vehicle bounding box
byte | z_extent
| z-extent of vehicle bounding box
int8 | x_bb_offs
| x offset of vehicle bounding box
int8 | y_bb_offs
| y offset of vehicle bounding box
int8 | x_offs
| x offset for vehicle sprite
int8 | y_offs
| y offset for vehicle sprite
EngineID | engine_type
| The type of engine used for this vehicle.
TextEffectID | fill_percent_te_id
| a text-effect id to a loading indicator object
UnitID | unitnumber
| unit number, for display purposes only
uint16 | cur_speed
| current speed
byte | subspeed
| fractional speed
byte | acceleration
| used by train & aircraft
uint32 | motion_counter
| counter to occasionally play a vehicle sound.
byte | progress
| The percentage (if divided by 256) this vehicle already crossed the tile unit.
byte | random_bits
| Bits used for determining which randomized variational spritegroups to use when drawing.
byte | waiting_triggers
| Triggers to be yet matched before rerandomizing the random bits.
StationID | last_station_visited
| The last station we stopped at.
StationID | last_loading_station
| Last station the vehicle has stopped at and could possibly leave from with any cargo loaded.
CargoID | cargo_type
| type of cargo this vehicle is carrying
byte | cargo_subtype
| Used for livery refits (NewGRF variations)
uint16 | cargo_cap
| total capacity
uint16 | refit_cap
| Capacity left over from before last refit.
VehicleCargoList | cargo
| The cargo this vehicle is carrying.
uint16 | cargo_age_counter
| Ticks till cargo is aged next.
int8 | trip_occupancy
| NOSAVE: Occupancy of vehicle of the current trip (updated after leaving a station).
byte | day_counter
| Increased by one for each day.
byte | tick_counter
| Increased by one for each tick.
byte | running_ticks
| Number of ticks this vehicle was not stopped this day.
byte | vehstatus
| Status.
Order | current_order
| The current order (+ status, like: loading)
union {
OrderList * list
| Pointer to the order list for this vehicle.
Order * old
| Only used during conversion of old save games.
} | orders
| The orders currently assigned to the vehicle.
uint16 | load_unload_ticks
| Ticks to wait before starting next cycle.
GroupID | group_id
| Index of group Pool array.
byte | subtype
| subtype (Filled with values from #EffectVehicles/#TrainSubTypes/#AircraftSubTypes)
NewGRFCache | grf_cache
| Cache of often used calculated NewGRF values.
VehicleCache | vcache
| Cache of often used vehicle values.
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
VehicleTypeByte | 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...

## Additional Inherited Members
Public Types inherited from SpecializedVehicle< EffectVehicle, VEH_EFFECT >
typedef SpecializedVehicle< EffectVehicle, Type > | SpecializedVehicleBase
| Our type.
Static Public Member Functions inherited from SpecializedVehicle< EffectVehicle, VEH_EFFECT >
static bool | IsValidID (size_t index)
| Tests whether given index is a valid index for vehicle of this type. More...
static EffectVehicle * | Get (size_t index)
| Gets vehicle with given index. More...
static EffectVehicle * | GetIfValid (size_t index)
| Returns vehicle if the index is a valid index for this vehicle type. More...
static EffectVehicle * | From (Vehicle *v)
| Converts a Vehicle to SpecializedVehicle with type checking. More...
static const EffectVehicle * | From (const Vehicle *v)
| Converts a const Vehicle to const SpecializedVehicle with type checking. 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-NULL) Titem. More...
static Titem * | Get (size_t index)
| Returns Titem with given index. More...
static Titem * | GetIfValid (size_t index)
| Returns Titem with given index. More...
static size_t | GetPoolSize ()
| Returns first unused index. More...
static size_t | GetNumItems ()
| Returns number of valid items in the pool. More...
static void | PostDestructor (size_t index)
| Dummy function called after destructor of each member. More...
Static Public Attributes inherited from SpecializedVehicle< EffectVehicle, VEH_EFFECT >
static const VehicleType | EXPECTED_TYPE
| Specialized type.

## Detailed Description

A special vehicle is one of the following:

- smoke
- electric sparks for trains
- explosions
- bulldozer (road works)
- bubbles (industry)

Definition at line 26 of file effectvehicle_base.h.

## Constructor & Destructor Documentation

## ◆ ~EffectVehicle()

virtual EffectVehicle::~EffectVehicle | ( |  | ) |
| inline virtual

We want to 'destruct' the right class.

Definition at line 33 of file effectvehicle_base.h.

References Vehicle::direction, GetTransparencyOption(), Tick(), and UpdateDeltaXY().

## Member Function Documentation

## ◆ GetTransparencyOption()

TransparencyOption EffectVehicle::GetTransparencyOption | ( |  | ) | const

Determines the transparency option affecting the effect.

Returns
  Transparency option, or TO_INVALID if none.

Definition at line 663 of file effectvehicle.cpp.

References _effect_transparency_options.

Referenced by ~EffectVehicle().

## ◆ Tick()

bool EffectVehicle::Tick | ( |  | ) |
| virtual

Calls the tick handler of the vehicle.

Returns
  is this vehicle still valid?

Reimplemented from Vehicle.

Definition at line 645 of file effectvehicle.cpp.

References _effect_tick_procs.

Referenced by ~EffectVehicle().

## ◆ UpdateDeltaXY()

void EffectVehicle::UpdateDeltaXY | ( | Direction | direction | ) |
| virtual

Updates the x and y offsets and the size of the sprite used for this vehicle.

Parameters

  direction | the direction the vehicle is facing

Reimplemented from Vehicle.

Definition at line 650 of file effectvehicle.cpp.

Referenced by ~EffectVehicle().

The documentation for this struct was generated from the following files:

- src/effectvehicle_base.h
- src/effectvehicle.cpp