diff --git a/src/clear_cmd.cpp b/src/clear_cmd.cpp index 613a686ce8..afd4090cc4 100644 --- a/src/clear_cmd.cpp +++ b/src/clear_cmd.cpp @@ -365,7 +365,7 @@ void GenerateClearTile() IncreaseGeneratingWorldProgress(GWP_ROUGH_ROCKY); if (IsTileType(tile, MP_CLEAR) && !IsClearGround(tile, CLEAR_DESERT)) { - uint j = GB(r, 16, 4) + 5; + 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; diff --git a/src/lang/english.txt b/src/lang/english.txt index 0ae457ed2f..9fa67d3e10 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1459,6 +1459,10 @@ STR_CONFIG_SETTING_VARIETY :Variety distrib STR_CONFIG_SETTING_VARIETY_HELPTEXT :(TerraGenesis only) Control whether the map contains both mountainous and flat areas. Since this only makes the map flatter, other settings should be set to mountainous STR_CONFIG_SETTING_RIVER_AMOUNT :River amount: {STRING2} STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Choose how many rivers to generate +STR_CONFIG_SETTING_ROCKS_AMOUNT :Size of rocky patches: {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 :Size of rocky patches increases with height: {STRING} +STR_CONFIG_SETTING_HEIGHT_ROCKS_HELPTEXT :Determines how much the size of rocky patches increases with height. This is cumulative with the size of rocky patches setting and works best when the size of rocky patches 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 f1c29a35a5..2a23d433c4 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1816,6 +1816,8 @@ static SettingsContainer &GetSettingsTree() genworld->Add(new SettingEntry("game_creation.snow_line_height")); 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 90f5b0ad38..3fb5005739 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -375,6 +375,8 @@ struct GameCreationSettings { byte min_river_length; ///< the minimum river length 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 93d0e2fbf4..8239739db2 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -3832,6 +3832,34 @@ str = STR_CONFIG_SETTING_RIVER_AMOUNT strhelp = STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT strval = STR_RIVERS_NONE +[SDT_VAR] +base = GameSettings +var = game_creation.amount_of_rocks +type = SLE_UINT8 +guiflags = SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO +def = 5 +min = 1 +max = 255 +interval = 1 +str = STR_CONFIG_SETTING_ROCKS_AMOUNT +strhelp = STR_CONFIG_SETTING_ROCKS_AMOUNT_HELPTEXT +strval = STR_JUST_COMMA +patxname = ""rocks.game_creation.amount_of_rocks"" + +[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 +patxname = ""rocks.game_creation.height_affects_rocks"" + ;;game_creation.build_public_roads [SDT_NULL] length = 1