File diff r20073:5dce1721551f → r20074:6a94fdea7f7d
src/rail_cmd.cpp
Show inline comments
 
@@ -1139,9 +1139,9 @@ CommandCost CmdBuildSingleSignal(TileInd
 
		DirtyCompanyInfrastructureWindows(GetTileOwner(tile));
 

	
 
		if (IsPbsSignal(sigtype)) {
 
			/* PBS signals should show red unless they are on a reservation. */
 
			/* PBS signals should show red unless they are on reserved tiles without a train. */
 
			uint mask = GetPresentSignals(tile) & SignalOnTrack(track);
 
			SetSignalStates(tile, (GetSignalStates(tile) & ~mask) | ((HasBit(GetRailReservationTrackBits(tile), track) ? UINT_MAX : 0) & mask));
 
			SetSignalStates(tile, (GetSignalStates(tile) & ~mask) | ((HasBit(GetRailReservationTrackBits(tile), track) && EnsureNoVehicleOnGround(tile).Succeeded() ? UINT_MAX : 0) & mask));
 
		}
 
		MarkTileDirtyByTile(tile);
 
		AddTrackToSignalBuffer(tile, track, _current_company);