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, 10, 12 > 
CRailNodeListExitDir
typedef CNodeList_HashTableT
< CYapfRailNodeTrackDir, 12, 16 > 
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

 DECLARE_ENUM_AS_BIT_SET (EndSegmentReasonBits)
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 58 of file yapf_node_rail.hpp.


Generated on Wed Dec 23 20:13:09 2009 for OpenTTD by  doxygen 1.5.6