OpenTTD Source: BaseStation Struct Reference

OpenTTD Source 14.0-RC3

Public Member Functions | Static Public Member Functions | Data Fields | Private Member Functions
BaseStation Struct Referenceabstract

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

`#include <base_station_base.h>`

Inheritance diagram for BaseStation:

## Public Member Functions
| 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_t | 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).
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. 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...
byte | GetRoadStopRandomBits (TileIndex tile) const
byte | GetRoadStopAnimationFrame (TileIndex tile) const
void | SetRoadStopRandomBits (TileIndex tile, byte random_bits)
void | SetRoadStopAnimationFrame (TileIndex tile, byte 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. More...
void * | operator new (size_t size, size_t index)
| Allocates space for new Titem with given index. More...
void * | operator new (size_t, 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 BaseStation * | GetByTile (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.
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-nullptr) 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 ([[maybe_unused]] size_t index)
| Dummy function called after destructor of each member. More...
static Pool::IterateWrapper< Titem > | Iterate (size_t from=0)
| Returns an iterable ensemble of all valid Titem. More...

## Data Fields
TileIndex | xy
| Base tile of the station.
TrackedViewportSign | 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.
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.
Town * | town
| The town this station is associated with.
Owner | owner
| The owner of this station.
StationFacility | facilities
| The facilities that this station has.
std::vector< StationSpecList > | speclist
| List of rail station specs of this station.
std::vector< RoadStopSpecList > | 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.
byte | 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< RoadStopTileData > | custom_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
void | SetRoadStopTileData (TileIndex tile, byte 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 64 of file base_station_base.h.

## Constructor & Destructor Documentation

## ◆ BaseStation()

BaseStation::BaseStation | ( | TileIndex | tile | ) |
| inline

Initialize the base station.

Parameters

  tile | The location of the station sign

Definition at line 98 of file base_station_base.h.

## Member Function Documentation

## ◆ GetByTile()

static BaseStation* BaseStation::GetByTile | ( | TileIndex | tile | ) |
| inlinestatic

Get the base station belonging to a specific tile.

Parameters

  tile | The tile to get the base station from.

Returns
  the station associated with that tile.

Definition at line 171 of file base_station_base.h.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >::Get(), and GetStationIndex().

Referenced by NIHRoadStop::GetParent().

## ◆ GetNewGRFVariable()

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

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

Parameters

  object | the resolver object related to this query
  variable | that is queried
  parameter | parameter for that variable
  available | will return false if ever the variable asked for does not exist

Returns
  the value stored in the corresponding variable

Implemented in Waypoint.

## ◆ 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

  tile | A tile that contains the platform in question

Returns
  The length of the platform

Implemented in Waypoint, and Station.

## ◆ 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

  tile | the tile from which to start searching. Must be a rail station tile
  dir | The direction in which to search.

Returns
  The platform length

Implemented in Waypoint, and Station.

## ◆ GetTileArea()

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

Get the tile area for a given station type.

Parameters

  ta | tile area to fill.
  type | the 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 182 of file base_station_base.h.

References FACIL_WAYPOINT.

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

## ◆ TileBelongsToRailStation()

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

Check whether a specific tile belongs to this station.

Parameters

  tile | the tile to check

Returns
  true if the tile belongs to this station

Implemented in Station, and Waypoint.

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

- src/base_station_base.h
- src/station.cpp
- src/station_cmd.cpp