40 enum EndSegmentReasonBits {
62 ESRB_POSSIBLE_TARGET = ESRB_DEPOT | ESRB_WAYPOINT | ESRB_STATION | ESRB_SAFE_TILE,
65 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,
68 ESRB_ABORT_PF_MASK = ESRB_DEAD_END | ESRB_PATH_TOO_LONG | ESRB_MAX_COST_EXCEEDED | ESRB_INFINITE_LOOP | ESRB_FIRST_TWO_WAY_RED,
75 static const char *
const end_segment_reason_names[] = {
76 "DEAD_END",
"RAIL_TYPE",
"INFINITE_LOOP",
"SEGMENT_TOO_LONG",
"MAX_COST_EXCEEDED",
"CHOICE_FOLLOWS",
77 "DEPOT",
"WAYPOINT",
"STATION",
"SAFE_TILE",
78 "PATH_TOO_LONG",
"FIRST_TWO_WAY_RED",
"LOOK_AHEAD_END",
"TARGET_REACHED"
82 out.Format(
"0x%04X (%s)", bits,
ComposeNameT(bits, end_segment_reason_names,
"UNK", ESRB_NONE,
"NONE").Data());
83 return out.Transfer();