OpenTTD
Public Member Functions | Static Public Member Functions | Static Public Attributes
SpecializedStation< T, Tis_waypoint > Struct Template Reference

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

#include <base_station_base.h>

Inheritance diagram for SpecializedStation< T, Tis_waypoint >:
BaseStation Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >

Public Member Functions

 SpecializedStation (TileIndex tile)
 Set station type correctly. More...
 
- Public Member Functions inherited from BaseStation
 BaseStation (TileIndex tile)
 Initialize the base station. More...
 
virtual bool TileBelongsToRailStation (TileIndex tile) const =0
 Check whether a specific tile belongs to this station. More...
 
virtual uint32 GetNewGRFVariable (const struct ResolverObject &object, byte variable, byte parameter, bool *available) const =0
 Helper function to get a NewGRF variable that isn't implemented by the base class. More...
 
virtual void UpdateVirtCoord ()=0
 Update the coordinated of the sign (as shown in the viewport).
 
virtual void GetTileArea (TileArea *ta, StationType type) const =0
 Get the tile area for a given station type. More...
 
virtual uint GetPlatformLength (TileIndex tile) const =0
 Obtain the length of a platform. More...
 
virtual uint GetPlatformLength (TileIndex tile, DiagDirection dir) const =0
 Determines the REMAINING length of a platform, starting at (and including) the given tile. More...
 
bool IsInUse () const
 Check whether the base station currently is in use; in use means that it is not scheduled for deletion and that it still has some facilities left. More...
 
- Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_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...
 

Static Public Member Functions

static bool IsExpected (const BaseStation *st)
 Helper for checking whether the given station is of this type. More...
 
static bool IsValidID (size_t index)
 Tests whether given index is a valid index for station of this type. More...
 
static T * Get (size_t index)
 Gets station with given index. More...
 
static T * GetIfValid (size_t index)
 Returns station if the index is a valid index for this station type. More...
 
static T * GetByTile (TileIndex tile)
 Get the station belonging to a specific tile. More...
 
static T * From (BaseStation *st)
 Converts a BaseStation to SpecializedStation with type checking. More...
 
static const T * From (const BaseStation *st)
 Converts a const BaseStation to const SpecializedStation with type checking. More...
 
- Static Public Member Functions inherited from BaseStation
static BaseStationGetByTile (TileIndex tile)
 Get the base station belonging to a specific tile. More...
 
static void PostDestructor (size_t index)
 Invalidating of the JoinStation window has to be done after removing item from the pool. More...
 
- Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_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

static const StationFacility EXPECTED_FACIL = Tis_waypoint ? FACIL_WAYPOINT : FACIL_NONE
 Specialized type.
 

Additional Inherited Members

- Data Fields inherited from BaseStation
TileIndex xy
 Base tile of the station.
 
ViewportSign sign
 NOSAVE: Dimensions of sign.
 
byte delete_ctr
 Delete counter. If greater than 0 then it is decremented until it reaches 0; the waypoint is then is deleted.
 
char * name
 Custom name.
 
StringID string_id
 Default name (town area) of station.
 
Towntown
 The town this station is associated with.
 
OwnerByte owner
 The owner of this station.
 
StationFacilityByte facilities
 The facilities that this station has.
 
uint8 num_specs
 Number of specs in the speclist.
 
StationSpecListspeclist
 List of station specs of this station.
 
Date build_date
 Date of construction.
 
uint16 random_bits
 Random bits assigned to this station.
 
byte waiting_triggers
 Waiting triggers (NewGRF) for this station.
 
uint8 cached_anim_triggers
 NOSAVE: Combined animation trigger bitmask, used to determine if trigger processing should happen.
 
uint32 cached_cargo_triggers
 NOSAVE: Combined cargo trigger bitmask.
 
TileArea train_station
 Tile area the train 'station' part covers.
 
StationRect rect
 NOSAVE: Station spread out rectangle maintained by StationRect::xxx() functions.
 
- Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >
Tindex index
 Index of this pool item.
 

Detailed Description

template<class T, bool Tis_waypoint>
struct SpecializedStation< T, Tis_waypoint >

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

Definition at line 169 of file base_station_base.h.

Constructor & Destructor Documentation

◆ SpecializedStation()

template<class T, bool Tis_waypoint>
SpecializedStation< T, Tis_waypoint >::SpecializedStation ( TileIndex  tile)
inline

Set station type correctly.

Parameters
tileThe base tile of the station.

Definition at line 176 of file base_station_base.h.

Member Function Documentation

◆ From() [1/2]

template<class T, bool Tis_waypoint>
static T* SpecializedStation< T, Tis_waypoint >::From ( BaseStation st)
inlinestatic

Converts a BaseStation to SpecializedStation with type checking.

Parameters
stBaseStation pointer
Returns
pointer to SpecializedStation

Definition at line 235 of file base_station_base.h.

◆ From() [2/2]

template<class T, bool Tis_waypoint>
static const T* SpecializedStation< T, Tis_waypoint >::From ( const BaseStation st)
inlinestatic

Converts a const BaseStation to const SpecializedStation with type checking.

Parameters
stBaseStation pointer
Returns
pointer to SpecializedStation

Definition at line 246 of file base_station_base.h.

◆ Get()

template<class T, bool Tis_waypoint>
static T* SpecializedStation< T, Tis_waypoint >::Get ( size_t  index)
inlinestatic

Gets station with given index.

Returns
pointer to station with given index casted to T *

Definition at line 206 of file base_station_base.h.

◆ GetByTile()

template<class T, bool Tis_waypoint>
static T* SpecializedStation< T, Tis_waypoint >::GetByTile ( TileIndex  tile)
inlinestatic

Get the station belonging to a specific tile.

Parameters
tileThe tile to get the station from.
Returns
the station associated with that tile.

Definition at line 225 of file base_station_base.h.

◆ GetIfValid()

template<class T, bool Tis_waypoint>
static T* SpecializedStation< T, Tis_waypoint >::GetIfValid ( size_t  index)
inlinestatic

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

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

Definition at line 215 of file base_station_base.h.

◆ IsExpected()

template<class T, bool Tis_waypoint>
static bool SpecializedStation< T, Tis_waypoint >::IsExpected ( const BaseStation st)
inlinestatic

Helper for checking whether the given station is of this type.

Parameters
stthe station to check.
Returns
true if the station is the type we expect it to be.

Definition at line 187 of file base_station_base.h.

◆ IsValidID()

template<class T, bool Tis_waypoint>
static bool SpecializedStation< T, Tis_waypoint >::IsValidID ( size_t  index)
inlinestatic

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

Parameters
indextested index
Returns
is this index valid index of T?

Definition at line 197 of file base_station_base.h.


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