summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ai/default/default.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/ai/default/default.cpp b/src/ai/default/default.cpp
index d1979ed82..e84217ddc 100644
--- a/src/ai/default/default.cpp
+++ b/src/ai/default/default.cpp
@@ -1646,18 +1646,22 @@ clear_town_stuff:;
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? */