# HG changeset patch # User rubidium # Date 1181472739 0 # Node ID f3c7bbd39a869ac46dcbb81806ce0d95fbbde37c # Parent 46b2303390c61be45f668c868a68edce2eed9ecc (svn r10081) -Fix [FS851]: towns/AIs didn't build bridges anymore (boekabart). diff -r 46b2303390c6 -r f3c7bbd39a86 src/ai/default/default.cpp --- a/src/ai/default/default.cpp Sun Jun 10 09:37:09 2007 +0000 +++ b/src/ai/default/default.cpp Sun Jun 10 10:52:19 2007 +0000 @@ -2888,7 +2888,7 @@ } // Is building a (rail)bridge possible at this place (type doesn't matter)? - if (CmdFailed(DoCommand(tile_new, tile, 0x8000, DC_AUTO, CMD_BUILD_BRIDGE))) + if (CmdFailed(DoCommand(tile_new, tile, ((0x80 | ROADTYPES_ROAD) << 8), DC_AUTO, CMD_BUILD_BRIDGE))) return; AiBuildRoadRecursive(arf, tile_new, dir2); @@ -3038,13 +3038,13 @@ */ for (i = 10; i != 0; i--) { if (CheckBridge_Stuff(i, bridge_len)) { - int32 cost = DoCommand(tile, p->ai.cur_tile_a, i + (0x80 << 8), DC_AUTO, CMD_BUILD_BRIDGE); + int32 cost = DoCommand(tile, p->ai.cur_tile_a, i + ((0x80 | ROADTYPES_ROAD) << 8), DC_AUTO, CMD_BUILD_BRIDGE); if (!CmdFailed(cost) && cost < (p->player_money >> 5)) break; } } // Build it - DoCommand(tile, p->ai.cur_tile_a, i + (0x80 << 8), DC_AUTO | DC_EXEC, CMD_BUILD_BRIDGE); + DoCommand(tile, p->ai.cur_tile_a, i + ((0x80 | ROADTYPES_ROAD) << 8), DC_AUTO | DC_EXEC, CMD_BUILD_BRIDGE); p->ai.state_counter = 0; } else if (arf.best_ptr[0] & 0x40) { diff -r 46b2303390c6 -r f3c7bbd39a86 src/town_cmd.cpp --- a/src/town_cmd.cpp Sun Jun 10 09:37:09 2007 +0000 +++ b/src/town_cmd.cpp Sun Jun 10 10:52:19 2007 +0000 @@ -1096,7 +1096,7 @@ do { byte bridge_type = RandomRange(MAX_BRIDGES - 1); if (CheckBridge_Stuff(bridge_type, bridge_len)) { - if (!CmdFailed(DoCommand(tile, tmptile, 0x8000 + bridge_type, DC_EXEC | DC_AUTO, CMD_BUILD_BRIDGE))) + if (!CmdFailed(DoCommand(tile, tmptile, bridge_type | ((0x80 | ROADTYPES_ROAD) << 8), DC_EXEC | DC_AUTO, CMD_BUILD_BRIDGE))) _grow_town_result = -1; /* obviously, if building any bridge would fail, there is no need to try other bridge-types */