1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-15 11:03:00 +01:00

Merge simplex noise options into one

Adjust heightmap source dropdown width; keep open
This commit is contained in:
Aaron van Geffen
2024-09-12 17:44:47 +02:00
parent 9b11e69550
commit 7a7472462b
5 changed files with 62 additions and 92 deletions

View File

@@ -3751,32 +3751,31 @@ STR_6676 :At least one peep names object must be selected
STR_6677 :Add beaches around water bodies
STR_6678 :Heightmap source:
STR_6679 :Flatland
STR_6680 :Simplex noise (random)
STR_6681 :Simplex noise (custom)
STR_6682 :Heightmap file
STR_6683 :Map Generator - Generator
STR_6684 :Map Generator - Terrain
STR_6685 :Map Generator - Water
STR_6686 :Map Generator - Forests
STR_6687 :Tree to land ratio:
STR_6688 :Min. tree altitude:
STR_6689 :Max. tree altitude:
STR_6690 :{UINT16}%
STR_6691 :Minimum land height
STR_6692 :Enter min. land height between {COMMA16} and {COMMA16}
STR_6693 :Maximum land height
STR_6694 :Enter max. land height between {COMMA16} and {COMMA16}
STR_6695 :Minimum tree altitude
STR_6696 :Enter min. tree altitude between {COMMA16} and {COMMA16}
STR_6697 :Maximum tree altitude
STR_6698 :Enter max. tree altitude between {COMMA16} and {COMMA16}
STR_6699 :Tree to land ratio
STR_6700 :Enter tree to land ratio between {COMMA16} and {COMMA16}
STR_6701 :Simplex Base Frequency
STR_6702 :Enter Base Frequency between {COMMA2DP32} and {COMMA2DP32}
STR_6703 :Simplex Octaves
STR_6704 :Enter Octaves between {COMMA16} and {COMMA16}
STR_6705 :{COMMA2DP32}
STR_6680 :Simplex noise
STR_6681 :Heightmap file
STR_6682 :Map Generator - Generator
STR_6683 :Map Generator - Terrain
STR_6684 :Map Generator - Water
STR_6685 :Map Generator - Forests
STR_6686 :Tree to land ratio:
STR_6687 :Min. tree altitude:
STR_6688 :Max. tree altitude:
STR_6689 :{UINT16}%
STR_6690 :Minimum land height
STR_6691 :Enter min. land height between {COMMA16} and {COMMA16}
STR_6692 :Maximum land height
STR_6693 :Enter max. land height between {COMMA16} and {COMMA16}
STR_6694 :Minimum tree altitude
STR_6695 :Enter min. tree altitude between {COMMA16} and {COMMA16}
STR_6696 :Maximum tree altitude
STR_6697 :Enter max. tree altitude between {COMMA16} and {COMMA16}
STR_6698 :Tree to land ratio
STR_6699 :Enter tree to land ratio between {COMMA16} and {COMMA16}
STR_6700 :Simplex Base Frequency
STR_6701 :Enter Base Frequency between {COMMA2DP32} and {COMMA2DP32}
STR_6702 :Simplex Octaves
STR_6703 :Enter Octaves between {COMMA16} and {COMMA16}
STR_6704 :{COMMA2DP32}
#############
# Scenarios #

View File

