pathfind.c
changeset 4631 3005b7b2e18c
parent 4559 c853d2440065
child 5028 fef7184a6b6c
--- a/pathfind.c	Thu Sep 21 17:26:18 2006 +0000
+++ b/pathfind.c	Fri Sep 22 21:52:31 2006 +0000
@@ -802,21 +802,18 @@
 
 			// railway tile with signals..?
 			if (HasSignals(tile)) {
-				byte m3;
-
-				m3 = _m[tile].m3;
-				if (!(m3 & SignalAlongTrackdir(track))) {
+				if (!HasSignalOnTrackdir(tile, track)) {
 					// if one way signal not pointing towards us, stop going in this direction => End of rail segment.
-					if (m3 & SignalAgainstTrackdir(track)) {
+					if (HasSignalOnTrackdir(tile, ReverseTrackdir(track))) {
 						bits = 0;
 						break;
 					}
-				} else if (_m[tile].m2 & SignalAlongTrackdir(track)) {
+				} else if (GetSignalStateByTrackdir(tile, track) == SIGNAL_STATE_GREEN) {
 					// green signal in our direction. either one way or two way.
 					si.state |= 3;
 				} else {
 					// reached a red signal.
-					if (m3 & SignalAgainstTrackdir(track)) {
+					if (HasSignalOnTrackdir(tile, ReverseTrackdir(track))) {
 						// two way red signal. unless we passed another green signal on the way,
 						// stop going in this direction => End of rail segment.
 						// this is to prevent us from going into a full platform.