39 enum EndSegmentReasonBits {
 
   60   ESRB_POSSIBLE_TARGET = ESRB_DEPOT | ESRB_WAYPOINT | ESRB_STATION | ESRB_SAFE_TILE,
 
   63   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,
 
   66   ESRB_ABORT_PF_MASK = ESRB_DEAD_END | ESRB_PATH_TOO_LONG | ESRB_INFINITE_LOOP | ESRB_FIRST_TWO_WAY_RED,
 
   73   static const char * 
const end_segment_reason_names[] = {
 
   74     "DEAD_END", 
"RAIL_TYPE", 
"INFINITE_LOOP", 
"SEGMENT_TOO_LONG", 
"CHOICE_FOLLOWS",
 
   75     "DEPOT", 
"WAYPOINT", 
"STATION", 
"SAFE_TILE",
 
   76     "PATH_TOO_LONG", 
"FIRST_TWO_WAY_RED", 
"LOOK_AHEAD_END", 
"TARGET_REACHED" 
   80   out.Format(
"0x%04X (%s)", bits, 
ComposeNameT(bits, end_segment_reason_names, 
"UNK", ESRB_NONE, 
"NONE").Data());
 
   81   return out.Transfer();