(svn r11955) -Fix (r11926): Prevent bridge and tunnel ends being placed on rivers.
authorpeter1138
Wed, 23 Jan 2008 08:28:19 +0000
changeset 8881 83da175eaedc
parent 8880 6ae9ec825155
child 8882 f54bd3d64027
(svn r11955) -Fix (r11926): Prevent bridge and tunnel ends being placed on rivers.
src/tunnelbridge_cmd.cpp
--- a/src/tunnelbridge_cmd.cpp	Wed Jan 23 00:36:48 2008 +0000
+++ b/src/tunnelbridge_cmd.cpp	Wed Jan 23 08:28:19 2008 +0000
@@ -258,7 +258,7 @@
 	/* retrieve landscape height and ensure it's on land */
 	tile_start = TileXY(x, y);
 	tile_end = TileXY(sx, sy);
-	if (IsWaterTile(tile_start) || IsWaterTile(tile_end)) {
+	if (IsWaterTile(tile_start) || IsRiverTile(tile_start) || IsWaterTile(tile_end) || IsRiverTile(tile_end)) {
 		return_cmd_error(STR_02A0_ENDS_OF_BRIDGE_MUST_BOTH);
 	}
 
@@ -484,6 +484,8 @@
 		default: return_cmd_error(STR_500B_SITE_UNSUITABLE_FOR_TUNNEL);
 	}
 
+	if (IsRiverTile(start_tile)) return_cmd_error(STR_3807_CAN_T_BUILD_ON_WATER);
+
 	ret = DoCommand(start_tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
 	if (CmdFailed(ret)) return ret;
 
@@ -536,6 +538,8 @@
 	/* if the command fails from here on we want the end tile to be highlighted */
 	_build_tunnel_endtile = end_tile;
 
+	if (IsRiverTile(end_tile)) return_cmd_error(STR_3807_CAN_T_BUILD_ON_WATER);
+
 	/* slope of end tile must be complementary to the slope of the start tile */
 	if (end_tileh != ComplementSlope(start_tileh)) {
 		/* Check if there is a structure on the terraformed tile. Do not add the cost, that will be done by the terraforming */