OpenTTD Source: src/vehicle_base.h File Reference

OpenTTD Source 13.2.1

Data Structures | Typedefs | Enumerations | Functions | Variables
vehicle_base.h File Reference
`#include "core/smallmap_type.hpp"`
`#include "track_type.h"`
`#include "command_type.h"`
`#include "order_base.h"`
`#include "cargopacket.h"`
`#include "texteff.hpp"`
`#include "engine_type.h"`
`#include "order_func.h"`
`#include "transport_type.h"`
`#include "group_type.h"`
`#include "base_consist.h"`
`#include "network/network.h"`
`#include "saveload/saveload.h"`
`#include <list>`
`#include <map>`

Go to the source code of this file.

## Data Structures
struct | NewGRFCache
| Cached often queried (NewGRF) values. More...
struct | VehicleCache
| Cached often queried values common to all vehicles. More...
struct | VehicleSpriteSeq
| Sprite sequence for a vehicle part. More...
struct | MutableSpriteCache
| Cache for vehicle sprites and values relating to whether they should be updated before drawing, or calculating the viewport. More...
struct | RefitDesc
| Simulated cargo type and capacity for prediction of future links. More...
struct | Vehicle
| Vehicle data structure. More...
struct | Vehicle::OrderIterator
| Iterator to iterate orders Supports deletion of current order. More...
struct | Vehicle::IterateWrapper
| Iterable ensemble of orders. More...
struct | SpecializedVehicle< T, Type >
| Class defining several overloaded accessors so we don't have to cast vehicle types that often. More...
struct | FreeUnitIDGenerator
| Generates sequence of free UnitID numbers. More...

## Typedefs
typedef Pool< Vehicle, VehicleID, 512, 0xFF000 > | VehiclePool
| A vehicle pool for a little over 1 million vehicles.

## Enumerations
enum | VehStatus { VS_HIDDEN = 0x01, VS_STOPPED = 0x02, VS_UNCLICKABLE = 0x04, VS_DEFPAL = 0x08, VS_TRAIN_SLOWING = 0x10, VS_SHADOW = 0x20, VS_AIRCRAFT_BROKEN = 0x40, VS_CRASHED = 0x80 }
| Vehicle status bits in Vehicle::vehstatus. More...
enum | VehicleFlags { VF_LOADING_FINISHED, VF_CARGO_UNLOADING, VF_BUILT_AS_PROTOTYPE, VF_TIMETABLE_STARTED, VF_AUTOFILL_TIMETABLE, VF_AUTOFILL_PRES_WAIT_TIME, VF_STOP_LOADING, VF_PATHFINDER_LOST, VF_SERVINT_IS_CUSTOM, VF_SERVINT_IS_PERCENT }
| Bit numbers in Vehicle::vehicle_flags. More...
enum | NewGRFCacheValidValues { NCVV_POSITION_CONSIST_LENGTH = 0, NCVV_POSITION_SAME_ID_LENGTH = 1, NCVV_CONSIST_CARGO_INFORMATION = 2, NCVV_COMPANY_INFORMATION = 3, NCVV_POSITION_IN_VEHICLE = 4, NCVV_END }
| Bit numbers used to indicate which of the NewGRFCache values are valid. More...
enum | VisualEffect { VE_OFFSET_START = 0, VE_OFFSET_COUNT = 4, VE_OFFSET_CENTRE = 8, VE_TYPE_START = 4, VE_TYPE_COUNT = 2, VE_TYPE_DEFAULT = 0, VE_TYPE_STEAM = 1, VE_TYPE_DIESEL = 2, VE_TYPE_ELECTRIC = 3, VE_DISABLE_EFFECT = 6, VE_ADVANCED_EFFECT = VE_DISABLE_EFFECT, VE_DISABLE_WAGON_POWER = 7, VE_DEFAULT = 0xFF }
| Meaning of the various bits of the visual effect. More...
enum | VisualEffectSpawnModel { VESM_NONE = 0, VESM_STEAM, VESM_DIESEL, VESM_ELECTRIC, VESM_END }
| Models for spawning visual effects. More...
enum | GroundVehicleSubtypeFlags { GVSF_FRONT = 0, GVSF_ARTICULATED_PART = 1, GVSF_WAGON = 2, GVSF_ENGINE = 3, GVSF_FREE_WAGON = 4, GVSF_MULTIHEADED = 5 }
| Enum to handle ground vehicle subtypes. More...

## Functions
bool | LoadOldVehicle (LoadgameState *ls, int num)
| Load the vehicles of an old style savegame. More...
void | FixOldVehicles ()
| Convert the old style vehicles into something that resembles the old new style savegames. More...

## Variables
const uint | TILE_AXIAL_DISTANCE = 192
const uint | TILE_CORNER_DISTANCE = 128
VehiclePool | _vehicle_pool
| The pool with all our precious vehicles.
static const int32 | INVALID_COORD = 0x7fffffff
| Sentinel for an invalid coordinate.

## Detailed Description

Base class for all vehicles.

Definition in file vehicle_base.h.

## Enumeration Type Documentation

## ◆ GroundVehicleSubtypeFlags

enum GroundVehicleSubtypeFlags

Enum to handle ground vehicle subtypes.

This is defined here instead of at GroundVehicle because some common function require access to these flags. Do not access it directly unless you have to. Use the subtype access functions.

