Changeset - r16725:b9041c857d37
[Not reviewed]
master
0 1 0
rubidium - 13 years ago 2010-12-11 18:28:34
rubidium@openttd.org
(svn r21468) -Change: make sure the end of a bridge is always a valid tile as well, and for aqueducts show "wrong land slope" when that would be more appropriate than "bridge heads not at same height"
1 file changed with 3 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/tunnelbridge_cmd.cpp
Show inline comments
 
@@ -211,7 +211,7 @@ CommandCost CmdBuildBridge(TileIndex end
 
	/* unpack parameters */
 
	BridgeType bridge_type = GB(p2, 0, 8);
 

	
 
	if (p1 >= MapSize()) return CMD_ERROR;
 
	if (!IsValidTile(p1)) return CMD_ERROR;
 

	
 
	TransportType transport_type = Extract<TransportType, 15, 2>(p2);
 

	
 
@@ -270,6 +270,8 @@ CommandCost CmdBuildBridge(TileIndex end
 
	CommandCost terraform_cost_north = CheckBridgeSlopeNorth(direction, &tileh_start, &z_start);
 
	CommandCost terraform_cost_south = CheckBridgeSlopeSouth(direction, &tileh_end,   &z_end);
 

	
 
	/* Aqueducts can't be built of flat land. */
 
	if (transport_type == TRANSPORT_WATER && (tileh_start == SLOPE_FLAT || tileh_end == SLOPE_FLAT)) return_cmd_error(STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION);
 
	if (z_start != z_end) return_cmd_error(STR_ERROR_BRIDGEHEADS_NOT_SAME_HEIGHT);
 

	
 
	CommandCost cost(EXPENSES_CONSTRUCTION);
 
@@ -345,8 +347,6 @@ CommandCost CmdBuildBridge(TileIndex end
 
		if (terraform_cost_south.Failed() || (terraform_cost_south.GetCost() != 0 && !allow_on_slopes)) return_cmd_error(STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION);
 
		cost.AddCost(terraform_cost_south);
 

	
 
		if (transport_type == TRANSPORT_WATER && (tileh_start == SLOPE_FLAT || tileh_end == SLOPE_FLAT)) return_cmd_error(STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION);
 

	
 
		const TileIndex heads[] = {tile_start, tile_end};
 
		for (int i = 0; i < 2; i++) {
 
			if (MayHaveBridgeAbove(heads[i])) {
0 comments (0 inline, 0 general)