Changeset - r7500:3026f2a3dc93
[Not reviewed]
master
0 1 0
rubidium - 17 years ago 2007-08-31 13:06:28
rubidium@openttd.org
(svn r11015) -Fix [FS#1166]: towns would build bridges through eachother.
1 file changed with 11 insertions and 13 deletions:
0 comments (0 inline, 0 general)
src/town_cmd.cpp
Show inline comments
 
@@ -1084,19 +1084,17 @@ build_road_and_exit:
 

	
 
	/* Quit if it selecting an appropiate bridge type fails a large number of times. */
 
	j = 22;
 
	{
 
		int32 bridge_len = GetBridgeLength(tile, tmptile);
 
		do {
 
			byte bridge_type = RandomRange(MAX_BRIDGES - 1);
 
			if (CheckBridge_Stuff(bridge_type, bridge_len)) {
 
				if (CmdSucceeded(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 */
 
				return;
 
			}
 
		} while (--j != 0);
 
	}
 
	do {
 
		byte bridge_type = RandomRange(MAX_BRIDGES - 1);
 
		/* Can we actually build the bridge? */
 
		if (CmdSucceeded(DoCommand(tile, tmptile, bridge_type | ((0x80 | ROADTYPES_ROAD) << 8), DC_AUTO, CMD_BUILD_BRIDGE))) {
 
			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 */
 
			return;
 
		}
 
	} while (--j != 0);
 
}
 

	
 
/** Returns "growth" if a house was built, or no if the build failed.
0 comments (0 inline, 0 general)