1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-23 14:54:30 +01:00

Move 'hard park rating' option to objective tab

This commit is contained in:
Aaron van Geffen
2025-03-13 19:15:31 +01:00
parent d4478e7814
commit e2d4a25c8a

View File

@@ -38,13 +38,13 @@
namespace OpenRCT2::Ui::Windows
{
static constexpr int32_t WW_OBJECTIVE = 450;
static constexpr int32_t WH_OBJECTIVE = 109;
static constexpr int32_t WH_OBJECTIVE = 122;
static constexpr int32_t WW_SCENARIO_DETAILS = 450;
static constexpr int32_t WH_SCENARIO_DETAILS = 169;
static constexpr int32_t WW_FINANCIAL = 380;
static constexpr int32_t WH_FINANCIAL = 260;
static constexpr int32_t WH_FINANCIAL = 243;
static constexpr int32_t WW_GUESTS = 380;
static constexpr int32_t WH_GUESTS = 154;
@@ -131,6 +131,7 @@ namespace OpenRCT2::Ui::Windows
WIDX_OBJECTIVE_ARG_2,
WIDX_OBJECTIVE_ARG_2_INCREASE,
WIDX_OBJECTIVE_ARG_2_DECREASE,
WIDX_HARD_PARK_RATING,
// Scenario details tab
WIDX_PARK_NAME = WIDX_PAGE_START,
@@ -162,7 +163,6 @@ namespace OpenRCT2::Ui::Windows
WIDX_ENTRY_PRICE_INCREASE,
WIDX_ENTRY_PRICE_DECREASE,
WIDX_FORBID_MARKETING,
WIDX_HARD_PARK_RATING,
WIDX_RCT1_INTEREST,
// Guests tab
@@ -212,6 +212,7 @@ namespace OpenRCT2::Ui::Windows
MakeWidget ({430, 49}, { 11, 10}, WindowWidgetType::Button, WindowColour::Secondary, STR_DROPDOWN_GLYPH, STR_SELECT_OBJECTIVE_FOR_THIS_SCENARIO_TIP ),
MakeSpinnerWidgets({158, 65}, {120, 12}, WindowWidgetType::Button, WindowColour::Secondary ), // NB: 3 widgets
MakeSpinnerWidgets({158, 82}, {120, 12}, WindowWidgetType::Button, WindowColour::Secondary ), // NB: 3 widgets
MakeWidget ({ 15, 99}, {340, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_HARD_PARK_RATING, STR_HARD_PARK_RATING_TIP ),
};
static constexpr Widget window_editor_scenario_options_scenario_details_widgets[] = {
@@ -237,8 +238,7 @@ namespace OpenRCT2::Ui::Windows
MakeWidget ({356, 168}, { 11, 10}, WindowWidgetType::Button, WindowColour::Secondary, STR_DROPDOWN_GLYPH, STR_PAY_FOR_PARK_PAY_FOR_RIDES_TIP),
MakeSpinnerWidgets({298, 184}, { 70, 12}, WindowWidgetType::Spinner, WindowColour::Secondary ), // NB: 3 widgets
MakeWidget ({ 8, 209}, {WW_FINANCIAL - 16, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_FORBID_MARKETING, STR_FORBID_MARKETING_TIP ),
MakeWidget ({ 8, 226}, {WW_FINANCIAL - 16, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_HARD_PARK_RATING, STR_HARD_PARK_RATING_TIP ),
MakeWidget ({ 8, 243}, {WW_FINANCIAL - 16, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_RCT1_INTEREST, STR_RCT1_INTEREST_TIP ),
MakeWidget ({ 8, 226}, {WW_FINANCIAL - 16, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_RCT1_INTEREST, STR_RCT1_INTEREST_TIP ),
};
static constexpr Widget window_editor_scenario_options_guests_widgets[] = {
@@ -345,6 +345,8 @@ namespace OpenRCT2::Ui::Windows
switch (page)
{
case WINDOW_EDITOR_SCENARIO_OPTIONS_PAGE_OBJECTIVE:
return ObjectiveOnMouseUp(widgetIndex);
case WINDOW_EDITOR_SCENARIO_OPTIONS_PAGE_SCENARIO_DETAILS:
return ScenarioDetailsOnMouseUp(widgetIndex);
case WINDOW_EDITOR_SCENARIO_OPTIONS_PAGE_FINANCIAL:
@@ -886,6 +888,23 @@ namespace OpenRCT2::Ui::Windows
WindowSetResize(*this, { WW_OBJECTIVE, WH_OBJECTIVE }, { WW_OBJECTIVE, WH_OBJECTIVE });
}
void ObjectiveOnMouseUp(WidgetIndex widgetIndex)
{
switch (widgetIndex)
{
case WIDX_HARD_PARK_RATING:
{
auto& gameState = getGameState();
auto scenarioSetSetting = ScenarioSetSettingAction(
ScenarioSetSetting::ParkRatingHigherDifficultyLevel,
gameState.park.Flags & PARK_FLAGS_DIFFICULT_PARK_RATING ? 0 : 1);
GameActions::Execute(&scenarioSetSetting);
Invalidate();
break;
}
}
}
/**
*
* rct2: 0x00671A0D
@@ -1009,6 +1028,8 @@ namespace OpenRCT2::Ui::Windows
widgets[WIDX_CLOSE].type = gLegacyScene == LegacyScene::scenarioEditor ? WindowWidgetType::Empty
: WindowWidgetType::CloseBox;
SetWidgetPressed(WIDX_HARD_PARK_RATING, gameState.park.Flags & PARK_FLAGS_DIFFICULT_PARK_RATING);
AnchorBorderWidgets();
}
@@ -1312,15 +1333,6 @@ namespace OpenRCT2::Ui::Windows
Invalidate();
break;
}
case WIDX_HARD_PARK_RATING:
{
auto scenarioSetSetting = ScenarioSetSettingAction(
ScenarioSetSetting::ParkRatingHigherDifficultyLevel,
gameState.park.Flags & PARK_FLAGS_DIFFICULT_PARK_RATING ? 0 : 1);
GameActions::Execute(&scenarioSetSetting);
Invalidate();
break;
}
}
}
@@ -1558,7 +1570,6 @@ namespace OpenRCT2::Ui::Windows
widgets[WIDX_ENTRY_PRICE_INCREASE].type = WindowWidgetType::Button;
widgets[WIDX_ENTRY_PRICE_DECREASE].type = WindowWidgetType::Button;
widgets[WIDX_FORBID_MARKETING].type = WindowWidgetType::Checkbox;
widgets[WIDX_HARD_PARK_RATING].type = WindowWidgetType::Checkbox;
widgets[WIDX_RCT1_INTEREST].type = WindowWidgetType::Checkbox;
if (!Park::EntranceFeeUnlocked())
@@ -1586,7 +1597,6 @@ namespace OpenRCT2::Ui::Windows
}
SetWidgetPressed(WIDX_FORBID_MARKETING, gameState.park.Flags & PARK_FLAGS_FORBID_MARKETING_CAMPAIGN);
SetWidgetPressed(WIDX_HARD_PARK_RATING, gameState.park.Flags & PARK_FLAGS_DIFFICULT_PARK_RATING);
widgets[WIDX_CLOSE].type = gLegacyScene == LegacyScene::scenarioEditor ? WindowWidgetType::Empty
: WindowWidgetType::CloseBox;