Fix #9241: Grove and forest tree brushes also create rainforests (#9542)

This commit is contained in:
Vít Šefl
2021-09-12 08:42:24 +02:00
committed by GitHub
parent d4588df9f9
commit 710b758b81
2 changed files with 11 additions and 3 deletions

View File

@@ -301,9 +301,10 @@ void PlaceTreesRandomly()
* @param treetype Type of trees to place. Must be a valid tree type for the climate.
* @param radius Maximum distance (on each axis) from tile to place trees.
* @param count Maximum number of trees to place.
* @param set_zone Whether to create a rainforest zone when placing rainforest trees.
* @return Number of trees actually placed.
*/
uint PlaceTreeGroupAroundTile(TileIndex tile, TreeType treetype, uint radius, uint count)
uint PlaceTreeGroupAroundTile(TileIndex tile, TreeType treetype, uint radius, uint count, bool set_zone)
{
assert(treetype < TREE_TOYLAND + TREE_COUNT_TOYLAND);
const bool allow_desert = treetype == TREE_CACTUS;
@@ -334,6 +335,12 @@ uint PlaceTreeGroupAroundTile(TileIndex tile, TreeType treetype, uint radius, ui
}
}
if (set_zone && IsInsideMM(treetype, TREE_RAINFOREST, TREE_CACTUS)) {
for (TileIndex t : TileArea(tile).Expand(radius)) {
if (GetTileType(t) != MP_VOID && DistanceSquare(tile, t) < radius * radius) SetTropicZone(t, TROPICZONE_RAINFOREST);
}
}
return planted;
}