diff --git a/src/clear_cmd.cpp b/src/clear_cmd.cpp index 279f6aba89..0c1e6d5ff7 100644 --- a/src/clear_cmd.cpp +++ b/src/clear_cmd.cpp @@ -365,9 +365,9 @@ void GenerateClearTile() IncreaseGeneratingWorldProgress(GWP_ROUGH_ROCKY); if (IsTileType(tile, MP_CLEAR) && !IsClearGround(tile, CLEAR_DESERT)) { - uint j = GB(r, 16, 4) + _settings_game.game_creation.amount_of_rocks; + uint j = GB(r, 16, 4) + _settings_game.game_creation.amount_of_rocks + ((int)TileHeight(tile) * _settings_game.game_creation.height_affects_rocks); for (;;) { - TileIndex tile_new; + TileIndex tile_new; SetClearGroundDensity(tile, CLEAR_ROCKS, 3); do { diff --git a/src/lang/english.txt b/src/lang/english.txt index 9fe9985e3f..1a7f386169 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1461,6 +1461,8 @@ STR_CONFIG_SETTING_RIVER_AMOUNT :River amount: { STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Choose how many rivers to generate STR_CONFIG_SETTING_ROCKS_AMOUNT :Rocks amount: {STRING} STR_CONFIG_SETTING_ROCKS_AMOUNT_HELPTEXT :Determines the size of rocky patches. High values can cover a significant portion of the map. +STR_CONFIG_SETTING_HEIGHT_ROCKS :Rocks height modifier: {STRING} +STR_CONFIG_SETTING_HEIGHT_ROCKS_HELPTEXT :Determines how much rocky patch distribution is affected by height. This is cumulative with the Rocks Amount setting and works best when the Rocks amount setting is set to lower values. STR_CONFIG_SETTING_TREE_PLACER :Tree placer algorithm: {STRING2} STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Choose the distribution of trees on the map: 'Original' plants trees uniformly scattered, 'Improved' plants them in groups STR_CONFIG_SETTING_TREE_PLACER_NONE :None diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 576759eddf..b015ce2f32 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1817,6 +1817,7 @@ static SettingsContainer &GetSettingsTree() genworld->Add(new SettingEntry("game_creation.rainforest_line_height")); genworld->Add(new SettingEntry("game_creation.amount_of_rivers")); genworld->Add(new SettingEntry("game_creation.amount_of_rocks")); + genworld->Add(new SettingEntry("game_creation.height_affects_rocks")); genworld->Add(new SettingEntry("game_creation.tree_placer")); genworld->Add(new SettingEntry("vehicle.road_side")); genworld->Add(new SettingEntry("economy.larger_towns")); diff --git a/src/settings_type.h b/src/settings_type.h index c688a545e6..aa088abe6f 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -376,6 +376,7 @@ struct GameCreationSettings { byte river_route_random; ///< the amount of randomicity for the route finding byte amount_of_rivers; ///< the amount of rivers uint8 amount_of_rocks; ///< the amount of rocks + uint8 height_affects_rocks; ///< the affect that map height has on rocks }; /** Settings related to construction in-game */ diff --git a/src/table/settings.ini b/src/table/settings.ini index 2dfbde1624..26ca9e0c94 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -3763,6 +3763,19 @@ str = STR_CONFIG_SETTING_ROCKS_AMOUNT strhelp = STR_CONFIG_SETTING_ROCKS_AMOUNT_HELPTEXT strval = STR_JUST_COMMA +[SDT_VAR] +base = GameSettings +var = game_creation.height_affects_rocks +type = SLE_UINT8 +guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +def = 0 +min = 0 +max = 25 +interval = 1 +str = STR_CONFIG_SETTING_HEIGHT_ROCKS +strhelp = STR_CONFIG_SETTING_HEIGHT_ROCKS_HELPTEXT +strval = STR_JUST_COMMA + ;;game_creation.build_public_roads [SDT_NULL] length = 1