# BaseStation Struct Reference

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.
virtual bool | TileBelongsToRailStation (TileIndex tile) const =0
| Check whether a specific tile belongs to this station.
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.
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.
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.
FORCEINLINE 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.

## Static Public Member Functions

static FORCEINLINE BaseStation * | GetByTile (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.

## Data Fields

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.
Town * | town
| 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.
StationSpecList * | speclist
| 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.
TileArea | train_station
| Tile area the train 'station' part covers.
StationRect | rect
| NOSAVE: Station spread out rectangle maintained by StationRect::xxx() functions.

## Detailed Description

Base class for all station-ish types.

Definition at line 53 of file base_station_base.h.

## Constructor & Destructor Documentation

BaseStation::BaseStation | ( | TileIndex | tile | ) | `[inline]`

Initialize the base station.

Parameters:

  | tile | The location of the station sign

Definition at line 81 of file base_station_base.h.

## Member Function Documentation

static FORCEINLINE BaseStation* BaseStation::GetByTile | ( | TileIndex | tile | ) | `[inline, static]`

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.

Reimplemented in SpecializedStation< T, Tis_waypoint >, SpecializedStation< Station, false >, and SpecializedStation< Waypoint, true >.

Definition at line 141 of file base_station_base.h.

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

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

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

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 Station, and Waypoint.

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 Station, and Waypoint.

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

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

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

References FACIL_WAYPOINT, and facilities.

Referenced by CmdBuildRailWaypoint(), DeleteStationIfEmpty(), FindDeletedWaypointCloseTo(), FindStationsNearby(), GetClosestDeletedStation(), WaypointWindow::OnInvalidateData(), ResetLandscapeConfirmationCallback(), StationHandleBigTick(), and UpdateStationAcceptance().

void BaseStation::PostDestructor | ( | size_t | index | ) | `[static]`

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

Parameters:

  | index | index of deleted item

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

Definition at line 110 of file station.cpp.

References InvalidateWindowData().

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.

Referenced by CanExpandRailStation(), and DeallocateSpecFromStation().

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

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