Enumerator
GVSF_FRONT | Leading engine of a consist.
GVSF_ARTICULATED_PART | Articulated part of an engine.
GVSF_WAGON | Wagon (not used for road vehicles).
GVSF_ENGINE | Engine that can be front engine, but might be placed behind another engine (not used for road vehicles).
GVSF_FREE_WAGON | First in a wagon chain (in depot) (not used for road vehicles).
GVSF_MULTIHEADED | Engine is multiheaded (not used for road vehicles).

Definition at line 114 of file vehicle_base.h.

## ◆ NewGRFCacheValidValues

enum NewGRFCacheValidValues

Bit numbers used to indicate which of the NewGRFCache values are valid.

Enumerator
NCVV_POSITION_CONSIST_LENGTH | This bit will be set if the NewGRF var 40 currently stored is valid.
NCVV_POSITION_SAME_ID_LENGTH | This bit will be set if the NewGRF var 41 currently stored is valid.
NCVV_CONSIST_CARGO_INFORMATION | This bit will be set if the NewGRF var 42 currently stored is valid.
NCVV_COMPANY_INFORMATION | This bit will be set if the NewGRF var 43 currently stored is valid.
NCVV_POSITION_IN_VEHICLE | This bit will be set if the NewGRF var 4D currently stored is valid.
NCVV_END | End of the bits.

Definition at line 59 of file vehicle_base.h.

## ◆ VehicleFlags

enum VehicleFlags

Bit numbers in Vehicle::vehicle_flags.

Enumerator
VF_LOADING_FINISHED | Vehicle has finished loading.
VF_CARGO_UNLOADING | Vehicle is unloading cargo.
VF_BUILT_AS_PROTOTYPE | Vehicle is a prototype (accepted as exclusive preview).
VF_TIMETABLE_STARTED | Whether the vehicle has started running on the timetable yet.
VF_AUTOFILL_TIMETABLE | Whether the vehicle should fill in the timetable automatically.
VF_AUTOFILL_PRES_WAIT_TIME | Whether non-destructive auto-fill should preserve waiting times.
VF_STOP_LOADING | Don't load anymore during the next load cycle.
VF_PATHFINDER_LOST | Vehicle's pathfinder is lost.
VF_SERVINT_IS_CUSTOM | Service interval is custom.
VF_SERVINT_IS_PERCENT | Service interval is percent.

Definition at line 45 of file vehicle_base.h.

## ◆ VehStatus

enum VehStatus

Vehicle status bits in Vehicle::vehstatus.

Enumerator
VS_HIDDEN | Vehicle is not visible.
VS_STOPPED | Vehicle is stopped by the player.
VS_UNCLICKABLE | Vehicle is not clickable by the user (shadow vehicles).
VS_DEFPAL | Use default vehicle palette. See also DoDrawVehicle
VS_TRAIN_SLOWING | Train is slowing down.
VS_SHADOW | Vehicle is a shadow vehicle.
VS_AIRCRAFT_BROKEN | Aircraft is broken down.
VS_CRASHED | Vehicle is crashed.

Definition at line 33 of file vehicle_base.h.

## ◆ VisualEffect

enum VisualEffect

Meaning of the various bits of the visual effect.

Enumerator
VE_OFFSET_START | First bit that contains the offset (0 = front, 8 = centre, 15 = rear)
VE_OFFSET_COUNT | Number of bits used for the offset.
VE_OFFSET_CENTRE | Value of offset corresponding to a position above the centre of the vehicle.
VE_TYPE_START | First bit used for the type of effect.
VE_TYPE_COUNT | Number of bits used for the effect type.
VE_TYPE_DEFAULT | Use default from engine class.
VE_TYPE_STEAM | Steam plumes.
VE_TYPE_DIESEL | Diesel fumes.
VE_TYPE_ELECTRIC | Electric sparks.
VE_DISABLE_EFFECT | Flag to disable visual effect.
VE_ADVANCED_EFFECT | Flag for advanced effects.
VE_DISABLE_WAGON_POWER | Flag to disable wagon power.
VE_DEFAULT | Default value to indicate that visual effect should be based on engine class.

Definition at line 80 of file vehicle_base.h.

## ◆ VisualEffectSpawnModel

enum VisualEffectSpawnModel

Models for spawning visual effects.

Enumerator
VESM_NONE | No visual effect.
VESM_STEAM | Steam model.
VESM_DIESEL | Diesel model.
VESM_ELECTRIC | Electric model.

Definition at line 100 of file vehicle_base.h.

## Function Documentation

## ◆ FixOldVehicles()

void FixOldVehicles | ( |  | ) |

Convert the old style vehicles into something that resembles the old new style savegames.

Then AfterLoadGame can handle the rest of the conversion.

Definition at line 171 of file oldloader_sl.cpp.

References CopyFromOldName(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Iterate(), and VEH_EFFECT.

## ◆ LoadOldVehicle()

bool LoadOldVehicle | ( | LoadgameState * | ls,
|  | int | num
| ) |  |

Load the vehicles of an old style savegame.

Parameters

  ls | State (buffer) of the currently loaded game.
  num | The number of vehicles to load.

Returns
  True iff loading went without problems.

So we can set the proper next pointer while loading.

Parameters

  ls | State (buffer) of the currently loaded game.
  num | The number of vehicles to load.

Returns
  True iff loading went without problems.

Definition at line 1222 of file oldloader_sl.cpp.