OpenTTD Source: Waypoint Struct Reference

OpenTTD Source 15.0-beta1

Public Member Functions | Data Fields
Waypoint Struct Referencefinal

Representation of a waypoint. More...

`#include <waypoint_base.h>`

Inheritance diagram for Waypoint:

## Public Member Functions
| Waypoint (TileIndex tile=INVALID_TILE)
| Create a waypoint at the given tile.
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.
bool | TileBelongsToRailStation (TileIndex tile) const override
| Check whether a specific tile belongs to this station.
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.
void | GetTileArea (TileArea *ta, StationType type) const override
| Get the tile area for a given station type.
uint | GetPlatformLength (TileIndex, DiagDirection) const override
| Determines the REMAINING length of a platform, starting at (and including) the given tile.
uint | GetPlatformLength (TileIndex) const override
| Obtain the length of a platform.
bool | IsSingleTile () const
| Is this a single tile waypoint?
bool | IsOfType (const Waypoint *wp) const
| Is the "type" of waypoint the same as the given waypoint, i.e.
Public Member Functions inherited from SpecializedStation< Waypoint, true >
| SpecializedStation (TileIndex tile)
| Set station type correctly.
Public Member Functions inherited from BaseStation
| BaseStation (TileIndex tile)
| Initialize the base station.
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.
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.

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

## 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.
static bool | IsValidID (size_t index)
| Tests whether given index is a valid index for station of this type.
static Waypoint * | Get (size_t index)
| Gets station with given index.
static Waypoint * | GetIfValid (size_t index)
| Returns station if the index is a valid index for this station type.
static Waypoint * | GetByTile (TileIndex tile)
| Get the station belonging to a specific tile.
static Waypoint * | From (BaseStation *st)
| Converts a BaseStation to SpecializedStation with type checking.
static const Waypoint * | From (const BaseStation *st)
| Converts a const BaseStation to const SpecializedStation with type checking.
static Pool::IterateWrapper< Waypoint > | Iterate (size_t from=0)
| Returns an iterable ensemble of all valid stations of type T.
Static Public Member Functions inherited from BaseStation
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.
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

  tile | The location of the waypoint.

Definition at line 32 of file waypoint_base.h.

## ◆ ~Waypoint()

Waypoint::~Waypoint | ( |  | ) |

Definition at line 56 of file waypoint.cpp.

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

  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

Returns
  the value stored in the corresponding variable

Implements BaseStation.

Definition at line 473 of file newgrf_station.cpp.

References Debug, 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

  tile | A 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

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

  ta | tile area to fill.
  type | the type of the area

Implements BaseStation.

Definition at line 35 of file waypoint.cpp.

References OrthogonalTileArea::h, road_waypoint_area, OrthogonalTileArea::tile, BaseStation::train_station, OrthogonalTileArea::w, and BaseStation::xy.

Referenced by WaypointWindow::GetCenterTile().

## ◆ 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

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

Referenced by CYapfCostRailT< Types >::PfCalcCost().

## ◆ MoveSign()

void Waypoint::MoveSign | ( | TileIndex | new_xy | ) |
| overridevirtual

Move the waypoint main coordinate somewhere else.

Parameters

  new_xy | new 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

  tile | the 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().

## ◆ UpdateVirtCoord()

void Waypoint::UpdateVirtCoord | ( |  | ) |
| overridevirtual

Update the virtual coords needed to draw the waypoint sign.

Implements BaseStation.

Definition at line 42 of file waypoint_cmd.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >::index, Kdtree< T, TxyFunc, CoordT, DistT >::Insert(), InvalidateWindowData(), TrackedViewportSign::kdtree_valid, RemapCoords2(), Kdtree< T, TxyFunc, CoordT, DistT >::Remove(), SetDParam(), BaseStation::sign, TILE_SIZE, TileX(), TileY(), TrackedViewportSign::UpdatePosition(), WC_WAYPOINT_VIEW, and BaseStation::xy.

Referenced by CmdBuildBuoy(), CmdBuildRailWaypoint(), CmdBuildRoadWaypoint(), CmdRenameWaypoint(), WaypointWindow::OnResize(), RemoveBuoy(), and RemoveRoadWaypointStop().

## Field Documentation

## ◆ road_waypoint_area

TileArea Waypoint::road_waypoint_area

Tile area the road waypoint part covers.

Definition at line 26 of file waypoint_base.h.

Referenced by CmdBuildRoadWaypoint(), GetTileArea(), and RemoveRoadWaypointStop().

## ◆ town_cn

uint16_t Waypoint::town_cn

The N-1th waypoint for this town (consecutive number)

Definition at line 24 of file waypoint_base.h.

Referenced by FormatString(), MoveBuoysToWaypoints(), and MoveWaypointsToBaseStations().

## ◆ waypoint_flags

uint16_t Waypoint::waypoint_flags {}

Waypoint flags, see WaypointFlags.

Definition at line 25 of file waypoint_base.h.

Referenced by CmdBuildRoadWaypoint(), FindJoiningWaypoint(), and WaypointWindow::WaypointWindow().

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

- src/waypoint_base.h
- src/newgrf_station.cpp
- src/waypoint.cpp
- src/waypoint_cmd.cpp