OpenTTD Source 20241224-master-gf74b0cf984
BaseStation Struct Referenceabstract

Base class for all station-ish types. More...

#include <base_station_base.h>

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

Public Member Functions

 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 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.
 

Data Fields

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.
 

Private Member Functions

bool SetRoadStopTileData (TileIndex tile, uint8_t data, bool animation)
 
void FillCachedName () const
 

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.
 

Detailed Description

Base class for all station-ish types.

Definition at line 59 of file base_station_base.h.

Constructor & Destructor Documentation

◆ BaseStation()

BaseStation::BaseStation ( TileIndex  tile)
inline

Initialize the base station.

Parameters
tileThe location of the station sign

Definition at line 93 of file base_station_base.h.

◆ ~BaseStation()

BaseStation::~BaseStation ( )
virtual

Definition at line 51 of file station.cpp.

Member Function Documentation

◆ FillCachedName()

void BaseStation::FillCachedName ( ) const
private

Definition at line 483 of file station_cmd.cpp.

◆ GetByTile()

◆ GetCachedName()

const std::string & BaseStation::GetCachedName ( ) const
inline

Definition at line 123 of file base_station_base.h.

◆ GetNewGRFVariable()

virtual uint32_t BaseStation::GetNewGRFVariable ( const struct ResolverObject object,
uint8_t  variable,
uint8_t  parameter,
bool &  available 
) const
pure virtual

Helper function to get a NewGRF variable that isn't implemented by the base class.

Parameters
objectthe resolver object related to this query
variablethat is queried
parameterparameter for that variable
availablewill return false if ever the variable asked for does not exist
Returns
the value stored in the corresponding variable

Implemented in Waypoint.

Referenced by RoadStopScopeResolver::GetVariable(), and StationScopeResolver::GetVariable().

◆ GetPlatformLength() [1/2]

virtual uint BaseStation::GetPlatformLength ( TileIndex  tile) const
pure virtual

Obtain the length of a platform.

Precondition
tile must be a rail station tile
Parameters
tileA tile that contains the platform in question
Returns
The length of the platform

Implemented in Station, and Waypoint.

Referenced by CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::CanEnterNewTile(), and CYapfCostRailT< Types >::PfCalcCost().

◆ GetPlatformLength() [2/2]

virtual uint BaseStation::GetPlatformLength ( TileIndex  tile,
DiagDirection  dir 
) const
pure virtual

Determines the REMAINING length of a platform, starting at (and including) the given tile.

Parameters
tilethe tile from which to start searching. Must be a rail station tile
dirThe direction in which to search.
Returns
The platform length

Implemented in Station, and Waypoint.

◆ GetRoadStopAnimationFrame()

uint8_t BaseStation::GetRoadStopAnimationFrame ( TileIndex  tile) const
inline

Definition at line 190 of file base_station_base.h.

◆ GetRoadStopRandomBits()

uint8_t BaseStation::GetRoadStopRandomBits ( TileIndex  tile) const
inline

Definition at line 182 of file base_station_base.h.

◆ GetTileArea()

virtual void BaseStation::GetTileArea ( TileArea ta,
StationType  type 
) const
pure virtual

Get the tile area for a given station type.

Parameters
tatile area to fill.
typethe type of the area

Implemented in Station, and Waypoint.

Referenced by CalcClosestStationTile().

◆ IsInUse()

bool BaseStation::IsInUse ( ) const
inline

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.

Returns
true if still in use

Definition at line 177 of file base_station_base.h.

References FACIL_WAYPOINT.

Referenced by CmdBuildRailWaypoint(), CmdBuildRoadWaypoint(), DeleteStationIfEmpty(), WaypointWindow::GetCenterTile(), GetClosestDeletedStation(), WaypointWindow::OnInvalidateData(), WaypointWindow::OnPaint(), StationHandleBigTick(), and UpdateStationAcceptance().

◆ MoveSign()

virtual void BaseStation::MoveSign ( TileIndex  new_xy)
inlinevirtual

Reimplemented in Station, and Waypoint.

Definition at line 130 of file base_station_base.h.

◆ PostDestructor()

void BaseStation::PostDestructor ( size_t  index)
static

Invalidating of the JoinStation window has to be done after removing item from the pool.

Definition at line 166 of file station.cpp.

References InvalidateWindowData(), and WC_SELECT_STATION.

◆ RemoveRoadStopTileData()

void BaseStation::RemoveRoadStopTileData ( TileIndex  tile)

Definition at line 189 of file station.cpp.

◆ SetRoadStopAnimationFrame()

bool BaseStation::SetRoadStopAnimationFrame ( TileIndex  tile,
uint8_t  frame 
)
inline

Definition at line 203 of file base_station_base.h.

◆ SetRoadStopRandomBits()

void BaseStation::SetRoadStopRandomBits ( TileIndex  tile,
uint8_t  random_bits 
)
inline

