(svn r12622) -Fix: infinite loop in case your compiler decides that enums are unsigned by default. Patch by Dominik.
authorrubidium
Mon, 07 Apr 2008 22:15:31 +0000
changeset 10085 3f6bb14b43c4
parent 10084 95e428ae219c
child 10092 d5418dfd0eb8
(svn r12622) -Fix: infinite loop in case your compiler decides that enums are unsigned by default. Patch by Dominik.
src/road_cmd.cpp
--- a/src/road_cmd.cpp	Mon Apr 07 21:02:27 2008 +0000
+++ b/src/road_cmd.cpp	Mon Apr 07 22:15:31 2008 +0000
@@ -875,13 +875,14 @@
 
 			/* Must iterate over the roadtypes in a reverse manner because
 			 * tram tracks must be removed before the road bits. */
-			for (RoadType rt = ROADTYPE_HWAY; rt >= ROADTYPE_ROAD; rt--) {
+			RoadType rt = ROADTYPE_HWAY;
+			do {
 				if (HasBit(rts, rt)) {
 					CommandCost tmp_ret = RemoveRoad(tile, flags, GetCrossingRoadBits(tile), rt, false);
 					if (CmdFailed(tmp_ret)) return tmp_ret;
 					ret.AddCost(tmp_ret);
 				}
-			}
+			} while (rt-- != ROADTYPE_ROAD);
 
 			if (flags & DC_EXEC) {
 				DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);