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

Static Public Member Functions

static void RecomputeIndustriesNearForAll ()
 Recomputes Station::industries_near for all stations.

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

Detailed Description

Station data structure.

Definition at line 439 of file station_base.h.


Constructor & Destructor Documentation


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 188 of file station.cpp.

References _current_company, _date, BaseStation::build_date, FACIL_NONE, BaseStation::facilities, BaseStation::random_bits, and BaseStation::xy.

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

uint Station::GetCatchmentRadius (  )  const
Rect Station::GetCatchmentRect (  )  const

Determines catchment rectangle of this station.

Returns:
clamped catchment rectangle

Definition at line 295 of file station.cpp.

References GetCatchmentRadius(), MapMaxX(), MapMaxY(), and BaseStation::rect.

Referenced by CheckSubsidised(), RecomputeIndustriesNear(), and TriggerWatchedCargoCallbacks().

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 231 of file station.cpp.

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

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 253 of file station.cpp.

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

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

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 363 of file station_cmd.cpp.

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

bool Station::TileBelongsToRailStation ( TileIndex  tile  )  const [inline, 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

Implements BaseStation.

Definition at line 487 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 GetPlatformLength(), MarkTilesDirty(), and TriggerStationRandomisation().


Field Documentation

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

See also:
DeliverGoodsToIndustry()

Definition at line 468 of file station_base.h.

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


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