changeset 2686:475a4abae58e draft

(svn r3228) - Fix: [ 1327011 ] Fix: don't lower land on tunnel, even with diag tracks on it (based on patch by glx)
author peter1138 <peter1138@openttd.org>
date Tue, 22 Nov 2005 22:30:35 +0000
parents d47303da6613
children 91b598992565
files clear_cmd.c
diffstat 1 files changed, 10 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/clear_cmd.c
+++ b/clear_cmd.c
@@ -86,7 +86,7 @@
 static int TerraformProc(TerraformerState *ts, TileIndex tile, int mode)
 {
 	int r;
-	int32 ret;
+	bool skip_clear = false;
 
 	assert(tile < MapSize());
 
@@ -111,18 +111,20 @@
 
 		// If we have a single diagonal track there, the other side of
 		// tile can be terraformed.
-		if ((_m[tile].m5 & ~0x40) == _railway_modes[mode]) return 0;
+		if ((_m[tile].m5 & ~0x40) == _railway_modes[mode]) skip_clear = true;
 	}
 
-	ret = DoCommandByTile(tile, 0,0, ts->flags & ~DC_EXEC, CMD_LANDSCAPE_CLEAR);
+	if (!skip_clear) {
+		int32 ret = DoCommandByTile(tile, 0,0, ts->flags & ~DC_EXEC, CMD_LANDSCAPE_CLEAR);
 
-	if (ret == CMD_ERROR) {
-		_terraform_err_tile = tile;
-		return -1;
+		if (CmdFailed(ret)) {
+			_terraform_err_tile = tile;
+			return -1;
+		}
+
+		ts->cost += ret;
 	}
 
-	ts->cost += ret;
-
 	if (ts->tile_table_count >= 625) return -1;
 	ts->tile_table[ts->tile_table_count++] = tile;