|
|
|
@ -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) {
|
|
|
|
|