yapf_node_rail.hpp File Reference

Node tailored for rail pathfinding. More...

Go to the source code of this file.

Data Structures

struct  CYapfRailSegmentKey
 key for cached segment cost for rail YAPF More...
struct  CYapfRailSegment
 cached segment cost for rail YAPF More...
struct  CYapfRailNodeT< Tkey_ >
 Yapf Node for rail YAPF. More...

Typedefs

typedef CYapfRailNodeT
< CYapfNodeKeyExitDir
CYapfRailNodeExitDir
typedef CYapfRailNodeT
< CYapfNodeKeyTrackDir
CYapfRailNodeTrackDir
typedef CNodeList_HashTableT
< CYapfRailNodeExitDir, 8, 10 > 
CRailNodeListExitDir
typedef CNodeList_HashTableT
< CYapfRailNodeTrackDir, 8, 10 > 
CRailNodeListTrackDir

Enumerations

enum  EndSegmentReason {
  ESR_DEAD_END = 0, ESR_RAIL_TYPE, ESR_INFINITE_LOOP, ESR_SEGMENT_TOO_LONG,
  ESR_CHOICE_FOLLOWS, ESR_DEPOT, ESR_WAYPOINT, ESR_STATION,
  ESR_SAFE_TILE, ESR_PATH_TOO_LONG, ESR_FIRST_TWO_WAY_RED, ESR_LOOK_AHEAD_END,
  ESR_TARGET_REACHED, ESR_NONE = 0xFF
}
enum  EndSegmentReasonBits {
  ESRB_NONE = 0, ESRB_DEAD_END = 1 << ESR_DEAD_END, ESRB_RAIL_TYPE = 1 << ESR_RAIL_TYPE, ESRB_INFINITE_LOOP = 1 << ESR_INFINITE_LOOP,
  ESRB_SEGMENT_TOO_LONG = 1 << ESR_SEGMENT_TOO_LONG, ESRB_CHOICE_FOLLOWS = 1 << ESR_CHOICE_FOLLOWS, ESRB_DEPOT = 1 << ESR_DEPOT, ESRB_WAYPOINT = 1 << ESR_WAYPOINT,
  ESRB_STATION = 1 << ESR_STATION, ESRB_SAFE_TILE = 1 << ESR_SAFE_TILE, ESRB_PATH_TOO_LONG = 1 << ESR_PATH_TOO_LONG, ESRB_FIRST_TWO_WAY_RED = 1 << ESR_FIRST_TWO_WAY_RED,
  ESRB_LOOK_AHEAD_END = 1 << ESR_LOOK_AHEAD_END, ESRB_TARGET_REACHED = 1 << ESR_TARGET_REACHED, ESRB_POSSIBLE_TARGET = ESRB_DEPOT | ESRB_WAYPOINT | ESRB_STATION | ESRB_SAFE_TILE, ESRB_CACHED_MASK = ESRB_DEAD_END | ESRB_RAIL_TYPE | ESRB_INFINITE_LOOP | ESRB_SEGMENT_TOO_LONG | ESRB_CHOICE_FOLLOWS | ESRB_DEPOT | ESRB_WAYPOINT | ESRB_STATION | ESRB_SAFE_TILE,
  ESRB_ABORT_PF_MASK = ESRB_DEAD_END | ESRB_PATH_TOO_LONG | ESRB_INFINITE_LOOP | ESRB_FIRST_TWO_WAY_RED
}

Functions

CStrA ValueStr (EndSegmentReasonBits bits)

Detailed Description

Node tailored for rail pathfinding.

Definition in file yapf_node_rail.hpp.


Enumeration Type Documentation

Enumerator:
ESR_DEAD_END 

track ends here

ESR_RAIL_TYPE 

the next tile has a different rail type than our tiles

ESR_INFINITE_LOOP 

infinite loop detected

ESR_SEGMENT_TOO_LONG 

the segment is too long (possible infinite loop)

ESR_CHOICE_FOLLOWS 

the next tile contains a choice (the track splits to more than one segments)

ESR_DEPOT 

stop in the depot (could be a target next time)

ESR_WAYPOINT 

waypoint encountered (could be a target next time)

ESR_STATION 

station encountered (could be a target next time)

ESR_SAFE_TILE 

safe waiting position found (could be a target)

ESR_PATH_TOO_LONG 

the path is too long (searching for the nearest depot in the given radius)

ESR_FIRST_TWO_WAY_RED 

first signal was 2-way and it was red

ESR_LOOK_AHEAD_END 

we have just passed the last look-ahead signal

ESR_TARGET_REACHED 

we have just reached the destination

ESR_NONE 

no reason to end the segment here

Definition at line 65 of file yapf_node_rail.hpp.


Generated on Sun May 15 19:20:25 2011 for OpenTTD by  doxygen 1.6.1