(svn r526) -Fix: [1035303] bug about lowering tracks built on slopes
authortron
Mon, 08 Nov 2004 09:11:55 +0000
changeset 345 ba68d5714caf
parent 344 b09ce3063f0f
child 346 d958a4a21782
(svn r526) -Fix: [1035303] bug about lowering tracks built on slopes
While here make sure that the failing tile gets a red error marker
clear_cmd.c
--- a/clear_cmd.c	Sun Nov 07 14:15:38 2004 +0000
+++ b/clear_cmd.c	Mon Nov 08 09:11:55 2004 +0000
@@ -92,11 +92,15 @@
 	if ((_map_type_and_height[tile] >> 4) == MP_RAILWAY) {
 		static const byte _railway_modes[4] = {8, 0x10, 4, 0x20};
 		static const byte _railway_dangslopes[4] = {0xd, 0xe, 7, 0xb};
+		static const byte _railway_dangslopes2[4] = {0x2, 0x1, 0x8, 0x4};
 
 		// Nothing could be built at the steep slope - this avoids a bug
 		// when you have a single diagonal track in one corner on a
-		// basement and then you raise the other corner.
-		if ((GetTileSlope(tile, NULL)&0xF) == _railway_dangslopes[mode]) {
+		// basement and then you raise/lower the other corner.
+		int tileh = GetTileSlope(tile, NULL) & 0xF;
+		if (tileh == _railway_dangslopes[mode] ||
+				tileh == _railway_dangslopes2[mode]) {
+			_terraform_err_tile = tile;
 			_error_message = STR_1008_MUST_REMOVE_RAILROAD_TRACK;
 			return -1;
 		}