From f3b56340c23ffc1d64d5c0830fa1f896e0965332 Mon Sep 17 00:00:00 2001 From: michi_cc Date: Wed, 26 May 2010 05:24:58 +0000 Subject: (svn r19896) -Fix [FS#3803] (r18648): [YAPP] Inform the pathfinder as well about the fact that the backside of an one-way path signal can be a safe waiting point. --- src/pathfinder/yapf/yapf_costrail.hpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/pathfinder/yapf') diff --git a/src/pathfinder/yapf/yapf_costrail.hpp b/src/pathfinder/yapf/yapf_costrail.hpp index 3badace9a..e38ae52c8 100644 --- a/src/pathfinder/yapf/yapf_costrail.hpp +++ b/src/pathfinder/yapf/yapf_costrail.hpp @@ -507,9 +507,12 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th /* Gather the next tile/trackdir/tile_type/rail_type. */ TILE next(tf_local.m_new_tile, (Trackdir)FindFirstBit2x64(tf_local.m_new_td_bits)); - if (TrackFollower::DoTrackMasking() && HasPbsSignalOnTrackdir(next.tile, next.td)) { - /* Possible safe tile. */ - end_segment_reason |= ESRB_SAFE_TILE; + if (TrackFollower::DoTrackMasking() && IsTileType(next.tile, MP_RAILWAY)) { + if ((HasSignalOnTrackdir(next.tile, next.td) && IsPbsSignal(GetSignalType(next.tile, TrackdirToTrack(next.td)))) || + (HasSignalOnTrackdir(next.tile, ReverseTrackdir(next.td)) && GetSignalType(next.tile, TrackdirToTrack(next.td)) == SIGTYPE_PBS_ONEWAY)) { + /* Possible safe tile. */ + end_segment_reason |= ESRB_SAFE_TILE; + } } /* Check the next tile for the rail type. */ -- cgit v1.2.3-54-g00ecf