# Train Struct Reference

This class 'wraps' Vehicle; you do not actually instantiate this class. More...

`#include <train.h>`

Inheritance diagram for Train:

## Public Member Functions
| Train ()
| Initializes the Vehicle to a train.
virtual | ~Train ()
| We want to 'destruct' the right class.
const char * | GetTypeString () const
void | MarkDirty ()
void | UpdateDeltaXY (Direction direction)
ExpensesType | GetExpenseType (bool income) const
void | PlayLeaveStationSound () const
bool | IsPrimaryVehicle () const
SpriteID | GetImage (Direction direction) const
int | GetDisplaySpeed () const
int | GetDisplayMaxSpeed () const
Money | GetRunningCost () const
bool | IsInDepot () const
bool | IsStoppedInDepot () const
void | Tick ()
void | OnNewDay ()
TileIndex | GetOrderStationLocation (StationID station)
bool | FindClosestDepot (TileIndex *location, DestinationID *destination, bool *reverse)

## Detailed Description

This class 'wraps' Vehicle; you do not actually instantiate this class.

You create a Vehicle using AllocateVehicle, so it is added to the pool and you reinitialize that to a Train using: v = new (v) Train();

As side-effect the vehicle type is set correctly.

Definition at line 311 of file train.h.

## Constructor & Destructor Documentation

virtual Train::~Train | ( |  | ) | `[inline, virtual]`

We want to 'destruct' the right class.

Definition at line 316 of file train.h.

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

- src/train.h
- src/train_cmd.cpp