From 48855806d63e8d7e6496a3f023c7c4ac85826922 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Tue, 22 Nov 2005 22:30:35 +0000 Subject: [PATCH] (svn r3228) - Fix: [ 1327011 ] Fix: don't lower land on tunnel, even with diag tracks on it (based on patch by glx) --- clear_cmd.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/clear_cmd.c b/clear_cmd.c index c79ac608d3..23168d9458 100644 --- a/clear_cmd.c +++ b/clear_cmd.c @@ -86,7 +86,7 @@ static void TerraformAddDirtyTileAround(TerraformerState *ts, TileIndex tile) static int TerraformProc(TerraformerState *ts, TileIndex tile, int mode) { int r; - int32 ret; + bool skip_clear = false; assert(tile < MapSize()); @@ -111,18 +111,20 @@ static int TerraformProc(TerraformerState *ts, TileIndex tile, int mode) // 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;