@@ -36,7 +36,7 @@ namespace OpenRCT2
STR_ENTER_PARK_NAME = 1719,
STR_ENTER_SELECTION_SIZE = 5129,
STR_ERROR_INVALID_CHARACTERS = 5243,
STR_FORMAT_COMMA2DP32 = 6705,
STR_FORMAT_COMMA2DP32 = 6704,
STR_FORMAT_INTEGER = 5182,
STR_GRAPH_LABEL = 2222,
STR_LIGHTPINK_STRINGID = 5299,
@@ -897,28 +897,27 @@ namespace OpenRCT2
STR_SHOW_RIDES_STALLS_ON_MAP_TIP = 3144,
// Window: MapGen
STR_BASE_HEIGHT = 5183, // unused
STR_BASE_HEIGHT = 5183, // unused
STR_BASE_HEIGHT_LABEL = 2691, // unused
STR_BEACHES_WATER_BODIES = 6677,
STR_ENTER_BASE_FREQUENCY = 6702,
STR_ENTER_BASE_FREQUENCY = 6701,
STR_ENTER_BASE_HEIGHT = 5184, // unused
STR_ENTER_MAX_LAND = 6694,
STR_ENTER_MAX_TREE_ALTITUDE = 6698,
STR_ENTER_MIN_LAND = 6692,
STR_ENTER_MIN_TREE_ALTITUDE = 6696,
STR_ENTER_OCTAVES = 6704,
STR_ENTER_TREE_TO_LAND_RATIO = 6700,
STR_ENTER_MAX_LAND = 6693,
STR_ENTER_MAX_TREE_ALTITUDE = 6697,
STR_ENTER_MIN_LAND = 6691,
STR_ENTER_MIN_TREE_ALTITUDE = 6695,
STR_ENTER_OCTAVES = 6703,
STR_ENTER_TREE_TO_LAND_RATIO = 6699,
STR_ENTER_WATER_LEVEL = 5186,
STR_HEIGHTMAP_FILE = 6682,
STR_HEIGHTMAP_FILE = 6681,
STR_HEIGHTMAP_FLATLAND = 6679,
STR_HEIGHTMAP_SIMPLEX_CUSTOM = 6681,
STR_HEIGHTMAP_SIMPLEX_NOISE = 6680,
STR_HEIGHTMAP_SOURCE = 6678,
STR_MAPGEN_ACTION_GENERATE = 2694,
STR_MAPGEN_CAPTION_FORESTS = 6686,
STR_MAPGEN_CAPTION_GENERATOR = 6683,
STR_MAPGEN_CAPTION_TERRAIN = 6684,
STR_MAPGEN_CAPTION_WATER = 6685,
STR_MAPGEN_CAPTION_FORESTS = 6685,
STR_MAPGEN_CAPTION_GENERATOR = 6682,
STR_MAPGEN_CAPTION_TERRAIN = 6683,
STR_MAPGEN_CAPTION_WATER = 6684,
STR_MAPGEN_MAX_LAND_HEIGHT = 2687,
STR_MAPGEN_MIN_LAND_HEIGHT = 2686,
STR_MAPGEN_NORMALIZE = 6046,
@@ -931,18 +930,18 @@ namespace OpenRCT2
STR_MAPGEN_SMOOTH_HEIGHTMAP = 6044,
STR_MAPGEN_SMOOTH_STRENGTH = 6045,
STR_MAPGEN_SMOOTH_TILE = 6047,
STR_MAPGEN_TREE_MAX_ALTITUDE = 6689,
STR_MAPGEN_TREE_MIN_ALTITUDE = 6688,
STR_MAPGEN_TREE_TO_LAND_RATIO = 6687,
STR_MAPGEN_TREE_TO_LAND_RATIO_PCT = 6690,
STR_MAX_LAND_HEIGHT = 6693,
STR_MAX_TREE_ALTITUDE = 6697,
STR_MIN_LAND_HEIGHT = 6691,
STR_MIN_TREE_ALTITUDE = 6695,
STR_SIMPLEX_BASE_FREQUENCY = 6701,
STR_SIMPLEX_OCTAVES = 6703,
STR_MAPGEN_TREE_MAX_ALTITUDE = 6688,
STR_MAPGEN_TREE_MIN_ALTITUDE = 6687,
STR_MAPGEN_TREE_TO_LAND_RATIO = 6686,
STR_MAPGEN_TREE_TO_LAND_RATIO_PCT = 6689,
STR_MAX_LAND_HEIGHT = 6692,
STR_MAX_TREE_ALTITUDE = 6696,
STR_MIN_LAND_HEIGHT = 6690,
STR_MIN_TREE_ALTITUDE = 6694,
STR_SIMPLEX_BASE_FREQUENCY = 6700,
STR_SIMPLEX_OCTAVES = 6702,
STR_TERRAIN_LABEL = 2693,
STR_TREE_TO_LAND_RATIO = 6695,
STR_TREE_TO_LAND_RATIO = 6694,
STR_WATER_LEVEL = 5185,
STR_WATER_LEVEL_LABEL = 2692,

View File

