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

Station data structure. More...

#include <station_base.h>

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

Public Member Functions

RoadStopGetPrimaryRoadStop (RoadStopType type) const
 
RoadStopGetPrimaryRoadStop (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. More...
 
void AddFacility (StationFacility new_facility_bit, TileIndex facil_xy)
 Called when new facility is built on the station. More...
 
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. More...
 
uint GetPlatformLength (TileIndex tile) const
 Obtain the length of a platform. More...
 
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. More...
 
Rect GetCatchmentRect () const
 Determines catchment rectangle of this station. More...
 
bool TileBelongsToRailStation (TileIndex tile) const
 Check whether a specific tile belongs to this station. More...
 
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. More...
 
- Public Member Functions inherited from SpecializedStation< Station, false >
 SpecializedStation (TileIndex tile)
 Set station type correctly. More...
 
- Public Member Functions inherited from BaseStation
 BaseStation (TileIndex tile)
 Initialize the base station. More...
 
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. 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...
 
- 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 size, 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 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. More...
 
static bool IsValidID (size_t index)
 Tests whether given index is a valid index for station of this type. More...
 
static StationGet (size_t index)
 Gets station with given index. More...
 
static StationGetIfValid (size_t index)
 Returns station if the index is a valid index for this station type. More...
 
static StationGetByTile (TileIndex tile)
 Get the station belonging to a specific tile. More...
 
static StationFrom (BaseStation *st)
 Converts a BaseStation to SpecializedStation with type checking. More...
 
static const StationFrom (const BaseStation *st)
 Converts a const BaseStation to const SpecializedStation with type checking. More...
 
- Static Public Member Functions inherited from BaseStation
static BaseStationGetByTile (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. More...
 
- 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-NULL) 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 (size_t index)
 Dummy function called after destructor of each member. More...
 

Data Fields

RoadStopbus_stops
 All the road stops.
 
TileArea bus_station
 Tile area the bus 'station' part covers.
 
RoadStoptruck_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,. More...
 
- Data Fields inherited from BaseStation
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.
 
Towntown
 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.
 
StationSpecListspeclist
 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.
 
uint32 cached_cargo_triggers
 NOSAVE: Combined cargo trigger bitmask.
 
TileArea train_station
 Tile area the train 'station' part covers.
 
StationRect rect
 NOSAVE: Station spread out rectangle maintained by StationRect::xxx() functions.
 
- 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.
 

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::~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 FOR_ALL_AIRCRAFT, Aircraft::IsNormalAircraft(), NUM_CARGO, and Aircraft::targetairport.

Member Function Documentation

◆ AddFacility()

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

◆ GetCatchmentRadius()

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

◆ GetCatchmentRect()

Rect Station::GetCatchmentRect ( ) const

Determines catchment rectangle of this station.

Returns
clamped catchment rectangle

Definition at line 294 of file station.cpp.

Referenced by TriggerWatchedCargoCallbacks().

◆ GetPlatformLength() [1/2]

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

Implements BaseStation.

Definition at line 252 of file station.cpp.

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

◆ GetPlatformLength() [2/2]

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

Implements BaseStation.

Definition at line 230 of file station.cpp.

◆ GetTileArea()

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

Get the tile area for a given station type.

Parameters
tatile area to fill.
typethe type of the area

Implements BaseStation.

Definition at line 380 of file station_cmd.cpp.

◆ TileBelongsToRailStation()

bool Station::TileBelongsToRailStation ( TileIndex  tile) const
inlinevirtual

Check whether a specific tile belongs to this station.

Parameters
tilethe 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(), IsAirportTile(), and IsRailStationTile().

Field Documentation

◆ industries_near

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(), and DeliverGoodsToIndustry().


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