OpenTTD Source  20240915-master-g3784a3d3d6
Waypoint Struct Referencefinal

Representation of a waypoint. More...

#include <waypoint_base.h>

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

Public Member Functions

 Waypoint (TileIndex tile=INVALID_TILE)
 Create a waypoint at the given tile. More...
 
void UpdateVirtCoord () override
 Update the virtual coords needed to draw the waypoint sign.
 
void MoveSign (TileIndex new_xy) override
 Move the waypoint main coordinate somewhere else. More...
 
bool TileBelongsToRailStation (TileIndex tile) const override
 Check whether a specific tile belongs to this station. More...
 
uint32_t GetNewGRFVariable (const struct ResolverObject &object, uint8_t variable, uint8_t parameter, bool &available) const override
 Helper function to get a NewGRF variable that isn't implemented by the base class. More...
 
void GetTileArea (TileArea *ta, StationType type) const override
 Get the tile area for a given station type. More...
 
uint GetPlatformLength (TileIndex, DiagDirection) const override
 Determines the REMAINING length of a platform, starting at (and including) the given tile. More...
 
uint GetPlatformLength (TileIndex) const override
 Obtain the length of a platform. More...
 
bool IsSingleTile () const
 Is this a single tile waypoint? More...
 
bool IsOfType (const Waypoint *wp) const
 Is the "type" of waypoint the same as the given waypoint, i.e. More...
 
- Public Member Functions inherited from SpecializedStation< Waypoint, true >
 SpecializedStation (TileIndex tile)
 Set station type correctly. More...
 
- Public Member Functions inherited from BaseStation
 BaseStation (TileIndex tile)
 Initialize the base station. More...
 
const std::string & GetCachedName () const
 
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...
 
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. More...
 
void * operator new (size_t size, size_t index)
 Allocates space for new Titem with given index. More...
 
void * operator new (size_t, void *ptr)
 Allocates space for new Titem at given memory address. More...
 
void operator delete (void *p)
 Marks Titem as free. More...
 

Data Fields

uint16_t town_cn
 The N-1th waypoint for this town (consecutive number)
 
uint16_t waypoint_flags {}
 Waypoint flags, see WaypointFlags.
 
TileArea road_waypoint_area
 Tile area the road waypoint part covers.
 
- Data Fields inherited from BaseStation
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.
 
Towntown
 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< RoadStopTileDatacustom_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.
 

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.
 
- Static Public Member Functions inherited from SpecializedStation< Waypoint, true >
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 WaypointGet (size_t index)
 Gets station with given index. More...
 
static WaypointGetIfValid (size_t index)
 Returns station if the index is a valid index for this station type. More...
 
static WaypointGetByTile (TileIndex tile)
 Get the station belonging to a specific tile. More...
 
static WaypointFrom (BaseStation *st)
 Converts a BaseStation to SpecializedStation with type checking. More...
 
static const WaypointFrom (const BaseStation *st)
 Converts a const BaseStation to const SpecializedStation with type checking. More...
 
static Pool::IterateWrapper< WaypointIterate (size_t from=0)
 Returns an iterable ensemble of all valid stations of type T. 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.
 
- 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-nullptr) 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 ([[maybe_unused]] size_t index)
 Dummy function called after destructor of each member. More...
 
static Pool::IterateWrapper< Titem > Iterate (size_t from=0)
 Returns an iterable ensemble of all valid Titem. More...
 
- Static Public Attributes inherited from SpecializedStation< Waypoint, true >
static const StationFacility EXPECTED_FACIL
 Specialized type.
 

Detailed Description

Representation of a waypoint.

Definition at line 23 of file waypoint_base.h.

Constructor & Destructor Documentation

◆ Waypoint()

Waypoint::Waypoint ( TileIndex  tile = INVALID_TILE)
inline

Create a waypoint at the given tile.

Parameters
tileThe location of the waypoint.

Definition at line 32 of file waypoint_base.h.

Member Function Documentation

◆ GetNewGRFVariable()

uint32_t Waypoint::GetNewGRFVariable ( const struct ResolverObject object,
uint8_t  variable,
uint8_t  parameter,
bool &  available 
) const
overridevirtual

Helper function to get a NewGRF variable that isn't implemented by the base class.

Parameters
objectthe resolver object related to this query
variablethat is queried
parameterparameter for that variable
availablewill return false if ever the variable asked for does not exist
Returns
the value stored in the corresponding variable

Implements BaseStation.

Definition at line 473 of file newgrf_station.cpp.

References GB(), and HVOT_WAYPOINT.

◆ GetPlatformLength() [1/2]

uint Waypoint::GetPlatformLength ( TileIndex  tile) const
inlineoverridevirtual

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 53 of file waypoint_base.h.

◆ GetPlatformLength() [2/2]

uint Waypoint::GetPlatformLength ( TileIndex  tile,
DiagDirection  dir 
) const
inlineoverridevirtual

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 48 of file waypoint_base.h.

◆ GetTileArea()

void Waypoint::GetTileArea ( TileArea ta,
StationType  type 
) const
overridevirtual

Get the tile area for a given station type.

Parameters
tatile area to fill.
typethe type of the area

Implements BaseStation.

Definition at line 35 of file waypoint.cpp.

◆ IsOfType()

bool Waypoint::IsOfType ( const Waypoint wp) const
inline

Is the "type" of waypoint the same as the given waypoint, i.e.

are both a rail waypoint or are both a buoy?

Parameters
wpThe waypoint to compare to.
Returns
true iff their types are equal.

Definition at line 73 of file waypoint_base.h.

References BaseStation::string_id.

◆ IsSingleTile()

bool Waypoint::IsSingleTile ( ) const
inline

Is this a single tile waypoint?

Returns
true if it is.

Definition at line 62 of file waypoint_base.h.

References FACIL_TRAIN, BaseStation::facilities, OrthogonalTileArea::h, BaseStation::train_station, and OrthogonalTileArea::w.

◆ MoveSign()

void Waypoint::MoveSign ( TileIndex  new_xy)
overridevirtual

Move the waypoint main coordinate somewhere else.

Parameters
new_xynew tile location of the sign

Reimplemented from BaseStation.

Definition at line 60 of file waypoint_cmd.cpp.

References BaseStation::xy.

◆ TileBelongsToRailStation()

bool Waypoint::TileBelongsToRailStation ( TileIndex  tile) const
inlineoverridevirtual

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 39 of file waypoint_base.h.

References GetStationIndex(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >::index, and IsRailWaypointTile().


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