OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
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, TileIndex origin)
| Try to reserve the path till the reservation target.

## Protected Member Functions
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.
TileIndex | m_origin_tile
| Tile our reservation will originate from.

## Detailed Description

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

Definition at line 40 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 137 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(), CYapfReserveTrack< Types >::m_origin_tile, MarkTileDirtyByTile(), SetRailStationReservation(), SRT_PATH_RESERVATION, TILE_ADD, TileOffsByDiagDir(), and TriggerStationRandomisation().

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 91 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 129 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,
|  | TileIndex | origin
| ) |  |
| inline

Try to reserve the path till the reservation target.

Definition at line 150 of file yapf_rail.cpp.

References INVALID_TILE, INVALID_TRACK, IsWaitingPositionFree(), CYapfReserveTrack< Types >::m_origin_tile, 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 112 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