OpenTTD: Station Struct Reference

OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

Public Member Functions | Static Public Member Functions | Data Fields
Station Struct Reference

Station data structure. More...

`#include <station_base.h>`

Inheritance diagram for Station:

## Public Member Functions
RoadStop * | GetPrimaryRoadStop (RoadStopType type) const
RoadStop * | GetPrimaryRoadStop (const struct RoadVehicle *v) const
| Station (TileIndex tile=INVALID_TILE)
| ~Station ()
| Clean up a station by clearing vehicle orders, invalidating windows and removing link stats.
void | AddFacility (StationFacility new_facility_bit, TileIndex facil_xy)
| Called when new facility is built on the station.
void | MarkTilesDirty (bool cargo_change) const
| Marks the tiles of the station as dirty.
void | UpdateVirtCoord ()
| Update the virtual coords needed to draw the station sign.
uint | GetPlatformLength (TileIndex tile, DiagDirection dir) const
| Determines the REMAINING length of a platform, starting at (and including) the given tile.
uint | GetPlatformLength (TileIndex tile) const
| Obtain the length of a platform.
void | RecomputeIndustriesNear ()
| Recomputes Station::industries_near, list of industries possibly accepting cargo in station's catchment radius.
uint | GetCatchmentRadius () const
| Determines the catchment radius of the station.
Rect | GetCatchmentRect () const
| Determines catchment rectangle of this station.
bool | TileBelongsToRailStation (TileIndex tile) const
| Check whether a specific tile belongs to this station.
bool | TileBelongsToAirport (TileIndex tile) const
uint32 | GetNewGRFVariable (const ResolverObject &object, byte variable, byte parameter, bool *available) const
void | GetTileArea (TileArea *ta, StationType type) const
| Get the tile area for a given station type.
Public Member Functions inherited from SpecializedStation< Station, false >
| SpecializedStation (TileIndex tile)
| Set station type correctly.
Public Member Functions inherited from BaseStation
| BaseStation (TileIndex tile)
| Initialize the base 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.
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.
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 size, 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 void | RecomputeIndustriesNearForAll ()
| Recomputes Station::industries_near for all stations.
Static Public Member Functions inherited from SpecializedStation< Station, false >
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 Station * | Get (size_t index)
| Gets station with given index.
static Station * | GetIfValid (size_t index)
| Returns station if the index is a valid index for this station type.
static Station * | GetByTile (TileIndex tile)
| Get the station belonging to a specific tile.
static Station * | From (BaseStation *st)
| Converts a BaseStation to SpecializedStation with type checking.
static const Station * | From (const BaseStation *st)
| Converts a const BaseStation to const SpecializedStation with type checking.
Static Public Member Functions inherited from BaseStation
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 size_t | GetPoolSize ()
| Returns first unused index.
static size_t | GetNumItems ()
| Returns number of valid items in the pool.

