Changeset - r14091:400ffee4318f
[Not reviewed]
master
0 1 0
michi_cc - 14 years ago 2009-12-27 14:37:54
michi_cc@openttd.org
(svn r18648) -Fix/Feature [FS#3430-ish]: [YAPP] Treat the backside of an one-way path signals as a safe waiting point.
1 file changed with 7 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/pbs.cpp
Show inline comments
 
@@ -369,8 +369,14 @@ bool IsSafeWaitingPosition(const Train *
 
	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) {
 
		Trackdir td = FindFirstTrackdir(ft.m_new_td_bits);
 
		/* PBS signal on next trackdir? Safe position. */
 
		if (HasPbsSignalOnTrackdir(ft.m_new_tile, FindFirstTrackdir(ft.m_new_td_bits))) return true;
 
		if (HasPbsSignalOnTrackdir(ft.m_new_tile, td)) return true;
 
		/* One-way PBS signal against us? Safe if end-of-line is allowed. */
 
		if (IsTileType(ft.m_new_tile, MP_RAILWAY) && HasSignalOnTrackdir(ft.m_new_tile, ReverseTrackdir(td)) &&
 
				GetSignalType(ft.m_new_tile, TrackdirToTrack(td)) == SIGTYPE_PBS_ONEWAY) {
 
			return include_line_end;
 
		}
 
	}
 

	
 
	return false;
0 comments (0 inline, 0 general)