# CYapfReserveTrack< Types > Class Template Reference

Inheritance diagram for CYapfReserveTrack< Types >:

## Public Types

typedef Types::Tpf | Tpf
| the pathfinder class (derived from THIS class)
typedef Types::TrackFollower | TrackFollower
typedef Types::NodeList::Titem | Node
| this will be our node type

## Public Member Functions

void | SetReservationTarget (Node *node, TileIndex tile, Trackdir td)
| Set the target to where the reservation should be extended.
void | FindSafePositionOnNode (Node *node)
| Check the node for a possible reservation target.
bool | TryReservePath (PBSTileInfo *target)
| Try to reserve the path till the reservation target.

## Protected Member Functions

FORCEINLINE Tpf & | Yapf ()
| to access inherited pathfinder

## Private Member Functions

bool | FindSafePositionProc (TileIndex tile, Trackdir td)
bool | ReserveRailStationPlatform (TileIndex &tile, DiagDirection dir)
| Reserve a railway platform.
bool | ReserveSingleTrack (TileIndex tile, Trackdir td)
| Try to reserve a single track/platform.
bool | UnreserveSingleTrack (TileIndex tile, Trackdir td)
| Unreserve a single track/platform.

## Private Attributes

TileIndex | m_res_dest
| The reservation target tile.
Trackdir | m_res_dest_td
| The reservation target trackdir.
Node * | m_res_node
| The reservation target node.
TileIndex | m_res_fail_tile
| The tile where the reservation failed.
Trackdir | m_res_fail_td
| The trackdir where the reservation failed.

## Detailed Description

### template<class Types>
class CYapfReserveTrack< Types >

Definition at line 41 of file yapf_rail.cpp.

## Member Function Documentation

template<class Types >

void CYapfReserveTrack< Types >::FindSafePositionOnNode | ( | Node * | node | ) | `[inline]`

Check the node for a possible reservation target.

Definition at line 135 of file yapf_rail.cpp.

References CYapfReserveTrack< Types >::m_res_node, and CYapfReserveTrack< Types >::Yapf().

template<class Types >

bool CYapfReserveTrack< Types >::ReserveRailStationPlatform | ( | TileIndex & | tile,
|  | DiagDirection | dir |
| ) |  |  | `[inline, private]`

Reserve a railway platform.

Tile contains the failed tile on abort.

Definition at line 73 of file yapf_rail.cpp.

References HasStationReservation(), IsCompatibleTrainStationTile(), MarkTileDirtyByTile(), SetRailStationReservation(), TILE_ADD, and TileOffsByDiagDir().

Referenced by CYapfReserveTrack< Types >::ReserveSingleTrack().

template<class Types >

bool CYapfReserveTrack< Types >::ReserveSingleTrack | ( | TileIndex | tile,
|  | Trackdir | td |
| ) |  |  | `[inline, private]`

Try to reserve a single track/platform.

Definition at line 89 of file yapf_rail.cpp.

References IsRailStationTile(), CYapfReserveTrack< Types >::m_res_dest, CYapfReserveTrack< Types >::m_res_dest_td, CYapfReserveTrack< Types >::m_res_fail_td, CYapfReserveTrack< Types >::m_res_fail_tile, CYapfReserveTrack< Types >::ReserveRailStationPlatform(), ReverseTrackdir(), TrackdirToExitdir(), TrackdirToTrack(), and TryReserveRailTrack().

template<class Types >

void CYapfReserveTrack< Types >::SetReservationTarget | ( | Node * | node,
|  | TileIndex | tile,
|  | Trackdir | td |
| ) |  |  | `[inline]`

Set the target to where the reservation should be extended.

Definition at line 127 of file yapf_rail.cpp.

References CYapfReserveTrack< Types >::m_res_dest, CYapfReserveTrack< Types >::m_res_dest_td, and CYapfReserveTrack< Types >::m_res_node.

template<class Types >

bool CYapfReserveTrack< Types >::TryReservePath | ( | PBSTileInfo * | target | ) | `[inline]`

Try to reserve the path till the reservation target.

Definition at line 148 of file yapf_rail.cpp.

References INVALID_TILE, INVALID_TRACK, IsWaitingPositionFree(), CYapfReserveTrack< Types >::m_res_dest, CYapfReserveTrack< Types >::m_res_dest_td, CYapfReserveTrack< Types >::m_res_fail_tile, CYapfReserveTrack< Types >::m_res_node, PBSTileInfo::okay, PBSTileInfo::tile, PBSTileInfo::trackdir, CYapfReserveTrack< Types >::Yapf(), and YapfNotifyTrackLayoutChange().

template<class Types >

bool CYapfReserveTrack< Types >::UnreserveSingleTrack | ( | TileIndex | tile,
|  | Trackdir | td |
| ) |  |  | `[inline, private]`

Unreserve a single track/platform.

Stops when the previous failer is reached.

Definition at line 110 of file yapf_rail.cpp.

References IsCompatibleTrainStationTile(), IsRailStationTile(), CYapfReserveTrack< Types >::m_res_dest, CYapfReserveTrack< Types >::m_res_dest_td, CYapfReserveTrack< Types >::m_res_fail_td, CYapfReserveTrack< Types >::m_res_fail_tile, ReverseTrackdir(), SetRailStationReservation(), TILE_ADD, TileOffsByDiagDir(), TrackdirToExitdir(), TrackdirToTrack(), and UnreserveRailTrack().

The documentation for this class was generated from the following file:

- src/pathfinder/yapf/yapf_rail.cpp