Changeset - r25092:55e5b7d911fa
[Not reviewed]
master
0 1 0
Charles Pigott - 3 years ago 2021-03-31 08:27:25
charlespigott@googlemail.com
Fix #8803: Only auto-remove signals when rail can be built (#8904)
1 file changed with 4 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/rail_cmd.cpp
Show inline comments
 
@@ -459,6 +459,10 @@ CommandCost CmdBuildSingleRail(TileIndex
 
			if (ret.Succeeded()) ret = EnsureNoTrainOnTrack(tile, track);
 
			if (ret.Failed()) return ret;
 

	
 
			ret = CheckRailSlope(tileh, trackbit, GetTrackBits(tile), tile);
 
			if (ret.Failed()) return ret;
 
			cost.AddCost(ret);
 

	
 
			if (HasSignals(tile) && TracksOverlap(GetTrackBits(tile) | TrackToTrackBits(track))) {
 
				/* If adding the new track causes any overlap, all signals must be removed first */
 
				if (!auto_remove_signals) return_cmd_error(STR_ERROR_MUST_REMOVE_SIGNALS_FIRST);
 
@@ -472,10 +476,6 @@ CommandCost CmdBuildSingleRail(TileIndex
 
				}
 
			}
 

	
 
			ret = CheckRailSlope(tileh, trackbit, GetTrackBits(tile), tile);
 
			if (ret.Failed()) return ret;
 
			cost.AddCost(ret);
 

	
 
			/* If the rail types don't match, try to convert only if engines of
 
			 * the new rail type are not powered on the present rail type and engines of
 
			 * the present rail type are powered on the new rail type. */
0 comments (0 inline, 0 general)