# Waypoint Struct Reference

Inheritance diagram for Waypoint:

## Public Member Functions
| Waypoint (TileIndex tile=INVALID_TILE)
void | UpdateVirtCoord ()
| Update the virtual coords needed to draw the waypoint sign.
FORCEINLINE bool | TileBelongsToRailStation (TileIndex tile) const
| Check whether a specific tile belongs to this station.
uint32 | GetNewGRFVariable (const struct ResolverObject *object, byte variable, byte parameter, bool *available) const
| Helper function to get a NewGRF variable that isn't implemented by the base class.
void | GetTileArea (TileArea *ta, StationType type) const
| Get the tile area for a given station type.
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.
FORCEINLINE bool | IsSingleTile () const
| Is this a single tile waypoint?
## Data Fields
uint16 | town_cn
| The Nth waypoint for this town (consecutive number).

## Detailed Description

Definition at line 17 of file waypoint_base.h.

## Member Function Documentation

uint32 Waypoint::GetNewGRFVariable | ( | const struct ResolverObject * | object,
|  | byte | variable,
|  | byte | parameter,
|  | bool * | available |
| ) |  |  | const`[virtual]`

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.

uint Waypoint::GetPlatformLength | ( | TileIndex | tile | ) | const`[inline, virtual]`

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

uint Waypoint::GetPlatformLength | ( | TileIndex | tile,
|  | DiagDirection | dir |
| ) |  |  | const`[inline, virtual]`

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

void Waypoint::GetTileArea | ( | TileArea * | ta,
|  | StationType | type |
| ) |  |  | const`[virtual]`

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 36 of file waypoint.cpp.

References TileArea::h, TileArea::tile, BaseStation::train_station, TileArea::w, and BaseStation::xy.

FORCEINLINE bool Waypoint::IsSingleTile | ( |  | ) | const`[inline]`

Is this a single tile waypoint?

Returns:
  true if it is.

Definition at line 48 of file waypoint_base.h.

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

FORCEINLINE bool Waypoint::TileBelongsToRailStation | ( | TileIndex | tile | ) | const`[inline, virtual]`

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

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

Referenced by AIOrder::GetOrderDestination().

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

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