(svn r1574) -Fix [ 1105281 ] upgrade rail fails when train under bridge
authorcelestar
Thu, 20 Jan 2005 09:12:20 +0000
changeset 1073 4e8f5f9d673d
parent 1072 74cd9150d473
child 1074 02884489f8ba
(svn r1574) -Fix [ 1105281 ] upgrade rail fails when train under bridge
tunnelbridge_cmd.c
--- a/tunnelbridge_cmd.c	Thu Jan 20 08:36:15 2005 +0000
+++ b/tunnelbridge_cmd.c	Thu Jan 20 09:12:20 2005 +0000
@@ -864,17 +864,25 @@
 	} else if ((_map5[tile]&0xC6) == 0x80) {
 		uint starttile;
 		int32 cost;
+		uint z = TilePixelHeight(tile);
+
+		z += 8;
 
 		if (!CheckTileOwnership(tile)) return CMD_ERROR;
 
 		// railway bridge
 		starttile = tile = FindEdgesOfBridge(tile, &endtile);
 		// Make sure there's no vehicle on the bridge
-		if ((v=FindVehicleBetween(tile, endtile, 0xff)) != NULL) {
+		if ((v=FindVehicleBetween(tile, endtile, z)) != NULL) {
 			VehicleInTheWayErrMsg(v);
 			return CMD_ERROR;
 		}
 
+		if (!EnsureNoVehicle(starttile) || !EnsureNoVehicle(endtile)) {
+			_error_message = STR_8803_TRAIN_IN_THE_WAY;
+			return CMD_ERROR;
+		}
+
 		if ( (uint)(_map3_lo[tile] & 0xF) == totype) return CMD_ERROR;
 		cost = 0;
 		do {