# 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
WindowClass | GetVehicleListWindowClass () const
void | PlayLeaveStationSound () const
bool | IsPrimaryVehicle () const
int | GetImage (Direction direction) const
int | GetDisplaySpeed () const
int | GetDisplayMaxSpeed () const
Money | GetRunningCost () const
bool | IsInDepot () const
bool | IsStoppedInDepot () const
void | Tick ()
void | OnNewDay ()

## 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 288 of file train.h.

## Constructor & Destructor Documentation

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

We want to 'destruct' the right class.

Definition at line 293 of file train.h.

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

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