File diff r12076:cdb45179e7bc → r12077:baf868e4baf0
src/signal.cpp
Show inline comments
 
@@ -341,7 +341,7 @@ static SigFlags ExploreSegment(Owner own
 
				}
 

	
 
				for (DiagDirection dir = DIAGDIR_BEGIN; dir < DIAGDIR_END; dir++) { // test all possible exit directions
 
					if (dir != enterdir && tracks & _enterdir_to_trackbits[dir]) { // any track incidating?
 
					if (dir != enterdir && (tracks & _enterdir_to_trackbits[dir])) { // any track incidating?
 
						TileIndex newtile = tile + TileOffsByDiagDir(dir);  // new tile to check
 
						DiagDirection newdir = ReverseDiagDir(dir); // direction we are entering from
 
						if (!MaybeAddToTodoSet(newtile, newdir, tile, dir)) return flags | SF_FULL;
 
@@ -425,7 +425,7 @@ static void UpdateSignalsAroundSegment(S
 
			/* is it a bidir combo? - then do not count its other signal direction as exit */
 
			if (sig == SIGTYPE_COMBO && HasSignalOnTrackdir(tile, ReverseTrackdir(trackdir))) {
 
				/* at least one more exit */
 
				if (flags & SF_EXIT2 &&
 
				if ((flags & SF_EXIT2) &&
 
						/* no green exit */
 
						(!(flags & SF_GREEN) ||
 
						/* only one green exit, and it is this one - so all other exits are red */
 
@@ -433,7 +433,7 @@ static void UpdateSignalsAroundSegment(S
 
					newstate = SIGNAL_STATE_RED;
 
				}
 
			} else { // entry, at least one exit, no green exit
 
				if (IsPresignalEntry(tile, TrackdirToTrack(trackdir)) && flags & SF_EXIT && !(flags & SF_GREEN)) newstate = SIGNAL_STATE_RED;
 
				if (IsPresignalEntry(tile, TrackdirToTrack(trackdir)) && (flags & SF_EXIT) && !(flags & SF_GREEN)) newstate = SIGNAL_STATE_RED;
 
			}
 
		}
 

	
 
@@ -535,7 +535,7 @@ static SigSegState UpdateSignalsInBuffer
 
			/* SIGSEG_FREE is set by default */
 
			if (flags & SF_PBS) {
 
				state = SIGSEG_PBS;
 
			} else if (flags & SF_TRAIN || (flags & SF_EXIT && !(flags & SF_GREEN)) || flags & SF_FULL) {
 
			} else if ((flags & SF_TRAIN) || ((flags & SF_EXIT) && !(flags & SF_GREEN)) || (flags & SF_FULL)) {
 
				state = SIGSEG_FULL;
 
			}
 
		}