Tracerestrict: Add flag for whether reserve through is always set

This commit is contained in:
Jonathan G Rennison
2022-06-11 16:40:32 +01:00
parent 5a02a13885
commit 02dabad81e
3 changed files with 7 additions and 0 deletions

View File

@@ -1262,6 +1262,7 @@ bool IsSafeWaitingPosition(const Train *v, TileIndex tile, Trackdir trackdir, bo
if (IsRestrictedSignal(ft.m_new_tile)) {
const TraceRestrictProgram *prog = GetExistingTraceRestrictProgram(ft.m_new_tile, TrackdirToTrack(td));
if (prog && prog->actions_used_flags & TRPAUF_RESERVE_THROUGH) {
if (prog->actions_used_flags & TRPAUF_RESERVE_THROUGH_ALWAYS) return false;
TraceRestrictProgramResult out;
prog->Execute(v, TraceRestrictProgramInput(ft.m_new_tile, td, &VehiclePosTraceRestrictPreviousSignalCallback, nullptr), out);
if (out.flags & TRPRF_RESERVE_THROUGH) {