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. |
Definition at line 41 of file yapf_rail.cpp.
void CYapfReserveTrack< Types >::FindSafePositionOnNode | ( | Node * | node | ) | [inline] |
Check the node for a possible reservation target.
Definition at line 136 of file yapf_rail.cpp.
References CYapfReserveTrack< Types >::m_res_node, and CYapfReserveTrack< Types >::Yapf().
bool CYapfReserveTrack< Types >::ReserveRailStationPlatform | ( | TileIndex & | tile, | |
DiagDirection | dir | |||
) | [inline, private] |
Reserve a railway platform.
Tile contains the failed tile on abort.
Definition at line 74 of file yapf_rail.cpp.
References HasStationReservation(), IsCompatibleTrainStationTile(), CYapfReserveTrack< Types >::m_origin_tile, MarkTileDirtyByTile(), SetRailStationReservation(), TILE_ADD, and TileOffsByDiagDir().
Referenced by CYapfReserveTrack< Types >::ReserveSingleTrack().
bool CYapfReserveTrack< Types >::ReserveSingleTrack | ( | TileIndex | tile, | |
Trackdir | td | |||
) | [inline, private] |
Try to reserve a single track/platform.
Definition at line 90 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().
void CYapfReserveTrack< Types >::SetReservationTarget | ( | Node * | node, | |
TileIndex | tile, | |||
Trackdir | td | |||
) | [inline] |
Set the target to where the reservation should be extended.
Definition at line 128 of file yapf_rail.cpp.
References CYapfReserveTrack< Types >::m_res_dest, CYapfReserveTrack< Types >::m_res_dest_td, and CYapfReserveTrack< Types >::m_res_node.
bool CYapfReserveTrack< Types >::TryReservePath | ( | PBSTileInfo * | target, | |
TileIndex | origin | |||
) | [inline] |
Try to reserve the path till the reservation target.
Definition at line 149 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().
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 111 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().