changeset 8006:d8926aa34fe2 draft

(svn r11565) -Revert: part of r11564
author smatz <smatz@openttd.org>
date Mon, 03 Dec 2007 22:40:18 +0000
parents ee6d40f79c32
children aaded46b8daf
files src/ai/default/default.cpp
diffstat 1 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/ai/default/default.cpp
+++ b/src/ai/default/default.cpp
@@ -1646,18 +1646,22 @@
 				rating += _cleared_town_rating;
 			}
 		} else if (p->mode == 2) {
-			// Rail
+			/* Rail */
 			if (IsTileType(c, MP_RAILWAY)) return CMD_ERROR;
 
 			j = p->attr;
 			k = 0;
 
-			// Build the rail
-			FOR_EACH_SET_BIT(i, j) {
-				k = i;
-				ret = DoCommand(c, railtype, i, flag | DC_AUTO | DC_NO_WATER, CMD_BUILD_SINGLE_RAIL);
-				if (CmdFailed(ret)) return CMD_ERROR;
-				total_cost.AddCost(ret);
+			/* Build the rail
+			 * note: FOR_EACH_SET_BIT cannot be used here
+			 */
+			for (i = 0; i != 6; i++, j >>= 1) {
+				if (j & 1) {
+					k = i;
+					ret = DoCommand(c, railtype, i, flag | DC_AUTO | DC_NO_WATER, CMD_BUILD_SINGLE_RAIL);
+					if (CmdFailed(ret)) return CMD_ERROR;
+					total_cost.AddCost(ret);
+				}
 			}
 
 			/* signals too? */