diff options
author | peter1138 <peter1138@openttd.org> | 2005-11-22 22:30:35 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2005-11-22 22:30:35 +0000 |
commit | f6ddaf6a23c4218f5ab7c61a30288d78d5073484 (patch) | |
tree | 774b503fcce4d3f005ea0e7b6c4905daf2b7c1b1 | |
parent | 4845ff063b6c83eabcd3c6ee5a3dcff7debf4ddc (diff) | |
download | openttd-f6ddaf6a23c4218f5ab7c61a30288d78d5073484.tar.xz |
(svn r3228) - Fix: [ 1327011 ] Fix: don't lower land on tunnel, even with diag tracks on it (based on patch by glx)
-rw-r--r-- | clear_cmd.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/clear_cmd.c b/clear_cmd.c index c79ac608d..23168d945 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,17 +111,19 @@ 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; |