(svn r11015) -Fix [FS#1166]: towns would build bridges through eachother.

This commit is contained in:
rubidium 2007-08-31 13:06:28 +00:00
parent 98a3b8abfa
commit c81eafdaa0
1 changed files with 10 additions and 12 deletions

View File

@ -1084,19 +1084,17 @@ build_road_and_exit:
/* Quit if it selecting an appropiate bridge type fails a large number of times. */ /* Quit if it selecting an appropiate bridge type fails a large number of times. */
j = 22; j = 22;
{ do {
int32 bridge_len = GetBridgeLength(tile, tmptile); byte bridge_type = RandomRange(MAX_BRIDGES - 1);
do { /* Can we actually build the bridge? */
byte bridge_type = RandomRange(MAX_BRIDGES - 1); if (CmdSucceeded(DoCommand(tile, tmptile, bridge_type | ((0x80 | ROADTYPES_ROAD) << 8), DC_AUTO, CMD_BUILD_BRIDGE))) {
if (CheckBridge_Stuff(bridge_type, bridge_len)) { DoCommand(tile, tmptile, bridge_type | ((0x80 | ROADTYPES_ROAD) << 8), DC_EXEC | DC_AUTO, CMD_BUILD_BRIDGE);
if (CmdSucceeded(DoCommand(tile, tmptile, bridge_type | ((0x80 | ROADTYPES_ROAD) << 8), DC_EXEC | DC_AUTO, CMD_BUILD_BRIDGE))) _grow_town_result = -1;
_grow_town_result = -1;
/* obviously, if building any bridge would fail, there is no need to try other bridge-types */ /* obviously, if building any bridge would fail, there is no need to try other bridge-types */
return; return;
} }
} while (--j != 0); } while (--j != 0);
}
} }
/** Returns "growth" if a house was built, or no if the build failed. /** Returns "growth" if a house was built, or no if the build failed.