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 and invalidating windows. | |
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. | |
FORCEINLINE bool | TileBelongsToRailStation (TileIndex tile) const |
Check whether a specific tile belongs to this station. | |
FORCEINLINE 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 | |
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 166 of file station_base.h.
Station::~Station | ( | ) |
Clean up a station by clearing vehicle orders and invalidating windows.
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 71 of file station.cpp.
References GoodsEntry::cargo, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_station_pool >::CleaningPool(), DeleteStationNews(), DeleteWindowById(), FOR_ALL_AIRCRAFT, goods, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_station_pool >::index, CargoPacket::InvalidateAllFrom(), InvalidateWindowData(), Aircraft::IsNormalAircraft(), NUM_CARGO, RemoveOrderFromAllVehicles(), Aircraft::targetairport, and CargoList< Tinst >::Truncate().
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 147 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 226 of file station.cpp.
References _settings_game, airport, bus_stops, CA_BUS, CA_DOCK, CA_NONE, CA_TRAIN, CA_TRUCK, CA_UNMODIFIED, 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 249 of file station.cpp.
References GetCatchmentRadius(), MapMaxX(), MapMaxY(), and BaseStation::rect.
Referenced by CheckSubsidised(), and RecomputeIndustriesNear().
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 185 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 207 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 380 of file station_cmd.cpp.
References airport, bus_station, dock_tile, TileArea::h, TileArea::tile, BaseStation::train_station, truck_station, and TileArea::w.
FORCEINLINE 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 219 of file station_base.h.
References GetStationIndex(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_station_pool >::index, and IsRailStationTile().
Referenced by FloodVehicles(), AIOrder::GetOrderDestination(), GetPlatformLength(), and MarkTilesDirty().
Cached list of industries near the station that can accept cargo,.
Definition at line 195 of file station_base.h.
Referenced by CheckSubsidised(), DeliverGoodsToIndustry(), and RecomputeIndustriesNear().