1
0
Fork 0

Fix: ScriptTile::PlantTreeRectangle does not check that the end tile is in bounds.

If the starting tile is near the edge of the map, the width and height could overflow the map boundary.

In some cases this might result in a different area being planted than expected.
pull/13004/head
Peter Nelson 2024-10-17 22:17:49 +01:00
parent ae4a723889
commit 421d6daaf8
No known key found for this signature in database
GPG Key ID: 8EF8F0A467DF75ED
1 changed files with 2 additions and 1 deletions

View File

@ -297,7 +297,8 @@
EnforcePrecondition(false, ::IsValidTile(tile));
EnforcePrecondition(false, width >= 1 && width <= 20);
EnforcePrecondition(false, height >= 1 && height <= 20);
TileIndex end_tile = tile + ::TileDiffXY(width - 1, height - 1);
TileIndex end_tile = TileAddWrap(tile, width - 1, height - 1);
EnforcePrecondition(false, ::IsValidTile(end_tile));
return ScriptObject::Command<CMD_PLANT_TREE>::Do(tile, end_tile, TREE_INVALID, false);
}