diff options
author | Michael Lutz <michi@icosahedron.de> | 2019-03-10 09:12:47 +0100 |
---|---|---|
committer | PeterN <peter@fuzzle.org> | 2019-03-10 08:12:47 +0000 |
commit | cc5f17561571b45b52e7406fb66051446f8cceb4 (patch) | |
tree | 2d5f5d0ffd8fd9495b0f82ae3b46196c9f38e192 /src/pbs.cpp | |
parent | 26b0615c476039c43b4a845c6b01d590d1fb20dd (diff) | |
download | openttd-cc5f17561571b45b52e7406fb66051446f8cceb4.tar.xz |
Feature: Railtype flags to allow/disallow 90 degree curves. (#7352)
Diffstat (limited to 'src/pbs.cpp')
-rw-r--r-- | src/pbs.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/pbs.cpp b/src/pbs.cpp index 6bb35a696..44b5b069b 100644 --- a/src/pbs.cpp +++ b/src/pbs.cpp @@ -400,7 +400,7 @@ bool IsSafeWaitingPosition(const Train *v, TileIndex tile, Trackdir trackdir, bo /* Check for reachable tracks. */ ft.m_new_td_bits &= DiagdirReachesTrackdirs(ft.m_exitdir); - if (forbid_90deg) ft.m_new_td_bits &= ~TrackdirCrossesTrackdirs(trackdir); + if (Rail90DegTurnDisallowed(GetTileRailType(ft.m_old_tile), GetTileRailType(ft.m_new_tile), forbid_90deg)) ft.m_new_td_bits &= ~TrackdirCrossesTrackdirs(trackdir); if (ft.m_new_td_bits == TRACKDIR_BIT_NONE) return include_line_end; if (ft.m_new_td_bits != TRACKDIR_BIT_NONE && KillFirstBit(ft.m_new_td_bits) == TRACKDIR_BIT_NONE) { @@ -445,7 +445,7 @@ bool IsWaitingPositionFree(const Train *v, TileIndex tile, Trackdir trackdir, bo /* Check for reachable tracks. */ ft.m_new_td_bits &= DiagdirReachesTrackdirs(ft.m_exitdir); - if (forbid_90deg) ft.m_new_td_bits &= ~TrackdirCrossesTrackdirs(trackdir); + if (Rail90DegTurnDisallowed(GetTileRailType(ft.m_old_tile), GetTileRailType(ft.m_new_tile), forbid_90deg)) ft.m_new_td_bits &= ~TrackdirCrossesTrackdirs(trackdir); return !HasReservedTracks(ft.m_new_tile, TrackdirBitsToTrackBits(ft.m_new_td_bits)); } |