From 5c2fb5c160aa68da5f957c0779495fd270c9aae5 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 10 May 2022 00:31:20 +0100 Subject: [PATCH] Make tree tile grass ground density update speed independent of growth speed See #386 --- src/tree_cmd.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/tree_cmd.cpp b/src/tree_cmd.cpp index ce93ff5e7e..a110578a52 100644 --- a/src/tree_cmd.cpp +++ b/src/tree_cmd.cpp @@ -926,22 +926,24 @@ static void TileLoop_Trees(TileIndex tile) } if (GetTreeCounter(tile) < 15) { - if (_settings_game.construction.tree_growth_rate > 0) { - /* slow, very slow, extremely slow */ - uint16 grow_slowing_values[4] = { 0x10000 / 5, 0x10000 / 20, 0x10000 / 120, 0 }; - - if (GB(Random(), 0, 16) < grow_slowing_values[_settings_game.construction.tree_growth_rate - 1]) { - AddTreeCounter(tile, 1); - } - } else { - AddTreeCounter(tile, 1); - } + AddTreeCounter(tile, 1); return; } SetTreeCounter(tile, 0); if (_settings_game.construction.extra_tree_placement == ETP_NO_GROWTH_NO_SPREAD) return; + if (_settings_game.construction.tree_growth_rate > 0) { + if (_settings_game.construction.tree_growth_rate == 4) return; + + /* slow, very slow, extremely slow */ + uint16 grow_slowing_values[4] = { 0x10000 / 5, 0x10000 / 20, 0x10000 / 120, 0 }; + + if (GB(Random(), 0, 16) >= grow_slowing_values[_settings_game.construction.tree_growth_rate - 1]) { + return; + } + } + switch (GetTreeGrowth(tile)) { case 3: // regular sized tree if (_settings_game.game_creation.landscape == LT_TROPIC &&