SpecializedVehicle< T, Type > Struct Template Reference

Class defining several overloaded accessors so we don't have to cast vehicle types that often. More...

#include <vehicle_base.h>

Inheritance diagram for SpecializedVehicle< T, Type >:

Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem< Tpool >

Public Member Functions

FORCEINLINE SpecializedVehicle ()
 Set vehicle type correctly.
FORCEINLINE T * First () const
 Get the first vehicle in the chain.
FORCEINLINE T * Last ()
 Get the last vehicle in the chain.
FORCEINLINE const T * Last () const
 Get the last vehicle in the chain.
FORCEINLINE T * Next () const
 Get next vehicle in the chain.
FORCEINLINE T * Previous () const
 Get previous vehicle in the chain.

Static Public Member Functions

static FORCEINLINE bool IsValidID (size_t index)
 Tests whether given index is a valid index for vehicle of this type.
static FORCEINLINE T * Get (size_t index)
 Gets vehicle with given index.
static FORCEINLINE T * GetIfValid (size_t index)
 Returns vehicle if the index is a valid index for this vehicle type.
static FORCEINLINE T * From (Vehicle *v)
 Converts a Vehicle to SpecializedVehicle with type checking.
static FORCEINLINE const T * From (const Vehicle *v)
 Converts a const Vehicle to const SpecializedVehicle with type checking.

Static Public Attributes

static const VehicleType EXPECTED_TYPE = Type
 Specialized type.

Detailed Description

template<class T, VehicleType Type>
struct SpecializedVehicle< T, Type >

Class defining several overloaded accessors so we don't have to cast vehicle types that often.

Definition at line 585 of file vehicle_base.h.


Member Function Documentation

template<class T, VehicleType Type>
FORCEINLINE T* SpecializedVehicle< T, Type >::First (  )  const [inline]

template<class T, VehicleType Type>
FORCEINLINE T* SpecializedVehicle< T, Type >::Last (  )  [inline]

Get the last vehicle in the chain.

Returns:
last vehicle in the chain

Definition at line 603 of file vehicle_base.h.

Referenced by AdvanceWagonsAfterSwap(), AdvanceWagonsBeforeSwap(), InsertInConsist(), NPFTrainCheckReverse(), NPFTrainFindNearestDepot(), RemoveFromConsist(), YapfTrainCheckReverse(), and YapfTrainFindNearestDepot().

template<class T, VehicleType Type>
FORCEINLINE const T* SpecializedVehicle< T, Type >::Last (  )  const [inline]

Get the last vehicle in the chain.

Returns:
last vehicle in the chain

Definition at line 609 of file vehicle_base.h.

template<class T, VehicleType Type>
FORCEINLINE T* SpecializedVehicle< T, Type >::Next (  )  const [inline]

template<class T, VehicleType Type>
FORCEINLINE T* SpecializedVehicle< T, Type >::Previous (  )  const [inline]

Get previous vehicle in the chain.

Returns:
previous vehicle in the chain

Definition at line 621 of file vehicle_base.h.

Referenced by AdvanceWagonsAfterSwap(), AdvanceWagonsBeforeSwap(), Train::GetFirstEnginePart(), Train::GetPrevVehicle(), NormaliseSubtypes(), RemoveFromConsist(), and RestoreTrainBackup().

template<class T, VehicleType Type>
static FORCEINLINE bool SpecializedVehicle< T, Type >::IsValidID ( size_t  index  )  [inline, static]

Tests whether given index is a valid index for vehicle of this type.

Parameters:
index tested index
Returns:
is this index valid index of T?

Reimplemented from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem< Tpool >.

Definition at line 629 of file vehicle_base.h.

Referenced by SpecializedVehicle< RoadVehicle, VEH_ROAD >::GetIfValid().

template<class T, VehicleType Type>
static FORCEINLINE T* SpecializedVehicle< T, Type >::Get ( size_t  index  )  [inline, static]

Gets vehicle with given index.

Returns:
pointer to vehicle with given index casted to T *

Reimplemented from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem< Tpool >.

Definition at line 638 of file vehicle_base.h.

Referenced by SpecializedVehicle< RoadVehicle, VEH_ROAD >::GetIfValid().

template<class T, VehicleType Type>
static FORCEINLINE T* SpecializedVehicle< T, Type >::GetIfValid ( size_t  index  )  [inline, static]

Returns vehicle if the index is a valid index for this vehicle type.

Returns:
pointer to vehicle with given index if it's a vehicle of this type

Reimplemented from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem< Tpool >.

Definition at line 647 of file vehicle_base.h.

template<class T, VehicleType Type>
static FORCEINLINE T* SpecializedVehicle< T, Type >::From ( Vehicle *  v  )  [inline, static]

Converts a Vehicle to SpecializedVehicle with type checking.

Parameters:
v Vehicle pointer
Returns:
pointer to SpecializedVehicle

Definition at line 657 of file vehicle_base.h.

template<class T, VehicleType Type>
static FORCEINLINE const T* SpecializedVehicle< T, Type >::From ( const Vehicle *  v  )  [inline, static]

Converts a const Vehicle to const SpecializedVehicle with type checking.

Parameters:
v Vehicle pointer
Returns:
pointer to SpecializedVehicle

Definition at line 668 of file vehicle_base.h.


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

Generated on Wed Dec 23 23:28:23 2009 for OpenTTD by  doxygen 1.5.6