Add new signal type: no-entry signal

This is only passable in one direction, but does not have a signal
or show an aspect in the opposite direction

Add a setting for whether this is shown in the signal UI.
Off by default.
This commit is contained in:
Jonathan G Rennison
2021-09-04 03:14:09 +01:00
parent b3aa59c85d
commit 5d351a14d2
31 changed files with 256 additions and 31 deletions

View File

@@ -349,6 +349,11 @@ static inline bool IsPresignalProgrammable(TileIndex t, Track track)
return IsProgrammableSignal(GetSignalType(t, track));
}
static inline bool IsNoEntrySignal(TileIndex t, Track track)
{
return IsNoEntrySignal(GetSignalType(t, track));
}
/** One-way signals can't be passed the 'wrong' way. */
static inline bool IsOnewaySignal(TileIndex t, Track track)
{
@@ -526,6 +531,10 @@ static inline bool HasOnewaySignalBlockingTrackdir(TileIndex tile, Trackdir td)
!HasSignalOnTrackdir(tile, td) && IsOnewaySignal(tile, TrackdirToTrack(td))) {
return true;
}
if (IsTileType(tile, MP_RAILWAY) && HasSignalOnTrackdir(tile, td) &&
IsNoEntrySignal(tile, TrackdirToTrack(td))) {
return true;
}
if (IsTileType(tile, MP_TUNNELBRIDGE) && IsTunnelBridgeSignalSimulationExitOnly(tile) &&
TrackdirEntersTunnelBridge(tile, td)) {
return true;