Fix signal blocks containing no-entry signals not being promoted to PBS

This commit is contained in:
Jonathan G Rennison
2024-06-18 18:45:00 +01:00
parent 320e402cfe
commit fc6a7a12cf

View File

@@ -395,7 +395,7 @@ static SigInfo ExploreSegment(Owner owner)
* ANY conventional signal in REVERSE direction * ANY conventional signal in REVERSE direction
* (if it is a presignal EXIT and it changes, it will be added to 'to-be-done' set later) */ * (if it is a presignal EXIT and it changes, it will be added to 'to-be-done' set later) */
if (HasSignalOnTrackdir(tile, reversedir)) { if (HasSignalOnTrackdir(tile, reversedir)) {
if (IsPbsSignalNonExtended(sig)) { if (IsPbsSignalNonExtended(sig) || IsNoEntrySignal(sig)) {
info.flags |= SF_PBS; info.flags |= SF_PBS;
if (_extra_aspects > 0 && GetSignalStateByTrackdir(tile, reversedir) == SIGNAL_STATE_GREEN && !IsRailSpecialSignalAspect(tile, track)) { if (_extra_aspects > 0 && GetSignalStateByTrackdir(tile, reversedir) == SIGNAL_STATE_GREEN && !IsRailSpecialSignalAspect(tile, track)) {
_tbpset.Add(tile, reversedir); _tbpset.Add(tile, reversedir);
@@ -407,7 +407,7 @@ static SigInfo ExploreSegment(Owner owner)
} }
if (HasSignalOnTrackdir(tile, trackdir)) { if (HasSignalOnTrackdir(tile, trackdir)) {
if (!IsOnewaySignal(sig)) info.flags |= SF_PBS; if (!IsOnewaySignal(sig) || IsNoEntrySignal(sig)) info.flags |= SF_PBS;
if (_extra_aspects > 0) { if (_extra_aspects > 0) {
info.out_signal_tile = tile; info.out_signal_tile = tile;
info.out_signal_trackdir = trackdir; info.out_signal_trackdir = trackdir;