Definition at line 202 of file base_station_base.h.

◆ SetRoadStopTileData()

bool BaseStation::SetRoadStopTileData ( TileIndex  tile,
uint8_t  data,
bool  animation 
)
private

Definition at line 171 of file station.cpp.

◆ TileBelongsToRailStation()

virtual bool BaseStation::TileBelongsToRailStation ( TileIndex  tile) const
pure virtual

Check whether a specific tile belongs to this station.

Parameters
tilethe tile to check
Returns
true if the tile belongs to this station

Implemented in Station, and Waypoint.

Referenced by DeallocateSpecFromStation(), StationScopeResolver::GetVariable(), and StationUsesDefaultType().

◆ UpdateVirtCoord()

virtual void BaseStation::UpdateVirtCoord ( )
pure virtual

Update the coordinated of the sign (as shown in the viewport).

Implemented in Station, and Waypoint.

References cached_name, and name.

Referenced by RemoveFromRailBaseStation().

Field Documentation

◆ build_date

◆ cached_anim_triggers

uint8_t BaseStation::cached_anim_triggers

NOSAVE: Combined animation trigger bitmask, used to determine if trigger processing should happen.

Definition at line 79 of file base_station_base.h.

Referenced by CmdBuildRailStation(), DeallocateSpecFromStation(), and StationUpdateCachedTriggers().

◆ cached_cargo_triggers

CargoTypes BaseStation::cached_cargo_triggers

NOSAVE: Combined cargo trigger bitmask.

Definition at line 81 of file base_station_base.h.

Referenced by DeallocateSpecFromStation(), StationUpdateCachedTriggers(), and TriggerStationRandomisation().

◆ cached_name

std::string BaseStation::cached_name
mutable

NOSAVE: Cache of the resolved name of the station, if not using a custom name.

Definition at line 66 of file base_station_base.h.

Referenced by CmdRenameStation(), and UpdateVirtCoord().

◆ cached_roadstop_anim_triggers

uint8_t BaseStation::cached_roadstop_anim_triggers

NOSAVE: Combined animation trigger bitmask for road stops, used to determine if trigger processing should happen.

Definition at line 80 of file base_station_base.h.

Referenced by CmdBuildRoadStop(), CmdBuildRoadWaypoint(), and RoadStopUpdateCachedTriggers().

◆ cached_roadstop_cargo_triggers

CargoTypes BaseStation::cached_roadstop_cargo_triggers

NOSAVE: Combined cargo trigger bitmask for road stops.

Definition at line 82 of file base_station_base.h.

Referenced by RoadStopUpdateCachedTriggers(), and TriggerRoadStopRandomisation().

◆ custom_roadstop_tile_data

std::vector<RoadStopTileData> BaseStation::custom_roadstop_tile_data

List of custom road stop tile data.

Definition at line 87 of file base_station_base.h.

Referenced by SlRoadStopTileData::GetVector(), and TriggerRoadStopRandomisation().

◆ delete_ctr

uint8_t BaseStation::delete_ctr

Delete counter. If greater than 0 then it is decremented until it reaches 0; the waypoint is then is deleted.

Definition at line 62 of file base_station_base.h.

Referenced by CmdBuildRailWaypoint(), CmdBuildRoadWaypoint(), DeleteStationIfEmpty(), MoveBuoysToWaypoints(), MoveWaypointsToBaseStations(), RemoveBuoy(), and StationHandleBigTick().

◆ facilities

◆ name

std::string BaseStation::name

◆ owner

◆ random_bits

◆ rect

◆ roadstop_speclist

std::vector<SpecMapping<RoadStopSpec> > BaseStation::roadstop_speclist

List of road stop specs of this station.

Definition at line 73 of file base_station_base.h.

Referenced by RoadStopScopeResolver::GetVariable().

◆ sign

TrackedViewportSign BaseStation::sign

NOSAVE: Dimensions of sign.

Definition at line 61 of file base_station_base.h.

Referenced by Station::UpdateVirtCoord(), Waypoint::UpdateVirtCoord(), and Station::~Station().

◆ speclist

std::vector<SpecMapping<StationSpec> > BaseStation::speclist

List of rail station specs of this station.

Definition at line 72 of file base_station_base.h.

Referenced by AllocateSpecToStation(), DeallocateSpecFromStation(), StationScopeResolver::GetVariable(), and Station::MarkTilesDirty().

◆ string_id

◆ town

◆ train_station

◆ waiting_triggers

uint8_t BaseStation::waiting_triggers

Waiting triggers (NewGRF) for this station.

Definition at line 78 of file base_station_base.h.

Referenced by RoadStopScopeResolver::GetTriggers(), StationScopeResolver::GetTriggers(), TriggerRoadStopRandomisation(), and TriggerStationRandomisation().

◆ xy


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