Update to 1.10.2

This commit is contained in:
Pavel Stupnikov
2020-06-02 01:52:45 +03:00
parent c7c3966eec
commit 0e8ed94e00
828 changed files with 146109 additions and 141846 deletions

View File

@@ -632,6 +632,13 @@ static void TileLoopTreesAlps(TileIndex tile)
MarkTileDirtyByTile(tile);
}
static bool CanPlantExtraTrees(TileIndex tile)
{
return ((_settings_game.game_creation.landscape == LT_TROPIC && GetTropicZone(tile) == TROPICZONE_RAINFOREST) ?
_settings_game.construction.extra_tree_placement != ETP_NONE :
_settings_game.construction.extra_tree_placement == ETP_ALL);
}
static void TileLoop_Trees(TileIndex tile)
{
if (GetTreeGround(tile) == TREE_GROUND_SHORE) {
@@ -682,12 +689,7 @@ static void TileLoop_Trees(TileIndex tile)
FALLTHROUGH;
case 2: { // add a neighbouring tree
/* Don't plant extra trees if that's not allowed. */
if ((_settings_game.game_creation.landscape == LT_TROPIC && GetTropicZone(tile) == TROPICZONE_RAINFOREST) ?
_settings_game.construction.extra_tree_placement == ETP_NONE :
_settings_game.construction.extra_tree_placement != ETP_ALL) {
break;
}
if (!CanPlantExtraTrees(tile)) break;
TreeType treetype = GetTreeType(tile);
@@ -715,6 +717,9 @@ static void TileLoop_Trees(TileIndex tile)
/* more than one tree, delete it */
AddTreeCount(tile, -1);
SetTreeGrowth(tile, 3);
} else if (!CanPlantExtraTrees(tile)) {
/* if trees can't spread just plant a new one to prevent deforestation */
SetTreeGrowth(tile, 0);
} else {
/* just one tree, change type into MP_CLEAR */
switch (GetTreeGround(tile)) {