OpenTTD: CYapfCostRailT< Types > Class Template Reference

OpenTTD

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

- Data Structures
- Class Hierarchy
- Data Fields

Data Structures | Public Types | Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes | Static Protected Attributes
CYapfCostRailT< Types > Class Template Reference
Inheritance diagram for CYapfCostRailT< Types >:

## Data Structures
struct | TILE

## 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
typedef Node::CachedData | CachedData

## Public Member Functions
int | SlopeCost (TileIndex tile, Trackdir td)
int | CurveCost (Trackdir td1, Trackdir td2)
int | SwitchCost (TileIndex tile1, TileIndex tile2, DiagDirection exitdir)
int | OneTileCost (TileIndex &tile, Trackdir trackdir)
| Return one tile cost (base cost + level crossing penalty).
bool | IsAnyStationTileReserved (TileIndex tile, Trackdir trackdir, int skipped)
| Check for a reserved station platform.
int | ReservationCost (Node &n, TileIndex tile, Trackdir trackdir, int skipped)
| The cost for reserved tiles, including skipped ones.
int | SignalCost (Node &n, TileIndex tile, Trackdir trackdir)
int | PlatformLengthPenalty (int platform_length)
void | SetMaxCost (int max_cost)
bool | PfCalcCost (Node &n, const TrackFollower *tf)
| Called by YAPF to calculate the cost from the origin to the given node.
bool | CanUseGlobalCache (Node &n) const
void | ConnectNodeToCachedData (Node &n, CachedData &ci)
void | DisableCache (bool disable)

## Data Fields
bool | m_stopped_on_first_two_way_signal

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

## Protected Attributes
int | m_max_cost
CBlobT< int > | m_sig_look_ahead_costs
bool | m_disable_cache

## Static Protected Attributes
static const int | s_max_segment_cost = 10000

## Additional Inherited Members
Static Public Member Functions inherited from CYapfCostBase
static bool | stSlopeCost (TileIndex tile, Trackdir td)
| Does the given track direction on the given tile yield an uphill penalty?

## Detailed Description

### template<class Types>
class CYapfCostRailT< Types >

Definition at line 18 of file yapf_costrail.hpp.

## Member Function Documentation

template<class Types >

bool CYapfCostRailT< Types >::IsAnyStationTileReserved | ( | TileIndex | tile,
|  | Trackdir | trackdir,
|  | int | skipped
| ) |  |
| inline

Check for a reserved station platform.

Definition at line 153 of file yapf_costrail.hpp.

References HasStationReservation(), ReverseTrackdir(), TileOffsByDiagDir(), and TrackdirToExitdir().

Referenced by CYapfCostRailT< Types >::ReservationCost().

template<class Types >

int CYapfCostRailT< Types >::OneTileCost | ( | TileIndex & | tile,
|  | Trackdir | trackdir
| ) |  |
| inline

Return one tile cost (base cost + level crossing penalty).

Definition at line 128 of file yapf_costrail.hpp.

References GetTileType(), IsDiagonalTrackdir(), IsLevelCrossing(), MP_ROAD, CYapfCostRailT< Types >::Yapf(), YAPF_TILE_CORNER_LENGTH, and YAPF_TILE_LENGTH.

template<class Types >

bool CYapfCostRailT< Types >::PfCalcCost | ( | Node & | n,
|  | const TrackFollower * | tf
| ) |  |
| inline

Called by YAPF to calculate the cost from the origin to the given node.

Calculates only the cost of given node, adds it to the parent node cost and stores the result into Node::m_cost member

Definition at line 279 of file yapf_costrail.hpp.

References _settings_game, Vehicle::current_order, FindFirstBit2x64(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::Follow(), PathfinderSettings::forbid_90_deg, SpecializedStation< Waypoint, true >::Get(), BaseStation::GetByTile(), Order::GetDestination(), Train::GetDisplayMaxSpeed(), BaseStation::GetPlatformLength(), GetSignalStateByTrackdir(), GetStationIndex(), HasOnewaySignalBlockingTrackdir(), HasSignalOnTrackdir(), INVALID_TILE, INVALID_TRACKDIR, IsRailDepot(), IsRailDepotTile(), IsRailWaypoint(), IsSafeWaitingPosition(), IsTileType(), Order::IsType(), IsWaitingPositionFree(), KillFirstBit(), CYapfCostRailT< Types >::m_max_cost, CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::m_new_td_bits, CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::m_new_tile, MP_RAILWAY, MP_STATION, GameSettings::pf, RemoveFirstTrackdir(), ReverseDiagDir(), ReverseTrackdir(), SIGNAL_STATE_RED, SIGTYPE_EXIT, SIGTYPE_PBS_ONEWAY, CBlobT< T >::Size(), TRACKDIR_BIT_NONE, TrackdirToExitdir(), TrackdirToTrack(), TrackdirToTrackdirBits(), CYapfCostRailT< Types >::Yapf(), and YAPF_TILE_LENGTH.

template<class Types >

int CYapfCostRailT< Types >::ReservationCost | ( | Node & | n,
|  | TileIndex | tile,
|  | Trackdir | trackdir,
|  | int | skipped
| ) |  |
| inline

The cost for reserved tiles, including skipped ones.

Definition at line 163 of file yapf_costrail.hpp.

References GetReservedTrackbits(), CYapfCostRailT< Types >::IsAnyStationTileReserved(), IsDiagonalTrackdir(), IsRailStationTile(), CBlobT< T >::Size(), TrackdirToTrack(), TrackOverlapsTracks(), CYapfCostRailT< Types >::Yapf(), YAPF_TILE_CORNER_LENGTH, and YAPF_TILE_LENGTH.

## Field Documentation

template<class Types >

int CYapfCostRailT< Types >::m_max_cost
| protected

Note
  maximum cost doesn't work with caching enabled

Todo:
  fix maximum cost failing with caching (e.g. FS#2900)

Definition at line 65 of file yapf_costrail.hpp.

Referenced by CYapfCostRailT< Types >::PfCalcCost().

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

- src/pathfinder/yapf/yapf_costrail.hpp