Add tunnel/bridge entrance/exit values to entry direction conditional

This commit is contained in:
Jonathan G Rennison
2021-11-13 22:52:27 +00:00
parent 74bfe4e6d2
commit b259d04339
4 changed files with 21 additions and 2 deletions

View File

@@ -328,13 +328,21 @@ void TraceRestrictProgram::Execute(const Train* v, const TraceRestrictProgramInp
break;
case TRDTSV_FRONT:
direction_match = IsTileType(input.tile, MP_RAILWAY) && HasSignalOnTrackdir(input.tile, input.trackdir);
direction_match = (IsTileType(input.tile, MP_RAILWAY) && HasSignalOnTrackdir(input.tile, input.trackdir)) || IsTileType(input.tile, MP_TUNNELBRIDGE);
break;
case TRDTSV_BACK:
direction_match = IsTileType(input.tile, MP_RAILWAY) && !HasSignalOnTrackdir(input.tile, input.trackdir);
break;
case TRDTSV_TUNBRIDGE_ENTER:
direction_match = IsTunnelBridgeSignalSimulationEntranceTile(input.tile) && TrackdirEntersTunnelBridge(input.tile, input.trackdir);
break;
case TRDTSV_TUNBRIDGE_EXIT:
direction_match = IsTunnelBridgeSignalSimulationExitTile(input.tile) && TrackdirExitsTunnelBridge(input.tile, input.trackdir);
break;
default:
NOT_REACHED();
break;