@@ -287,8 +287,8 @@ namespace OpenRCT2::Ui::Windows
.beaches = true,
// Simplex Noise Parameters
.simplex_base_freq = 60,
.simplex_octaves = 4,
.simplex_base_freq = 175,
.simplex_octaves = 6,
// Height map _settings
.smooth_height_map = false,
@@ -408,6 +408,9 @@ namespace OpenRCT2::Ui::Windows
void GenerateMap()
{
if (_settings.algorithm == MapGenAlgorithm::heightmapImage && !_heightmapLoaded)
return;
MapGenSettings mapgenSettings = _settings;
if (_randomTerrain)
{
@@ -415,28 +418,6 @@ namespace OpenRCT2::Ui::Windows
mapgenSettings.edgeTexture = -1;
}
switch (mapgenSettings.algorithm)
{
case MapGenAlgorithm::blank:
break;
case MapGenAlgorithm::simplexNoise:
mapgenSettings.heightmapLow = UtilRand() % 4;
mapgenSettings.heightmapHigh = 12 + (UtilRand() % (32 - 12));
mapgenSettings.simplex_base_freq = 1.75f;
mapgenSettings.simplex_octaves = 6;
break;
case MapGenAlgorithm::simplexCustom:
mapgenSettings.simplex_base_freq /= 100.00f;
break;
case MapGenAlgorithm::heightmapImage:
if (!_heightmapLoaded)
return;
break;
}
MapGenGenerate(&mapgenSettings);
GfxInvalidateScreen();
}
@@ -470,7 +451,7 @@ namespace OpenRCT2::Ui::Windows
void BaseMouseDown(WidgetIndex widgetIndex, Widget* widget)
{
if (_settings.algorithm == MapGenAlgorithm::simplexCustom)
if (_settings.algorithm == MapGenAlgorithm::simplexNoise)
SimplexMouseDown(widgetIndex, widget);
else if (_settings.algorithm == MapGenAlgorithm::heightmapImage)
@@ -505,16 +486,15 @@ namespace OpenRCT2::Ui::Windows
constexpr ItemExt items[] = {
ToggleOption(0, STR_HEIGHTMAP_FLATLAND),
ToggleOption(1, STR_HEIGHTMAP_SIMPLEX_NOISE),
ToggleOption(2, STR_HEIGHTMAP_SIMPLEX_CUSTOM),
ToggleOption(3, STR_HEIGHTMAP_FILE),
ToggleOption(2, STR_HEIGHTMAP_FILE),
};
SetItems(items);
Widget* ddWidget = &widgets[widgetIndex - 1];
WindowDropdownShowText(
WindowDropdownShowTextCustomWidth(
{ windowPos.x + ddWidget->left, windowPos.y + ddWidget->top }, ddWidget->height() + 1, colours[1], 0,
std::size(items));
Dropdown::Flag::StayOpen, std::size(items), ddWidget->width() - 2);
SetChecked(EnumValue(_settings.algorithm), true);
break;
@@ -595,12 +575,6 @@ namespace OpenRCT2::Ui::Windows
case MapGenAlgorithm::simplexNoise:
sourceWidget.text = STR_HEIGHTMAP_SIMPLEX_NOISE;
ToggleSimplexWidgets(false);
ToggleHeightmapWidgets(false);
break;
case MapGenAlgorithm::simplexCustom:
sourceWidget.text = STR_HEIGHTMAP_SIMPLEX_CUSTOM;
ToggleSimplexWidgets(true);
ToggleHeightmapWidgets(false);
break;
@@ -645,7 +619,7 @@ namespace OpenRCT2::Ui::Windows
DrawWidgets(dpi);
DrawTabImages(dpi);
if (_settings.algorithm == MapGenAlgorithm::simplexCustom)
if (_settings.algorithm == MapGenAlgorithm::simplexNoise)
SimplexDraw(dpi);
else if (_settings.algorithm == MapGenAlgorithm::heightmapImage)

View File

@@ -110,7 +110,6 @@ void MapGenGenerate(MapGenSettings* settings)
break;
case MapGenAlgorithm::simplexNoise:
case MapGenAlgorithm::simplexCustom:
MapGenGenerateSimplex(settings);
break;
@@ -692,7 +691,7 @@ static float Grad(int32_t hash, float x, float y)
static void MapGenSimplex(MapGenSettings* settings)
{
float freq = settings->simplex_base_freq * (1.0f / _heightSize.x);
float freq = settings->simplex_base_freq / 100.0f * (1.0f / _heightSize.x);
int32_t octaves = settings->simplex_octaves;
int32_t low = settings->heightmapLow / 2;

View File

@@ -16,7 +16,6 @@ enum class MapGenAlgorithm : uint8_t
{
blank,
simplexNoise,
simplexCustom,
heightmapImage,
};
@@ -40,7 +39,7 @@ struct MapGenSettings
bool beaches;
// Simplex Noise Parameters
float simplex_base_freq;
int32_t simplex_base_freq;
int32_t simplex_octaves;
// Height map settings