OpenTTD Source 20241224-master-gf74b0cf984
|
Base class for all station-ish types. More...
#include <base_station_base.h>
Public Member Functions | |
BaseStation (TileIndex tile) | |
Initialize the base station. | |
virtual bool | TileBelongsToRailStation (TileIndex tile) const =0 |
Check whether a specific tile belongs to this station. | |
virtual uint32_t | GetNewGRFVariable (const struct ResolverObject &object, uint8_t variable, uint8_t parameter, bool &available) const =0 |
Helper function to get a NewGRF variable that isn't implemented by the base class. | |
virtual void | UpdateVirtCoord ()=0 |
Update the coordinated of the sign (as shown in the viewport). | |
const std::string & | GetCachedName () const |
virtual void | MoveSign (TileIndex new_xy) |
virtual void | GetTileArea (TileArea *ta, StationType type) const =0 |
Get the tile area for a given station type. | |
virtual uint | GetPlatformLength (TileIndex tile) const =0 |
Obtain the length of a platform. | |
virtual uint | GetPlatformLength (TileIndex tile, DiagDirection dir) const =0 |
Determines the REMAINING length of a platform, starting at (and including) the given tile. | |
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. | |
uint8_t | GetRoadStopRandomBits (TileIndex tile) const |
uint8_t | GetRoadStopAnimationFrame (TileIndex tile) const |
void | SetRoadStopRandomBits (TileIndex tile, uint8_t random_bits) |
bool | SetRoadStopAnimationFrame (TileIndex tile, uint8_t frame) |
void | RemoveRoadStopTileData (TileIndex tile) |
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, 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 BaseStation * | GetByTile (TileIndex tile) |
Get the base station belonging to a specific tile. | |
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 bool | IsValidID (size_t index) |
Tests whether given index can be used to get valid (non-nullptr) Titem. | |
static Titem * | Get (size_t index) |
Returns Titem with given index. | |
static Titem * | GetIfValid (size_t index) |
Returns Titem with given index. | |
static size_t | GetPoolSize () |
Returns first unused index. | |
static size_t | GetNumItems () |
Returns number of valid items in the pool. | |
static void | PostDestructor (size_t index) |
Dummy function called after destructor of each member. | |
static Pool::IterateWrapper< Titem > | Iterate (size_t from=0) |
Returns an iterable ensemble of all valid Titem. | |
Data Fields | |
TileIndex | xy |
Base tile of the station. | |
TrackedViewportSign | sign |
NOSAVE: Dimensions of sign. | |
uint8_t | delete_ctr |
Delete counter. If greater than 0 then it is decremented until it reaches 0; the waypoint is then is deleted. | |
std::string | name |
Custom name. | |
StringID | string_id |
Default name (town area) of station. | |
std::string | cached_name |
NOSAVE: Cache of the resolved name of the station, if not using a custom name. | |
Town * | town |
The town this station is associated with. | |
Owner | owner |
The owner of this station. | |
StationFacility | facilities |
The facilities that this station has. | |
std::vector< SpecMapping< StationSpec > > | speclist |
List of rail station specs of this station. | |
std::vector< SpecMapping< RoadStopSpec > > | roadstop_speclist |
List of road stop specs of this station. | |
TimerGameCalendar::Date | build_date |
Date of construction. | |
uint16_t | random_bits |
Random bits assigned to this station. | |
uint8_t | waiting_triggers |
Waiting triggers (NewGRF) for this station. | |
uint8_t | cached_anim_triggers |
NOSAVE: Combined animation trigger bitmask, used to determine if trigger processing should happen. | |
uint8_t | cached_roadstop_anim_triggers |
NOSAVE: Combined animation trigger bitmask for road stops, used to determine if trigger processing should happen. | |
CargoTypes | cached_cargo_triggers |
NOSAVE: Combined cargo trigger bitmask. | |
CargoTypes | cached_roadstop_cargo_triggers |
NOSAVE: Combined cargo trigger bitmask for road stops. | |
TileArea | train_station |
Tile area the train 'station' part covers. | |
StationRect | rect |
NOSAVE: Station spread out rectangle maintained by StationRect::xxx() functions. | |
std::vector< RoadStopTileData > | custom_roadstop_tile_data |
List of custom road stop tile data. | |
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. | |
Private Member Functions | |
bool | SetRoadStopTileData (TileIndex tile, uint8_t data, bool animation) |
void | FillCachedName () const |
Additional Inherited Members | |
Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool > | |
typedef struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > | Pool |
Type of the pool this item is going to be part of. | |
Base class for all station-ish types.
Definition at line 59 of file base_station_base.h.
|
inline |
Initialize the base station.
tile | The location of the station sign |
Definition at line 93 of file base_station_base.h.
|
virtual |
Definition at line 51 of file station.cpp.
|
private |
Definition at line 483 of file station_cmd.cpp.
|
inlinestatic |
Get the base station belonging to a specific tile.
tile | The tile to get the base station from. |
Definition at line 166 of file base_station_base.h.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >::Get(), and GetStationIndex().
Referenced by AfterLoadGame(), AircraftEventHandler_InHangar(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::CanEnterNewTile(), CheckForDockingTile(), CmdBuildAircraft(), DisasterTick_Zeppeliner(), FindStationsNearby(), FloodVehicleProc(), FloodVehicles(), RoadStop::GetByTile(), GetOrderCmdFromTile(), NIHStation::GetParent(), NIHRoadStop::GetParent(), RoadStopScopeResolver::GetVariable(), StationScopeResolver::GetVariable(), GetVehiclePosOnBuild(), IsHangar(), CYapfCostRailT< Types >::PfCalcCost(), RemoveAirport(), RemoveBuoy(), RemoveDock(), RemoveRailStation(), RemoveRailWaypoint(), RemoveRoadStop(), RemoveRoadWaypointStop(), NIHStation::Resolve(), NIHAirportTile::Resolve(), TriggerRoadStopRandomisation(), and TriggerStationRandomisation().
|
inline |
Definition at line 123 of file base_station_base.h.
|
pure virtual |
Helper function to get a NewGRF variable that isn't implemented by the base class.
object | the resolver object related to this query |
variable | that is queried |
parameter | parameter for that variable |
available | will return false if ever the variable asked for does not exist |
Implemented in Waypoint.
Referenced by RoadStopScopeResolver::GetVariable(), and StationScopeResolver::GetVariable().
|
pure virtual |
Obtain the length of a platform.
tile | A tile that contains the platform in question |
Implemented in Station, and Waypoint.
Referenced by CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::CanEnterNewTile(), and CYapfCostRailT< Types >::PfCalcCost().
|
pure virtual |
|
inline |
Definition at line 190 of file base_station_base.h.
|
inline |
Definition at line 182 of file base_station_base.h.
|
pure virtual |
Get the tile area for a given station type.
ta | tile area to fill. |
type | the type of the area |
Implemented in Station, and Waypoint.
Referenced by CalcClosestStationTile().
|
inline |
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.
Definition at line 177 of file base_station_base.h.
References FACIL_WAYPOINT.
Referenced by CmdBuildRailWaypoint(), CmdBuildRoadWaypoint(), DeleteStationIfEmpty(), WaypointWindow::GetCenterTile(), GetClosestDeletedStation(), WaypointWindow::OnInvalidateData(), WaypointWindow::OnPaint(), StationHandleBigTick(), and UpdateStationAcceptance().
|
inlinevirtual |
Reimplemented in Station, and Waypoint.
Definition at line 130 of file base_station_base.h.
|
static |
Invalidating of the JoinStation window has to be done after removing item from the pool.
Definition at line 166 of file station.cpp.
References InvalidateWindowData(), and WC_SELECT_STATION.
void BaseStation::RemoveRoadStopTileData | ( | TileIndex | tile | ) |
Definition at line 189 of file station.cpp.
|
inline |
Definition at line 203 of file base_station_base.h.
|
inline |
Definition at line 202 of file base_station_base.h.
|
private |
Definition at line 171 of file station.cpp.
|
pure virtual |
Check whether a specific tile belongs to this station.
tile | the tile to check |
Implemented in Station, and Waypoint.
Referenced by DeallocateSpecFromStation(), StationScopeResolver::GetVariable(), and StationUsesDefaultType().
|
pure virtual |
Update the coordinated of the sign (as shown in the viewport).
Implemented in Station, and Waypoint.
References cached_name, and name.
Referenced by RemoveFromRailBaseStation().
TimerGameCalendar::Date BaseStation::build_date |
Date of construction.
Definition at line 75 of file base_station_base.h.
Referenced by Station::AddFacility(), CmdBuildBuoy(), CmdBuildRailWaypoint(), CmdBuildRoadWaypoint(), AirportScopeResolver::GetVariable(), RoadStopScopeResolver::GetVariable(), StationScopeResolver::GetVariable(), MoveBuoysToWaypoints(), and MoveWaypointsToBaseStations().
uint8_t BaseStation::cached_anim_triggers |
NOSAVE: Combined animation trigger bitmask, used to determine if trigger processing should happen.
Definition at line 79 of file base_station_base.h.
Referenced by CmdBuildRailStation(), DeallocateSpecFromStation(), and StationUpdateCachedTriggers().
CargoTypes BaseStation::cached_cargo_triggers |
NOSAVE: Combined cargo trigger bitmask.
Definition at line 81 of file base_station_base.h.
Referenced by DeallocateSpecFromStation(), StationUpdateCachedTriggers(), and TriggerStationRandomisation().
|
mutable |
NOSAVE: Cache of the resolved name of the station, if not using a custom name.
Definition at line 66 of file base_station_base.h.
Referenced by CmdRenameStation(), and UpdateVirtCoord().
uint8_t BaseStation::cached_roadstop_anim_triggers |
NOSAVE: Combined animation trigger bitmask for road stops, used to determine if trigger processing should happen.
Definition at line 80 of file base_station_base.h.
Referenced by CmdBuildRoadStop(), CmdBuildRoadWaypoint(), and RoadStopUpdateCachedTriggers().
CargoTypes BaseStation::cached_roadstop_cargo_triggers |
NOSAVE: Combined cargo trigger bitmask for road stops.
Definition at line 82 of file base_station_base.h.
Referenced by RoadStopUpdateCachedTriggers(), and TriggerRoadStopRandomisation().
std::vector<RoadStopTileData> BaseStation::custom_roadstop_tile_data |
List of custom road stop tile data.
Definition at line 87 of file base_station_base.h.
Referenced by SlRoadStopTileData::GetVector(), and TriggerRoadStopRandomisation().
uint8_t BaseStation::delete_ctr |
Delete counter. If greater than 0 then it is decremented until it reaches 0; the waypoint is then is deleted.
Definition at line 62 of file base_station_base.h.
Referenced by CmdBuildRailWaypoint(), CmdBuildRoadWaypoint(), DeleteStationIfEmpty(), MoveBuoysToWaypoints(), MoveWaypointsToBaseStations(), RemoveBuoy(), and StationHandleBigTick().
StationFacility BaseStation::facilities |
The facilities that this station has.
Definition at line 70 of file base_station_base.h.
Referenced by Station::AddFacility(), AirportMaintenanceCost(), CanVehicleUseStation(), CmdBuildAirport(), CmdBuildBuoy(), CmdBuildRailWaypoint(), CmdBuildRoadWaypoint(), CmdInsertOrder(), CmdOpenCloseAirport(), CompanyStationsWindow::DrawWidget(), SelectStationWindow< T >::DrawWidget(), GetOrderCmdFromTile(), Train::GetOrderStationLocation(), AirportScopeResolver::GetVariable(), RoadStopScopeResolver::GetVariable(), StationScopeResolver::GetVariable(), GetVehicleCannotUseStationReason(), SpecializedStation< T, Tis_waypoint >::IsExpected(), Waypoint::IsSingleTile(), MoveBuoysToWaypoints(), MoveWaypointsToBaseStations(), StationViewWindow::OnPaint(), RemoveAirport(), RemoveBuoy(), RemoveDock(), RemoveFromRailBaseStation(), RemoveRoadStop(), RemoveRoadWaypointStop(), StationViewWindow::SetStringParameters(), StationHandleBigTick(), CompanyStationsWindow::StationTypeSorter(), UpdateStationAcceptance(), Station::UpdateVirtCoord(), and SelectStationWindow< T >::UpdateWidgetSize().
std::string BaseStation::name |
Custom name.
Definition at line 64 of file base_station_base.h.
Referenced by CmdRenameStation(), CmdRenameWaypoint(), FormatString(), MoveBuoysToWaypoints(), MoveWaypointsToBaseStations(), and UpdateVirtCoord().
Owner BaseStation::owner |
The owner of this station.
Definition at line 69 of file base_station_base.h.
Referenced by Station::AddFacility(), LinkGraphOverlay::AddLinks(), AddNearbyStation(), AfterLoadGame(), Station::AfterStationTileSetChange(), AirportMaintenanceCost(), CmdBuildAirport(), CmdBuildBuoy(), CmdBuildDock(), CmdBuildRailStation(), CmdBuildRailWaypoint(), CmdBuildRoadStop(), CmdBuildRoadWaypoint(), CmdInsertOrder(), CmdOpenCloseAirport(), CmdRenameStation(), CmdRenameWaypoint(), DeleteStationIfEmpty(), DeliverGoodsToIndustry(), StationViewWindow::DrawCargoRatings(), LinkGraphOverlay::DrawStationDots(), CompanyStationsWindow::DrawWidget(), GetClosestDeletedStation(), GetOrderCmdFromTile(), RoadStopScopeResolver::GetVariable(), StationScopeResolver::GetVariable(), OrderList::InsertOrderAt(), LoadUnloadVehicle(), MayLoadUnderExclusiveRights(), MoveBuoysToWaypoints(), MoveWaypointsToBaseStations(), CompanyStationsWindow::OnClick(), StationViewWindow::OnClick(), WaypointWindow::OnClick(), StationViewWindow::OnPaint(), LinkGraphOverlay::RebuildCache(), RemoveAirport(), RemoveDock(), RemoveRoadStop(), RemoveRoadWaypointStop(), UpdateStationAcceptance(), UpdateTownRating(), WaypointWindow::WaypointWindow(), Order::~Order(), and Station::~Station().
uint16_t BaseStation::random_bits |
Random bits assigned to this station.
Definition at line 77 of file base_station_base.h.
Referenced by Station::AddFacility(), AirportScopeResolver::GetRandomBits(), AirportTileScopeResolver::GetRandomBits(), RoadStopScopeResolver::GetRandomBits(), StationScopeResolver::GetRandomBits(), TriggerRoadStopRandomisation(), and TriggerStationRandomisation().
StationRect BaseStation::rect |
NOSAVE: Station spread out rectangle maintained by StationRect::xxx() functions.
Definition at line 85 of file base_station_base.h.
Referenced by AddNearbyStation(), AfterLoadGame(), CheckSubsidised(), CmdBuildAirport(), CmdBuildBuoy(), CmdBuildDock(), CmdBuildRailStation(), CmdBuildRailWaypoint(), CmdBuildRoadStop(), CmdBuildRoadWaypoint(), Station::GetCatchmentRect(), SmallMapWindow::GetStationMiddle(), MoveBuoysToWaypoints(), MoveWaypointsToBaseStations(), LinkGraphOverlay::RebuildCache(), Station::RecomputeCatchment(), RemoveAirport(), RemoveBuoy(), RemoveDock(), RemoveRoadStop(), RemoveRoadWaypointStop(), and UpdateStationAcceptance().
std::vector<SpecMapping<RoadStopSpec> > BaseStation::roadstop_speclist |
List of road stop specs of this station.
Definition at line 73 of file base_station_base.h.
Referenced by RoadStopScopeResolver::GetVariable().
TrackedViewportSign BaseStation::sign |
NOSAVE: Dimensions of sign.
Definition at line 61 of file base_station_base.h.
Referenced by Station::UpdateVirtCoord(), Waypoint::UpdateVirtCoord(), and Station::~Station().
std::vector<SpecMapping<StationSpec> > BaseStation::speclist |
List of rail station specs of this station.
Definition at line 72 of file base_station_base.h.
Referenced by AllocateSpecToStation(), DeallocateSpecFromStation(), StationScopeResolver::GetVariable(), and Station::MarkTilesDirty().
StringID BaseStation::string_id |
Default name (town area) of station.
Definition at line 65 of file base_station_base.h.
Referenced by CmdBuildBuoy(), CmdBuildRailWaypoint(), CmdBuildRoadWaypoint(), FormatString(), StationScopeResolver::GetVariable(), Waypoint::IsOfType(), MoveBuoysToWaypoints(), MoveWaypointsToBaseStations(), and WaypointWindow::WaypointWindow().
Town* BaseStation::town |
The town this station is associated with.
Definition at line 68 of file base_station_base.h.
Referenced by AddCargoDelivery(), AfterLoadGame(), CmdBuildAirport(), CmdBuildBuoy(), CmdBuildRailWaypoint(), CmdBuildRoadWaypoint(), DeliverGoods(), StationViewWindow::DrawCargoRatings(), EncodeCargoTownMonitor(), FormatString(), GenerateStationName(), AirportResolverObject::GetTown(), StationResolverObject::GetTown(), RoadStopScopeResolver::GetVariable(), MayLoadUnderExclusiveRights(), MoveBuoysToWaypoints(), and MoveWaypointsToBaseStations().
TileArea BaseStation::train_station |
Tile area the train 'station' part covers.
Definition at line 84 of file base_station_base.h.
Referenced by AfterLoadGame(), CanExpandRailStation(), CmdBuildRailStation(), CmdBuildRailWaypoint(), CmdRemoveFromRailStation(), Station::GetCatchmentRadius(), Station::GetTileArea(), Waypoint::GetTileArea(), Waypoint::IsSingleTile(), Station::MarkTilesDirty(), MoveBuoysToWaypoints(), Train::OnNewEconomyDay(), RemoveFromRailBaseStation(), StationResolverObject::ResolveReal(), and StationUsesDefaultType().
uint8_t BaseStation::waiting_triggers |
Waiting triggers (NewGRF) for this station.
Definition at line 78 of file base_station_base.h.
Referenced by RoadStopScopeResolver::GetTriggers(), StationScopeResolver::GetTriggers(), TriggerRoadStopRandomisation(), and TriggerStationRandomisation().
TileIndex BaseStation::xy |
Base tile of the station.
Definition at line 60 of file base_station_base.h.
Referenced by Station::AddIndustryToDeliver(), LinkGraph::AddNode(), CargoPacket::AfterLoad(), AfterLoadLinkGraphs(), AircraftController(), AircraftGetEntryPoint(), CalcClosestStationTile(), CmdBuildBuoy(), CmdBuildRailWaypoint(), CmdBuildRoadWaypoint(), DeleteStaleLinks(), CompanyStationsWindow::DrawWidget(), Aircraft::FindClosestDepot(), WaypointWindow::GetCenterTile(), Order::GetLocation(), RoadVehicle::GetOrderStationLocation(), Ship::GetOrderStationLocation(), Train::GetOrderStationLocation(), GetReferenceTile(), Waypoint::GetTileArea(), LoadUnloadVehicle(), Station::MoveSign(), Waypoint::MoveSign(), CompanyStationsWindow::OnClick(), LinkRefresher::RefreshStats(), UpdateOrderDest(), Station::UpdateVirtCoord(), and Waypoint::UpdateVirtCoord().