changeset 15261:7c48ec098ad1 draft

(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.
author michi_cc <michi_cc@openttd.org>
date Wed, 26 May 2010 05:24:58 +0000
parents 012e08dc46ae
children d3e20a662b06
files src/pathfinder/yapf/yapf_costrail.hpp
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/pathfinder/yapf/yapf_costrail.hpp
+++ b/src/pathfinder/yapf/yapf_costrail.hpp
@@ -507,9 +507,12 @@
 			/* 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. */