OpenTTD Source 20241224-master-gf74b0cf984
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.
 
- Public Member Functions inherited from BaseStation
 BaseStation (TileIndex tile)
 Initialize the base station.
 
virtual bool TileBelongsToRailStation (TileIndex tile) const =0
 Check whether a specific tile belongs to this station.
 
virtual uint32_t GetNewGRFVariable (const struct ResolverObject &object, uint8_t variable, uint8_t parameter, bool &available) const =0
 Helper function to get a NewGRF variable that isn't implemented by the base class.
 
virtual void UpdateVirtCoord ()=0
 Update the coordinated of the sign (as shown in the viewport).
 
const std::string & GetCachedName () const
 
virtual void MoveSign (TileIndex new_xy)
 
virtual void GetTileArea (TileArea *ta, StationType type) const =0
 Get the tile area for a given station type.
 
virtual uint GetPlatformLength (TileIndex tile) const =0
 Obtain the length of a platform.
 
virtual uint GetPlatformLength (TileIndex tile, DiagDirection dir) const =0
 Determines the REMAINING length of a platform, starting at (and including) the given tile.
 
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.
 
uint8_t GetRoadStopRandomBits (TileIndex tile) const
 
uint8_t GetRoadStopAnimationFrame (TileIndex tile) const
 
void SetRoadStopRandomBits (TileIndex tile, uint8_t random_bits)
 
bool SetRoadStopAnimationFrame (TileIndex tile, uint8_t frame)
 
void RemoveRoadStopTileData (TileIndex tile)
 
- 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.
 
void * operator new (size_t size, size_t index)
 Allocates space for new Titem with given index.
 
void * operator new (size_t, void *ptr)
 Allocates space for new Titem at given memory address.
 
void operator delete (void *p)
 Marks Titem as free.
 

Static Public Member Functions

static bool IsExpected (const BaseStation *st)
 Helper for checking whether the given station is of this type.
 
static bool IsValidID (size_t index)
 Tests whether given index is a valid index for station of this type.
 
static T * Get (size_t index)
 Gets station with given index.
 
static T * GetIfValid (size_t index)
 Returns station if the index is a valid index for this station type.
 
static T * GetByTile (TileIndex tile)
 Get the station belonging to a specific tile.
 
static T * From (BaseStation *st)
 Converts a BaseStation to SpecializedStation with type checking.
 
static const T * From (const BaseStation *st)
 Converts a const BaseStation to const SpecializedStation with type checking.
 
static Pool::IterateWrapper< T > Iterate (size_t from=0)
 Returns an iterable ensemble of all valid stations of type T.
 
- Static Public Member Functions inherited from BaseStation
static BaseStationGetByTile (TileIndex tile)
 Get the base station belonging to a specific tile.
 
static void PostDestructor (size_t index)
 Invalidating of the JoinStation window has to be done after removing item from the pool.
 
- 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()
 
static bool CleaningPool ()
 Returns current state of pool cleaning - yes or no.
 
static bool IsValidID (size_t index)
 Tests whether given index can be used to get valid (non-nullptr) Titem.
 
static Titem * Get (size_t index)
 Returns Titem with given index.
 
static Titem * GetIfValid (size_t index)
 Returns Titem with given index.
 
static size_t GetPoolSize ()
 Returns first unused index.
 
static size_t GetNumItems ()
 Returns number of valid items in the pool.
 
static void PostDestructor (size_t index)
 Dummy function called after destructor of each member.
 
static Pool::IterateWrapper< Titem > Iterate (size_t from=0)
 Returns an iterable ensemble of all valid Titem.
 

Static Public Attributes

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

Additional Inherited Members

- Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >
typedef struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > Pool
 Type of the pool this item is going to be part of.
 
- Data Fields inherited from BaseStation
TileIndex xy
 Base tile of the station.
 
TrackedViewportSign sign
 NOSAVE: Dimensions of sign.
 
uint8_t delete_ctr
 Delete counter. If greater than 0 then it is decremented until it reaches 0; the waypoint is then is deleted.
 
std::string name
 Custom name.
 
StringID string_id
 Default name (town area) of station.
 
std::string cached_name
 NOSAVE: Cache of the resolved name of the station, if not using a custom name.
 
Towntown
 The town this station is associated with.
 
Owner owner
 The owner of this station.
 
StationFacility facilities
 The facilities that this station has.
 
std::vector< SpecMapping< StationSpec > > speclist
 List of rail station specs of this station.
 
std::vector< SpecMapping< RoadStopSpec > > roadstop_speclist
 List of road stop specs of this station.
 
TimerGameCalendar::Date build_date
 Date of construction.
 
uint16_t random_bits
 Random bits assigned to this station.
 
uint8_t waiting_triggers
 Waiting triggers (NewGRF) for this station.
 
uint8_t cached_anim_triggers
 NOSAVE: Combined animation trigger bitmask, used to determine if trigger processing should happen.
 
uint8_t cached_roadstop_anim_triggers
 NOSAVE: Combined animation trigger bitmask for road stops, used to determine if trigger processing should happen.
 
CargoTypes cached_cargo_triggers
 NOSAVE: Combined cargo trigger bitmask.
 
CargoTypes cached_roadstop_cargo_triggers
 NOSAVE: Combined cargo trigger bitmask for road stops.
 
TileArea train_station
 Tile area the train 'station' part covers.
 
StationRect rect
 NOSAVE: Station spread out rectangle maintained by StationRect::xxx() functions.
 
std::vector< RoadStopTileDatacustom_roadstop_tile_data
 List of custom road stop tile data.
 
- 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 217 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 224 of file base_station_base.h.

References SpecializedStation< T, Tis_waypoint >::EXPECTED_FACIL.

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 283 of file base_station_base.h.

References SpecializedStation< T, Tis_waypoint >::IsExpected().

◆ 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 294 of file base_station_base.h.

References SpecializedStation< T, Tis_waypoint >::IsExpected().

◆ Get()

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

◆ 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 273 of file base_station_base.h.

References SpecializedStation< T, Tis_waypoint >::GetIfValid(), and GetStationIndex().

◆ 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 263 of file base_station_base.h.

References SpecializedStation< T, Tis_waypoint >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >::index, and SpecializedStation< T, Tis_waypoint >::IsValidID().

Referenced by SpecializedStation< T, Tis_waypoint >::GetByTile().

◆ 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 235 of file base_station_base.h.

References SpecializedStation< T, Tis_waypoint >::EXPECTED_FACIL, FACIL_WAYPOINT, and BaseStation::facilities.

Referenced by SpecializedStation< T, Tis_waypoint >::From(), SpecializedStation< T, Tis_waypoint >::From(), and SpecializedStation< T, Tis_waypoint >::IsValidID().

◆ IsValidID()

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

◆ Iterate()

template<class T , bool Tis_waypoint>
static Pool::IterateWrapper< T > SpecializedStation< T, Tis_waypoint >::Iterate ( size_t  from = 0)
inlinestatic

Returns an iterable ensemble of all valid stations of type T.

Parameters
fromindex of the first station to consider
Returns
an iterable ensemble of all valid stations of type T

Definition at line 305 of file base_station_base.h.

Field Documentation

◆ EXPECTED_FACIL

template<class T , bool Tis_waypoint>
const StationFacility SpecializedStation< T, Tis_waypoint >::EXPECTED_FACIL = Tis_waypoint ? FACIL_WAYPOINT : FACIL_NONE
static

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