Changeset - r10210:3152cd401b7c
[Not reviewed]
master
0 3 0
michi_cc - 16 years ago 2008-10-01 15:48:44
michi_cc@openttd.org
(svn r14428) -Fix [FS#2306]: A 90-degree curve can be a safe waiting position if they are forbidden for trains.
3 files changed with 5 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/pbs.cpp
Show inline comments
 
@@ -329,8 +329,8 @@ bool IsSafeWaitingPosition(const Vehicle
 

	
 
	/* Check for reachable tracks. */
 
	ft.m_new_td_bits &= DiagdirReachesTrackdirs(ft.m_exitdir);
 
	if (forbid_90deg) ft.m_new_td_bits &= ~TrackdirCrossesTrackdirs(trackdir);
 
	if (ft.m_new_td_bits == TRACKDIR_BIT_NONE) return include_line_end;
 
	if (forbid_90deg) ft.m_new_td_bits &= ~TrackdirCrossesTrackdirs(trackdir);
 

	
 
	if (ft.m_new_td_bits != TRACKDIR_BIT_NONE && KillFirstBit(ft.m_new_td_bits) == TRACKDIR_BIT_NONE) {
 
		/* PBS signal on next trackdir? Safe position. */
src/yapf/yapf_costrail.hpp
Show inline comments
 
@@ -437,8 +437,8 @@ no_entry_cost: // jump here at the begin
 
					end_segment_reason |= ESRB_DEAD_END;
 
				}
 

	
 
				if (TrackFollower::DoTrackMasking() && tf_local.m_err != TrackFollower::EC_90DEG) {
 
					if (!HasOnewaySignalBlockingTrackdir(cur.tile, cur.td)) end_segment_reason |= ESRB_SAFE_TILE;
 
				if (TrackFollower::DoTrackMasking() && !HasOnewaySignalBlockingTrackdir(cur.tile, cur.td)) {
 
					end_segment_reason |= ESRB_SAFE_TILE;
 
				}
 
				break;
 
			}
src/yapf/yapf_destrail.hpp
Show inline comments
 
@@ -85,8 +85,8 @@ public:
 
	FORCEINLINE bool PfDetectDestination(TileIndex tile, Trackdir td)
 
	{
 
		return
 
			IsSafeWaitingPosition(Yapf().GetVehicle(), tile, td, true, TrackFollower::Allow90degTurns()) &&
 
			IsWaitingPositionFree(Yapf().GetVehicle(), tile, td, TrackFollower::Allow90degTurns());
 
			IsSafeWaitingPosition(Yapf().GetVehicle(), tile, td, true, !TrackFollower::Allow90degTurns()) &&
 
			IsWaitingPositionFree(Yapf().GetVehicle(), tile, td, !TrackFollower::Allow90degTurns());
 
	}
 

	
 
	/** Called by YAPF to calculate cost estimate. Calculates distance to the destination
0 comments (0 inline, 0 general)