## Data Fields
RoadStop * | bus_stops
| All the road stops.
TileArea | bus_station
| Tile area the bus 'station' part covers.
RoadStop * | truck_stops
| All the truck stops.
TileArea | truck_station
| Tile area the truck 'station' part covers.
Airport | airport
| Tile area the airport covers.
TileIndex | dock_tile
| The location of the dock.
IndustryType | indtype
| Industry type to get the name from.
StationHadVehicleOfTypeByte | had_vehicle_of_type
byte | time_since_load
byte | time_since_unload
byte | last_vehicle_type
std::list< Vehicle * > | loading_vehicles
GoodsEntry | goods [NUM_CARGO]
| Goods at this station.
uint32 | always_accepted
| Bitmask of always accepted cargo types (by houses, HQs, industry tiles when industry doesn't accept cargo)
IndustryVector | industries_near
| Cached list of industries near the station that can accept cargo,.

## Additional Inherited Members
Static Public Attributes inherited from SpecializedStation< Station, false >
static const StationFacility | EXPECTED_FACIL
| Specialized type.

## Detailed Description

Station data structure.

Definition at line 446 of file station_base.h.

## Constructor & Destructor Documentation

Station::~Station | ( |  | ) |

Clean up a station by clearing vehicle orders, invalidating windows and removing link stats.

Aircraft-Hangar orders need special treatment here, as the hangars are actually part of a station (tiletype is STATION), but the order type is OT_GOTO_DEPOT.

Definition at line 76 of file station.cpp.

References FlowStatMap::DeleteFlows(), DeleteStationNews(), DeleteWindowById(), GoodsEntry::flows, FOR_ALL_AIRCRAFT, FOR_ALL_VEHICLES, SpecializedStation< Station, false >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_link_graph_pool >::GetIfValid(), goods, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, LinkGraphSchedule::instance, INVALID_DATE, CargoPacket::InvalidateAllFrom(), InvalidateWindowClassesData(), InvalidateWindowData(), Aircraft::IsNormalAircraft(), Vehicle::last_loading_station, Vehicle::last_station_visited, NUM_CARGO, OWNER_NONE, LinkGraph::RemoveNode(), RemoveOrderFromAllVehicles(), RerouteCargo(), LinkGraph::Size(), Aircraft::targetairport, LinkGraphSchedule::Unqueue(), WC_STATION_LIST, and WC_STATION_VIEW.

## Member Function Documentation

void Station::AddFacility | ( | StationFacility | new_facility_bit,
|  | TileIndex | facil_xy
| ) |  |

Called when new facility is built on the station.

If it is the first facility it initializes also 'xy' and 'random_bits' members

Definition at line 187 of file station.cpp.

References _current_company, _date, and FACIL_NONE.

Referenced by CmdBuildAirport(), CmdBuildDock(), CmdBuildRailStation(), and CmdBuildRoadStop().

uint Station::GetCatchmentRadius | ( |  | ) | const

Determines the catchment radius of the station.

Returns
  The radius

Definition at line 271 of file station.cpp.

References _settings_game, CA_BUS, CA_DOCK, CA_NONE, CA_TRAIN, CA_TRUCK, CA_UNMODIFIED, INVALID_TILE, StationSettings::modified_catchment, and GameSettings::station.

Referenced by FindStationsAroundTiles(), and UpdateStationAcceptance().

Rect Station::GetCatchmentRect | ( |  | ) | const

Determines catchment rectangle of this station.

Returns
  clamped catchment rectangle

Definition at line 294 of file station.cpp.

References MapMaxX(), and MapMaxY().

Referenced by CheckSubsidised(), and TriggerWatchedCargoCallbacks().

uint Station::GetPlatformLength | ( | TileIndex | tile,
|  | DiagDirection | dir
| ) |  | const
| 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

Implements BaseStation.

Definition at line 252 of file station.cpp.

References DIAGDIR_END, IsCompatibleTrainStationTile(), IsRailStationTile(), and TileOffsByDiagDir().

Referenced by GetTrainStopLocation(), NPFSaveTargetData(), and UpdateLoadUnloadTicks().

uint Station::GetPlatformLength | ( | TileIndex | tile | ) | const
| 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

Implements BaseStation.

Definition at line 230 of file station.cpp.

References AXIS_X, GetRailStationAxis(), IsCompatibleTrainStationTile(), and TileDiffXY().

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

Get the tile area for a given station type.

Parameters

  ta | tile area to fill.
  type | the type of the area

Implements BaseStation.

Definition at line 380 of file station_cmd.cpp.

References airport, bus_station, dock_tile, OrthogonalTileArea::h, OrthogonalTileArea::tile, BaseStation::train_station, truck_station, and OrthogonalTileArea::w.

bool Station::TileBelongsToRailStation | ( | TileIndex | tile | ) | const
| inlinevirtual

Check whether a specific tile belongs to this station.

Parameters

  tile | the tile to check

Returns
  true if the tile belongs to this station

Implements BaseStation.

Definition at line 494 of file station_base.h.

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

Referenced by TriggerStationRandomisation().

## Field Documentation

IndustryVector Station::industries_near

Cached list of industries near the station that can accept cargo,.

See Also
  DeliverGoodsToIndustry()

Definition at line 475 of file station_base.h.

Referenced by AddCargoDelivery(), CheckSubsidised(), and DeliverGoodsToIndustry().

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

- src/station_base.h
- src/newgrf_station.cpp
- src/station.cpp
- src/station_cmd.cpp