Station data structure. More...
#include <station_base.h>
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. | |
void | RunAverages () |
Static Public Member Functions | |
static void | RecomputeIndustriesNearForAll () |
Recomputes Station::industries_near for all stations. | |
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,. |
Station data structure.
Definition at line 389 of file station_base.h.
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 74 of file station.cpp.
References airport, GoodsEntry::cargo, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >::CleaningPool(), FlowStatMap::DeleteFlows(), DeleteStationNews(), DeleteWindowById(), GoodsEntry::flows, FOR_ALL_AIRCRAFT, FOR_ALL_VEHICLES, SpecializedStation< Station, false >::GetIfValid(), goods, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >::index, LinkGraphSchedule::Instance(), CargoPacket::InvalidateAllFrom(), InvalidateWindowClassesData(), InvalidateWindowData(), Aircraft::IsNormalAircraft(), Vehicle::last_loading_station, Vehicle::last_station_visited, CargoList< Tinst, Tcont >::OnCleanPool(), OWNER_NONE, Airport::psa, LinkGraph::RemoveNode(), RemoveOrderFromAllVehicles(), StationCargoList::Reroute(), LinkGraph::Size(), Aircraft::targetairport, StationCargoList::Truncate(), LinkGraphSchedule::Unqueue(), WC_STATION_LIST, and WC_STATION_VIEW.
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 183 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 |
Determines the catchment radius of the station.
Definition at line 267 of file station.cpp.
References _settings_game, airport, bus_stops, AirportSpec::catchment, dock_tile, Airport::GetSpec(), INVALID_TILE, StationSettings::modified_catchment, GameSettings::station, TileArea::tile, BaseStation::train_station, and truck_stops.
Referenced by FindStationsAroundTiles(), GetCatchmentRect(), and UpdateStationAcceptance().
Rect Station::GetCatchmentRect | ( | ) | const |
Determines catchment rectangle of this station.
Definition at line 290 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.
tile | A tile that contains the platform in question |
Implements BaseStation.
Definition at line 226 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.
tile | the tile from which to start searching. Must be a rail station tile | |
dir | The direction in which to search. |
Implements BaseStation.
Definition at line 248 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.
ta | tile area to fill. | |
type | the type of the area |
Implements BaseStation.
Definition at line 362 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.
tile | the tile to check |
Implements BaseStation.
Definition at line 437 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().
Cached list of industries near the station that can accept cargo,.
Definition at line 418 of file station_base.h.
Referenced by AddCargoDelivery(), CheckSubsidised(), DeliverGoodsToIndustry(), and RecomputeIndustriesNear().