Merge branch 'master' into jgrpp
# Conflicts: # projects/openttd_vs140.vcxproj.filters # projects/openttd_vs141.vcxproj.filters # projects/openttd_vs142.vcxproj.filters # src/base_consist.h # src/company_base.h # src/newgrf_config.cpp # src/newgrf_config.h # src/openttd.cpp # src/saveload/saveload.cpp # src/saveload/saveload.h # src/saveload/station_sl.cpp # src/settings.cpp # src/signs_base.h # src/string.cpp # src/string_func.h # src/table/misc_settings.ini # src/table/settings.h.preamble # src/town_cmd.cpp # src/vehicle.cpp # src/vehicle_cmd.cpp # src/video/cocoa/cocoa_v.mm # src/video/null_v.cpp
This commit is contained in:
@@ -729,6 +729,13 @@ static void TileLoopTreesAlps(TileIndex tile)
|
||||
MarkTileDirtyByTile(tile, ZOOM_LVL_DRAW_MAP);
|
||||
}
|
||||
|
||||
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) {
|
||||
@@ -788,12 +795,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);
|
||||
|
||||
@@ -821,6 +823,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)) {
|
||||
|
Reference in New Issue
Block a user