(svn r2977) - CodeChange: [pbs] Use a check to see if a rail segment is a pbs segment, instead of letting the pathfinder determine this.
authorhackykid
Fri, 23 Sep 2005 17:37:21 +0000
changeset 2451 f7d6ed0f564d
parent 2450 d7edd1def1e0
child 2452 f49ab2c9d83b
(svn r2977) - CodeChange: [pbs] Use a check to see if a rail segment is a pbs segment, instead of letting the pathfinder determine this.
train_cmd.c
--- a/train_cmd.c	Fri Sep 23 14:21:39 2005 +0000
+++ b/train_cmd.c	Fri Sep 23 17:37:21 2005 +0000
@@ -2746,7 +2746,7 @@
 					trackdir = TrackEnterdirToTrackdir(FIND_FIRST_BIT(chosen_track), enterdir);
 					assert(trackdir != 0xff);
 
-					if (PBSIsPbsSignal(gp.new_tile,trackdir)) {
+					if (PBSIsPbsSignal(gp.new_tile,trackdir) && PBSIsPbsSegment(gp.new_tile,trackdir)) {
 						// encountered a pbs signal, and possible a pbs block
 						DEBUG(pbs, 3) ("pbs: (%i) arrive AT signal, tile:%x  pbs_stat:%i",v->unitnumber, gp.new_tile, v->u.rail.pbs_status);
 
@@ -3184,7 +3184,7 @@
 	if  (v->u.rail.pbs_status == PBS_STAT_HAS_PATH)
 		return true;
 
-	if ((trackdir != INVALID_TRACKDIR) && (PBSIsPbsSignal(tile,trackdir)) && !(IsTileType(v->tile, MP_STATION) && (v->current_order.station == _m[v->tile].m2))) {
+	if ((trackdir != INVALID_TRACKDIR) && (PBSIsPbsSignal(tile,trackdir) && PBSIsPbsSegment(tile,trackdir)) && !(IsTileType(v->tile, MP_STATION) && (v->current_order.station == _m[v->tile].m2))) {
 		NPFFindStationOrTileData fstd;
 		NPFFoundTargetData ftd;