diff -r 00111d5ca47f -r a3e667057607 clear_cmd.c --- a/clear_cmd.c Tue Nov 22 19:33:29 2005 +0000 +++ b/clear_cmd.c Tue Nov 22 22:30:35 2005 +0000 @@ -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;