Changeset - r17890:237aba646ee3
[Not reviewed]
master
0 1 0
rubidium - 13 years ago 2011-07-30 13:55:44
rubidium@openttd.org
(svn r22699) -Fix [FS#4681]: Cost of adding an extra road type to a bridge or tunnel was undercalculated (adf88)
1 file changed with 7 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/road_cmd.cpp
Show inline comments
 
@@ -662,12 +662,14 @@ do_clear:;
 
		if (ret.Failed()) return ret;
 

	
 
	}
 
	cost.AddCost(CountBits(pieces) * _price[PR_BUILD_ROAD]);
 

	
 
	if (!need_to_clear && IsTileType(tile, MP_TUNNELBRIDGE)) {
 
		/* Pay for *every* tile of the bridge or tunnel */
 
		cost.MultiplyCost(GetTunnelBridgeLength(GetOtherTunnelBridgeEnd(tile), tile) + 2);
 
	}
 
	uint num_pieces = (!need_to_clear && IsTileType(tile, MP_TUNNELBRIDGE)) ?
 
			/* There are 2 pieces on *every* tile of the bridge or tunnel */
 
			2 * (GetTunnelBridgeLength(GetOtherTunnelBridgeEnd(tile), tile) + 2) :
 
			/* Count pieces */
 
			CountBits(pieces);
 

	
 
	cost.AddCost(num_pieces * _price[PR_BUILD_ROAD]);
 

	
 
	if (flags & DC_EXEC) {
 
		switch (GetTileType(tile)) {
0 comments (0 inline, 0 general)