OpenTTD Source 20241224-master-gee860a5c8e
yapf_type.hpp File Reference

Types used by YAPF. More...

#include <iomanip>
#include <sstream>
#include "../../core/enum_type.hpp"
#include "../../misc/dbg_helpers.h"

Go to the source code of this file.

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

std::string ValueStr (EndSegmentReasonBits bits)
 

Detailed Description

Types used by YAPF.

Definition in file yapf_type.hpp.

Enumeration Type Documentation

◆ EndSegmentReason

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 20 of file yapf_type.hpp.

◆ EndSegmentReasonBits

enum EndSegmentReasonBits

Definition at line 43 of file yapf_type.hpp.

Function Documentation

◆ ValueStr()

std::string ValueStr ( EndSegmentReasonBits  bits)
inline

Definition at line 75 of file yapf_type.hpp.