Enable signals on bridges/tunnels to work with PBS.

This commit is contained in:
Jonathan G Rennison
2016-02-20 20:12:10 +00:00
parent 95a329a4b9
commit a25ac7a161
7 changed files with 63 additions and 11 deletions

View File

@@ -18,6 +18,7 @@
#include "track_func.h"
#include "tile_map.h"
#include "signal_type.h"
#include "tunnelbridge_map.h"
/** Different types of Rail-related tiles */
@@ -475,8 +476,15 @@ static inline bool HasPbsSignalOnTrackdir(TileIndex tile, Trackdir td)
*/
static inline bool HasOnewaySignalBlockingTrackdir(TileIndex tile, Trackdir td)
{
return IsTileType(tile, MP_RAILWAY) && HasSignalOnTrackdir(tile, ReverseTrackdir(td)) &&
!HasSignalOnTrackdir(tile, td) && IsOnewaySignal(tile, TrackdirToTrack(td));
if (IsTileType(tile, MP_RAILWAY) && HasSignalOnTrackdir(tile, ReverseTrackdir(td)) &&
!HasSignalOnTrackdir(tile, td) && IsOnewaySignal(tile, TrackdirToTrack(td))) {
return true;
}
if (IsTileType(tile, MP_TUNNELBRIDGE) && IsTunnelBridgeExit(tile) &&
DiagDirToDiagTrackdir(GetTunnelBridgeDirection(tile)) == td) {
return true;
}
return false;
}