diff options
author | Yexo <yexo@openttd.org> | 2009-01-22 00:23:37 +0000 |
---|---|---|
committer | Yexo <yexo@openttd.org> | 2009-01-22 00:23:37 +0000 |
commit | cb7449b83cd787ae310cb93e7694477b9dfbff9e (patch) | |
tree | c341d6bd7524169461427705900a7a4cc34f632c | |
parent | a89e63f6726add32b589b69abad5c24565d67217 (diff) | |
download | openttd-cb7449b83cd787ae310cb93e7694477b9dfbff9e.tar.xz |
(svn r15203) -Fix (r15190): CmdTerraformLand didn't check it's parameters good enough.
-rw-r--r-- | src/terraform_cmd.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/terraform_cmd.cpp b/src/terraform_cmd.cpp index 337eca2fd..bdcc49fab 100644 --- a/src/terraform_cmd.cpp +++ b/src/terraform_cmd.cpp @@ -240,21 +240,21 @@ CommandCost CmdTerraformLand(TileIndex tile, uint32 flags, uint32 p1, uint32 p2, ts.modheight_count = ts.tile_table_count = 0; /* Compute the costs and the terraforming result in a model of the landscape */ - if ((p1 & SLOPE_W) != 0) { + if ((p1 & SLOPE_W) != 0 && tile + TileDiffXY(1, 0) < MapSize()) { TileIndex t = tile + TileDiffXY(1, 0); CommandCost cost = TerraformTileHeight(&ts, t, TileHeight(t) + direction); if (CmdFailed(cost)) return cost; total_cost.AddCost(cost); } - if ((p1 & SLOPE_S) != 0) { + if ((p1 & SLOPE_S) != 0 && tile + TileDiffXY(1, 1) < MapSize()) { TileIndex t = tile + TileDiffXY(1, 1); CommandCost cost = TerraformTileHeight(&ts, t, TileHeight(t) + direction); if (CmdFailed(cost)) return cost; total_cost.AddCost(cost); } - if ((p1 & SLOPE_E) != 0) { + if ((p1 & SLOPE_E) != 0 && tile + TileDiffXY(0, 1) < MapSize()) { TileIndex t = tile + TileDiffXY(0, 1); CommandCost cost = TerraformTileHeight(&ts, t, TileHeight(t) + direction); if (CmdFailed(cost)) return cost; |