mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-26 16:24:35 +01:00
Consolitate simplex and heightmap settings in generator tab
This commit is contained in:
@@ -32,8 +32,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
WINDOW_MAPGEN_PAGE_BASE,
|
||||
WINDOW_MAPGEN_PAGE_RANDOM,
|
||||
WINDOW_MAPGEN_PAGE_SIMPLEX,
|
||||
WINDOW_MAPGEN_PAGE_HEIGHTMAP,
|
||||
WINDOW_MAPGEN_PAGE_TERRAIN,
|
||||
WINDOW_MAPGEN_PAGE_WATER,
|
||||
WINDOW_MAPGEN_PAGE_COUNT
|
||||
@@ -49,8 +47,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
WIDX_TAB_2,
|
||||
WIDX_TAB_3,
|
||||
WIDX_TAB_4,
|
||||
WIDX_TAB_5,
|
||||
WIDX_TAB_6,
|
||||
WIDX_MAP_GENERATE,
|
||||
|
||||
TAB_BEGIN,
|
||||
@@ -65,9 +61,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
WIDX_HEIGHTMAP_SOURCE,
|
||||
WIDX_HEIGHTMAP_SOURCE_DROPDOWN,
|
||||
|
||||
WIDX_RANDOM_PLACE_TREES = TAB_BEGIN,
|
||||
|
||||
WIDX_SIMPLEX_LABEL = TAB_BEGIN,
|
||||
WIDX_SIMPLEX_GROUP,
|
||||
WIDX_SIMPLEX_BASE_FREQ,
|
||||
WIDX_SIMPLEX_BASE_FREQ_UP,
|
||||
WIDX_SIMPLEX_BASE_FREQ_DOWN,
|
||||
@@ -75,12 +69,15 @@ namespace OpenRCT2::Ui::Windows
|
||||
WIDX_SIMPLEX_OCTAVES_UP,
|
||||
WIDX_SIMPLEX_OCTAVES_DOWN,
|
||||
|
||||
WIDX_HEIGHTMAP_SELECT = TAB_BEGIN,
|
||||
WIDX_HEIGHTMAP_GROUP,
|
||||
WIDX_HEIGHTMAP_SELECT,
|
||||
WIDX_HEIGHTMAP_NORMALIZE,
|
||||
WIDX_HEIGHTMAP_SMOOTH_HEIGHTMAP,
|
||||
WIDX_HEIGHTMAP_STRENGTH,
|
||||
WIDX_HEIGHTMAP_STRENGTH_UP,
|
||||
WIDX_HEIGHTMAP_STRENGTH_DOWN,
|
||||
WIDX_HEIGHTMAP_NORMALIZE,
|
||||
|
||||
WIDX_RANDOM_PLACE_TREES = TAB_BEGIN,
|
||||
|
||||
WIDX_BASE_HEIGHT = TAB_BEGIN,
|
||||
WIDX_BASE_HEIGHT_UP,
|
||||
@@ -115,8 +112,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
MakeTab({ 34, 17 }), /* WIDX_TAB_2 */ \
|
||||
MakeTab({ 65, 17 }), /* WIDX_TAB_3 */ \
|
||||
MakeTab({ 96, 17 }), /* WIDX_TAB_4 */ \
|
||||
MakeTab({ 127, 17 }), /* WIDX_TAB_5 */ \
|
||||
MakeTab({ 158, 17 }), /* WIDX_TAB_6 */ \
|
||||
MakeWidget({ 155, 255 }, { 90, 14 }, WindowWidgetType::Button, WindowColour::Secondary, STR_MAPGEN_ACTION_GENERATE)
|
||||
|
||||
// clang-format off
|
||||
@@ -126,6 +121,16 @@ namespace OpenRCT2::Ui::Windows
|
||||
MakeWidget ({155, 52}, { 21, 12}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_G2_LINK_CHAIN), STR_MAINTAIN_SQUARE_MAP_TOOLTIP),
|
||||
MakeSpinnerWidgets ({177, 52}, { 50, 12}, WindowWidgetType::Spinner, WindowColour::Secondary, STR_POP16_COMMA16 ), // NB: 3 widgets
|
||||
MakeDropdownWidgets({104, 70}, {123, 14}, WindowWidgetType::DropdownMenu, WindowColour::Secondary, STR_HEIGHTMAP_FLATLAND ),
|
||||
|
||||
MakeWidget ({ 5, 90}, {240, 60}, WindowWidgetType::Groupbox, WindowColour::Secondary, STR_MAPGEN_SIMPLEX_NOISE), // WIDX_SIMPLEX_GROUP
|
||||
MakeSpinnerWidgets({104, 107}, { 95, 12}, WindowWidgetType::Spinner, WindowColour::Secondary ), // WIDX_SIMPLEX_BASE_FREQ{,_UP,_DOWN}
|
||||
MakeSpinnerWidgets({104, 125}, { 95, 12}, WindowWidgetType::Spinner, WindowColour::Secondary ), // WIDX_SIMPLEX_OCTAVES{,_UP,_DOWN}
|
||||
|
||||
MakeWidget ({ 5, 90}, {240, 88}, WindowWidgetType::Groupbox, WindowColour::Secondary, STR_MAPGEN_SELECT_HEIGHTMAP), // WIDX_HEIGHTMAP_GROUP
|
||||
MakeWidget ({115, 107}, {120, 14}, WindowWidgetType::Button, WindowColour::Secondary, STR_MAPGEN_SELECT_HEIGHTMAP), // WIDX_HEIGHTMAP_SELECT
|
||||
MakeWidget ({ 4, 107}, {100, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_MAPGEN_NORMALIZE ), // WIDX_HEIGHTMAP_NORMALIZE
|
||||
MakeWidget ({ 4, 125}, {100, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_MAPGEN_SMOOTH_HEIGHTMAP), // WIDX_HEIGHTMAP_SMOOTH_HEIGHTMAP
|
||||
MakeSpinnerWidgets({104, 143}, { 95, 12}, WindowWidgetType::Spinner, WindowColour::Secondary ), // WIDX_HEIGHTMAP_STRENGTH{,_UP,_DOWN}
|
||||
kWidgetsEnd,
|
||||
};
|
||||
|
||||
@@ -135,23 +140,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
kWidgetsEnd,
|
||||
};
|
||||
|
||||
static Widget SimplexWidgets[] = {
|
||||
SHARED_WIDGETS,
|
||||
MakeWidget ({ 4, 52}, {195, 12}, WindowWidgetType::LabelCentred, WindowColour::Secondary, STR_MAPGEN_SIMPLEX_NOISE ), // WIDX_SIMPLEX_LABEL
|
||||
MakeSpinnerWidgets({104, 70}, { 95, 12}, WindowWidgetType::Spinner, WindowColour::Secondary ), // WIDX_SIMPLEX_BASE_FREQ{,_UP,_DOWN}
|
||||
MakeSpinnerWidgets({104, 88}, { 95, 12}, WindowWidgetType::Spinner, WindowColour::Secondary ), // WIDX_SIMPLEX_OCTAVES{,_UP,_DOWN}
|
||||
kWidgetsEnd,
|
||||
};
|
||||
|
||||
static Widget HeightmapWidgets[] = {
|
||||
SHARED_WIDGETS,
|
||||
MakeWidget ({ 95, 255}, {150, 14}, WindowWidgetType::Button, WindowColour::Secondary, STR_MAPGEN_SELECT_HEIGHTMAP), // WIDX_HEIGHTMAP_SELECT
|
||||
MakeWidget ({ 4, 52}, {100, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_MAPGEN_SMOOTH_HEIGHTMAP), // WIDX_HEIGHTMAP_SMOOTH_HEIGHTMAP
|
||||
MakeSpinnerWidgets({104, 70}, { 95, 12}, WindowWidgetType::Spinner, WindowColour::Secondary ), // WIDX_HEIGHTMAP_STRENGTH{,_UP,_DOWN}
|
||||
MakeWidget ({ 4, 88}, {100, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_MAPGEN_NORMALIZE ), // WIDX_HEIGHTMAP_NORMALIZE
|
||||
kWidgetsEnd,
|
||||
};
|
||||
|
||||
static Widget TerrainWidgets[] = {
|
||||
SHARED_WIDGETS,
|
||||
MakeSpinnerWidgets({104, 52}, {95, 12}, WindowWidgetType::Spinner, WindowColour::Secondary ), // NB: 3 widgets
|
||||
@@ -174,8 +162,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
static Widget* PageWidgets[WINDOW_MAPGEN_PAGE_COUNT] = {
|
||||
BaseWidgets,
|
||||
RandomWidgets,
|
||||
SimplexWidgets,
|
||||
HeightmapWidgets,
|
||||
TerrainWidgets,
|
||||
WaterWidgets,
|
||||
};
|
||||
@@ -187,35 +173,33 @@ namespace OpenRCT2::Ui::Windows
|
||||
|
||||
// clang-format off
|
||||
static uint64_t PageDisabledWidgets[WINDOW_MAPGEN_PAGE_COUNT] = {
|
||||
0,
|
||||
|
||||
0,
|
||||
|
||||
0,
|
||||
|
||||
(1uLL << WIDX_HEIGHTMAP_SMOOTH_HEIGHTMAP) |
|
||||
(1uLL << WIDX_HEIGHTMAP_STRENGTH) |
|
||||
(1uLL << WIDX_HEIGHTMAP_STRENGTH_UP) |
|
||||
(1uLL << WIDX_HEIGHTMAP_STRENGTH_DOWN) |
|
||||
(1uLL << WIDX_HEIGHTMAP_NORMALIZE)
|
||||
(1uLL << WIDX_HEIGHTMAP_NORMALIZE),
|
||||
|
||||
0,
|
||||
|
||||
0,
|
||||
|
||||
0
|
||||
};
|
||||
|
||||
static uint64_t HoldDownWidgets[WINDOW_MAPGEN_PAGE_COUNT] = {
|
||||
(1uLL << WIDX_MAP_SIZE_Y_UP) |
|
||||
(1uLL << WIDX_MAP_SIZE_Y_DOWN) |
|
||||
(1uLL << WIDX_MAP_SIZE_X_UP) |
|
||||
(1uLL << WIDX_MAP_SIZE_X_DOWN),
|
||||
|
||||
0,
|
||||
|
||||
(1uLL << WIDX_MAP_SIZE_X_DOWN) |
|
||||
(1uLL << WIDX_SIMPLEX_BASE_FREQ_UP) |
|
||||
(1uLL << WIDX_SIMPLEX_BASE_FREQ_DOWN) |
|
||||
(1uLL << WIDX_SIMPLEX_OCTAVES_UP) |
|
||||
(1uLL << WIDX_SIMPLEX_OCTAVES_DOWN),
|
||||
|
||||
(1uLL << WIDX_SIMPLEX_OCTAVES_DOWN) |
|
||||
(1uLL << WIDX_HEIGHTMAP_STRENGTH_UP) |
|
||||
(1uLL << WIDX_HEIGHTMAP_STRENGTH_DOWN),
|
||||
|
||||
0,
|
||||
|
||||
(1uLL << WIDX_BASE_HEIGHT_UP) |
|
||||
(1uLL << WIDX_BASE_HEIGHT_DOWN) |
|
||||
(1uLL << WIDX_HEIGHTMAP_LOW_UP) |
|
||||
@@ -228,8 +212,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
};
|
||||
|
||||
static uint64_t PressedWidgets[WINDOW_MAPGEN_PAGE_COUNT] = {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
(1uLL << WIDX_HEIGHTMAP_SMOOTH_TILE_EDGES),
|
||||
@@ -245,22 +227,16 @@ namespace OpenRCT2::Ui::Windows
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
};
|
||||
static constexpr int32_t TabAnimationFrames[WINDOW_MAPGEN_PAGE_COUNT] = {
|
||||
4,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
};
|
||||
static constexpr int32_t TabAnimationLoops[WINDOW_MAPGEN_PAGE_COUNT] = {
|
||||
16,
|
||||
16,
|
||||
16,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
};
|
||||
@@ -328,7 +304,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
pressed_widgets = PressedWidgets[newPage];
|
||||
|
||||
// Enable heightmap widgets if one is loaded
|
||||
if (newPage == WINDOW_MAPGEN_PAGE_HEIGHTMAP && _heightmapLoaded)
|
||||
if (_settings.algorithm == MapGenAlgorithm::heightmapImage && _heightmapLoaded)
|
||||
{
|
||||
SetWidgetEnabled(WIDX_HEIGHTMAP_SMOOTH_HEIGHTMAP, true);
|
||||
SetWidgetEnabled(WIDX_HEIGHTMAP_STRENGTH, _settings.smooth_height_map);
|
||||
@@ -370,8 +346,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
DrawTabImage(dpi, WINDOW_MAPGEN_PAGE_BASE, SPR_TAB_GEARS_0);
|
||||
DrawTabImage(dpi, WINDOW_MAPGEN_PAGE_RANDOM, SPR_G2_TAB_TREE);
|
||||
DrawTabImage(dpi, WINDOW_MAPGEN_PAGE_SIMPLEX, SPR_G2_TAB_PENCIL);
|
||||
DrawTabImage(dpi, WINDOW_MAPGEN_PAGE_HEIGHTMAP, SPR_TAB_GRAPH_0);
|
||||
DrawTabImage(dpi, WINDOW_MAPGEN_PAGE_TERRAIN, SPR_G2_TAB_LAND);
|
||||
DrawTabImage(dpi, WINDOW_MAPGEN_PAGE_WATER, SPR_TAB_WATER);
|
||||
}
|
||||
@@ -417,8 +391,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
case WIDX_TAB_2:
|
||||
case WIDX_TAB_3:
|
||||
case WIDX_TAB_4:
|
||||
case WIDX_TAB_5:
|
||||
case WIDX_TAB_6:
|
||||
SetPage(widgetIndex - WIDX_TAB_1);
|
||||
break;
|
||||
case WIDX_MAP_GENERATE:
|
||||
@@ -478,6 +450,9 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
SharedMouseUp(widgetIndex);
|
||||
|
||||
if (_settings.algorithm == MapGenAlgorithm::heightmapImage)
|
||||
HeightmapMouseUp(widgetIndex);
|
||||
|
||||
switch (widgetIndex)
|
||||
{
|
||||
case WIDX_MAP_SIZE_Y:
|
||||
@@ -496,6 +471,12 @@ namespace OpenRCT2::Ui::Windows
|
||||
|
||||
void BaseMouseDown(WidgetIndex widgetIndex, Widget* widget)
|
||||
{
|
||||
if (_settings.algorithm == MapGenAlgorithm::simplexCustom)
|
||||
SimplexMouseDown(widgetIndex, widget);
|
||||
|
||||
else if (_settings.algorithm == MapGenAlgorithm::heightmapImage)
|
||||
HeightmapMouseDown(widgetIndex, widget);
|
||||
|
||||
switch (widgetIndex)
|
||||
{
|
||||
case WIDX_MAP_SIZE_Y_UP:
|
||||
@@ -617,27 +598,68 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
case MapGenAlgorithm::blank:
|
||||
sourceWidget.text = STR_HEIGHTMAP_FLATLAND;
|
||||
ToggleSimplexWidgets(false);
|
||||
ToggleHeightmapWidgets(false);
|
||||
break;
|
||||
|
||||
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;
|
||||
|
||||
case MapGenAlgorithm::heightmapImage:
|
||||
sourceWidget.text = STR_HEIGHTMAP_FILE;
|
||||
ToggleSimplexWidgets(false);
|
||||
ToggleHeightmapWidgets(true);
|
||||
HeightmapPrepareDraw();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ToggleSimplexWidgets(bool state)
|
||||
{
|
||||
// clang-format off
|
||||
BaseWidgets[WIDX_SIMPLEX_GROUP].type = state ? WindowWidgetType::Groupbox : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_SIMPLEX_BASE_FREQ].type = state ? WindowWidgetType::Spinner : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_SIMPLEX_BASE_FREQ_UP].type = state ? WindowWidgetType::Button : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_SIMPLEX_BASE_FREQ_DOWN].type = state ? WindowWidgetType::Button : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_SIMPLEX_OCTAVES].type = state ? WindowWidgetType::Spinner : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_SIMPLEX_OCTAVES_UP].type = state ? WindowWidgetType::Button : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_SIMPLEX_OCTAVES_DOWN].type = state ? WindowWidgetType::Button : WindowWidgetType::Empty;
|
||||
// clang-format on
|
||||
}
|
||||
|
||||
void ToggleHeightmapWidgets(bool state)
|
||||
{
|
||||
// clang-format off
|
||||
BaseWidgets[WIDX_HEIGHTMAP_GROUP].type = state ? WindowWidgetType::Groupbox : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_HEIGHTMAP_SELECT].type = state ? WindowWidgetType::Button : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_HEIGHTMAP_NORMALIZE].type = state ? WindowWidgetType::Checkbox : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_HEIGHTMAP_SMOOTH_HEIGHTMAP].type = state ? WindowWidgetType::Checkbox : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_HEIGHTMAP_STRENGTH].type = state ? WindowWidgetType::Spinner : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_HEIGHTMAP_STRENGTH_UP].type = state ? WindowWidgetType::Button : WindowWidgetType::Empty;
|
||||
BaseWidgets[WIDX_HEIGHTMAP_STRENGTH_DOWN].type = state ? WindowWidgetType::Button : WindowWidgetType::Empty;
|
||||
// clang-format on
|
||||
}
|
||||
|
||||
void BaseDraw(DrawPixelInfo& dpi)
|
||||
{
|
||||
DrawWidgets(dpi);
|
||||
DrawTabImages(dpi);
|
||||
|
||||
if (_settings.algorithm == MapGenAlgorithm::simplexCustom)
|
||||
SimplexDraw(dpi);
|
||||
|
||||
else if (_settings.algorithm == MapGenAlgorithm::heightmapImage)
|
||||
HeightmapDraw(dpi);
|
||||
|
||||
const auto textColour = colours[1];
|
||||
|
||||
DrawTextBasic(
|
||||
@@ -695,12 +717,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Simplex page
|
||||
|
||||
void SimplexMouseUp(WidgetIndex widgetIndex)
|
||||
{
|
||||
SharedMouseUp(widgetIndex);
|
||||
}
|
||||
#pragma region Simplex settings, part of generator tab
|
||||
|
||||
void SimplexMouseDown(WidgetIndex widgetIndex, Widget* widget)
|
||||
{
|
||||
@@ -725,25 +742,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
}
|
||||
}
|
||||
|
||||
void SimplexUpdate()
|
||||
{
|
||||
// Tab animation
|
||||
if (++frame_no >= TabAnimationLoops[page])
|
||||
frame_no = 0;
|
||||
InvalidateWidget(WIDX_TAB_3);
|
||||
}
|
||||
|
||||
void SimplexPrepareDraw()
|
||||
{
|
||||
if (widgets != PageWidgets[WINDOW_MAPGEN_PAGE_SIMPLEX])
|
||||
{
|
||||
widgets = PageWidgets[WINDOW_MAPGEN_PAGE_SIMPLEX];
|
||||
InitScrollWidgets();
|
||||
}
|
||||
|
||||
SetPressedTab();
|
||||
}
|
||||
|
||||
void SimplexDraw(DrawPixelInfo& dpi)
|
||||
{
|
||||
DrawWidgets(dpi);
|
||||
@@ -775,7 +773,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Heightmap page
|
||||
#pragma region Heightmap settings, part of generator tab
|
||||
|
||||
void HeightmapMouseDown(WidgetIndex widgetIndex, Widget* widget)
|
||||
{
|
||||
@@ -794,20 +792,8 @@ namespace OpenRCT2::Ui::Windows
|
||||
|
||||
void HeightmapMouseUp(WidgetIndex widgetIndex)
|
||||
{
|
||||
SharedMouseUp(widgetIndex);
|
||||
|
||||
switch (widgetIndex)
|
||||
{
|
||||
case WIDX_CLOSE:
|
||||
case WIDX_TAB_1:
|
||||
case WIDX_TAB_2:
|
||||
case WIDX_TAB_3:
|
||||
case WIDX_TAB_4:
|
||||
case WIDX_TAB_5:
|
||||
case WIDX_TAB_6:
|
||||
case WIDX_MAP_GENERATE:
|
||||
return; // Only widgets that change a setting need to regenerate the map
|
||||
|
||||
// Page widgets
|
||||
case WIDX_HEIGHTMAP_SELECT:
|
||||
{
|
||||
@@ -832,30 +818,16 @@ namespace OpenRCT2::Ui::Windows
|
||||
InvalidateWidget(WIDX_HEIGHTMAP_NORMALIZE);
|
||||
break;
|
||||
}
|
||||
|
||||
// Always regenerate the map after one of the page widgets has been changed
|
||||
GenerateMap();
|
||||
}
|
||||
|
||||
void HeightmapPrepareDraw()
|
||||
{
|
||||
if (widgets != PageWidgets[WINDOW_MAPGEN_PAGE_HEIGHTMAP])
|
||||
{
|
||||
widgets = PageWidgets[WINDOW_MAPGEN_PAGE_HEIGHTMAP];
|
||||
InitScrollWidgets();
|
||||
}
|
||||
|
||||
SetCheckboxValue(WIDX_HEIGHTMAP_SMOOTH_HEIGHTMAP, _settings.smooth_height_map);
|
||||
SetCheckboxValue(WIDX_HEIGHTMAP_NORMALIZE, _settings.normalize_height);
|
||||
|
||||
SetPressedTab();
|
||||
}
|
||||
|
||||
void HeightmapDraw(DrawPixelInfo& dpi)
|
||||
{
|
||||
DrawWidgets(dpi);
|
||||
DrawTabImages(dpi);
|
||||
|
||||
const auto enabledColour = colours[1];
|
||||
const auto disabledColour = enabledColour.withFlag(ColourFlag::inset, true);
|
||||
|
||||
@@ -950,7 +922,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
// Tab animation
|
||||
if (++frame_no >= TabAnimationLoops[page])
|
||||
frame_no = 0;
|
||||
InvalidateWidget(WIDX_TAB_5);
|
||||
InvalidateWidget(WIDX_TAB_3);
|
||||
}
|
||||
|
||||
void TerrainTextInput(WidgetIndex widgetIndex, std::string_view text)
|
||||
@@ -1191,7 +1163,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
// Tab animation
|
||||
if (++frame_no >= TabAnimationLoops[page])
|
||||
frame_no = 0;
|
||||
InvalidateWidget(WIDX_TAB_6);
|
||||
InvalidateWidget(WIDX_TAB_4);
|
||||
}
|
||||
|
||||
void WaterTextInput(WidgetIndex widgetIndex, std::string_view text)
|
||||
@@ -1280,10 +1252,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
return BaseMouseUp(widgetIndex);
|
||||
case WINDOW_MAPGEN_PAGE_RANDOM:
|
||||
return RandomMouseUp(widgetIndex);
|
||||
case WINDOW_MAPGEN_PAGE_SIMPLEX:
|
||||
return SimplexMouseUp(widgetIndex);
|
||||
case WINDOW_MAPGEN_PAGE_HEIGHTMAP:
|
||||
return HeightmapMouseUp(widgetIndex);
|
||||
case WINDOW_MAPGEN_PAGE_TERRAIN:
|
||||
return TerrainMouseUp(widgetIndex);
|
||||
case WINDOW_MAPGEN_PAGE_WATER:
|
||||
@@ -1297,10 +1265,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
case WINDOW_MAPGEN_PAGE_BASE:
|
||||
return BaseMouseDown(widgetIndex, &widgets[widgetIndex]);
|
||||
case WINDOW_MAPGEN_PAGE_SIMPLEX:
|
||||
return SimplexMouseDown(widgetIndex, &widgets[widgetIndex]);
|
||||
case WINDOW_MAPGEN_PAGE_HEIGHTMAP:
|
||||
return HeightmapMouseDown(widgetIndex, &widgets[widgetIndex]);
|
||||
case WINDOW_MAPGEN_PAGE_TERRAIN:
|
||||
return TerrainMouseDown(widgetIndex, &widgets[widgetIndex]);
|
||||
case WINDOW_MAPGEN_PAGE_WATER:
|
||||
@@ -1327,10 +1291,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
return BaseUpdate();
|
||||
case WINDOW_MAPGEN_PAGE_RANDOM:
|
||||
return RandomUpdate();
|
||||
case WINDOW_MAPGEN_PAGE_SIMPLEX:
|
||||
return SimplexUpdate();
|
||||
case WINDOW_MAPGEN_PAGE_TERRAIN:
|
||||
return TerrainUpdate();
|
||||
case WINDOW_MAPGEN_PAGE_WATER:
|
||||
return WaterUpdate();
|
||||
}
|
||||
@@ -1338,16 +1298,15 @@ namespace OpenRCT2::Ui::Windows
|
||||
|
||||
void OnPrepareDraw() override
|
||||
{
|
||||
bool isHeightMapImage = _settings.algorithm == MapGenAlgorithm::heightmapImage;
|
||||
SetWidgetDisabled(WIDX_MAP_GENERATE, isHeightMapImage && !_heightmapLoaded);
|
||||
|
||||
switch (page)
|
||||
{
|
||||
case WINDOW_MAPGEN_PAGE_BASE:
|
||||
return BasePrepareDraw();
|
||||
case WINDOW_MAPGEN_PAGE_RANDOM:
|
||||
return RandomPrepareDraw();
|
||||
case WINDOW_MAPGEN_PAGE_SIMPLEX:
|
||||
return SimplexPrepareDraw();
|
||||
case WINDOW_MAPGEN_PAGE_HEIGHTMAP:
|
||||
return HeightmapPrepareDraw();
|
||||
case WINDOW_MAPGEN_PAGE_TERRAIN:
|
||||
return TerrainPrepareDraw();
|
||||
case WINDOW_MAPGEN_PAGE_WATER:
|
||||
@@ -1363,10 +1322,6 @@ namespace OpenRCT2::Ui::Windows
|
||||
return BaseDraw(dpi);
|
||||
case WINDOW_MAPGEN_PAGE_RANDOM:
|
||||
return RandomDraw(dpi);
|
||||
case WINDOW_MAPGEN_PAGE_SIMPLEX:
|
||||
return SimplexDraw(dpi);
|
||||
case WINDOW_MAPGEN_PAGE_HEIGHTMAP:
|
||||
return HeightmapDraw(dpi);
|
||||
case WINDOW_MAPGEN_PAGE_TERRAIN:
|
||||
return TerrainDraw(dpi);
|
||||
case WINDOW_MAPGEN_PAGE_WATER:
|
||||
@@ -1399,9 +1354,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
|
||||
// The window needs to be open while using the map
|
||||
_heightmapLoaded = true;
|
||||
SetPage(WINDOW_MAPGEN_PAGE_HEIGHTMAP);
|
||||
|
||||
GenerateMap();
|
||||
SetPage(WINDOW_MAPGEN_PAGE_BASE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user