OpenTTD Source: CYapfFollowShipT< Types > Class Template Reference

OpenTTD Source 12.2

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
CYapfFollowShipT< Types > Class Template Reference

Node Follower module of YAPF for ships. More...

## 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
typedef Node::Key | Key
| key to hash tables

## Public Member Functions
void | PfFollowNode (Node &old_node)
| Called by YAPF to move from the given node to the next tile. More...
char | TransportTypeChar () const
| return debug report character to identify the transportation type

## Static Public Member Functions
static Trackdir | ChooseShipTrack (const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks, bool &path_found, ShipPathCache &path_cache)
static bool | CheckShipReverse (const Ship *v, TileIndex tile, Trackdir td1, Trackdir td2, Trackdir *trackdir)
| Check whether a ship should reverse to reach its destination. More...

## Protected Member Functions
Tpf & | Yapf ()
| to access inherited path finder

## Detailed Description

### template<class Types>
class CYapfFollowShipT< Types >

Node Follower module of YAPF for ships.

Definition at line 104 of file yapf_ship.cpp.

## Member Function Documentation

## ◆ CheckShipReverse()

template<class Types >

static bool CYapfFollowShipT< Types >::CheckShipReverse | ( | const Ship * | v,
|  | TileIndex | tile,
|  | Trackdir | td1,
|  | Trackdir | td2,
|  | Trackdir * | trackdir
| ) |  |
| inlinestatic

Check whether a ship should reverse to reach its destination.

Called when leaving depot.

Parameters

  v | Ship
  tile | Current position
  td1 | Forward direction
  td2 | Reverse direction
  trackdir | [out] the best of all possible reversed trackdirs

Returns
  true if the reverse direction is better

Definition at line 210 of file yapf_ship.cpp.

References DiagdirReachesTrackdirs(), Vehicle::direction, GetTileTrackStatus(), ReverseDiagDir(), Ship::state, TrackdirToTrackdirBits(), TrackStatusToTrackdirBits(), TRANSPORT_WATER, and VehicleExitDir().

## ◆ PfFollowNode()

template<class Types >

void CYapfFollowShipT< Types >::PfFollowNode | ( | Node & | old_node | ) |
| inline

Called by YAPF to move from the given node to the next tile.

For each reachable trackdir on the new tile creates new node, initializes it and adds it to the open list by calling Yapf().AddNewNode(n)

Definition at line 125 of file yapf_ship.cpp.

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

- src/pathfinder/yapf/yapf_ship.cpp