Skip to content

Commit 77c6824

Browse files
committed
fixup! Store the optional Exit button into a std::optional<TitleButton*>
1 parent ceb3248 commit 77c6824

4 files changed

Lines changed: 16 additions & 13 deletions

File tree

src/games/cclcc/titlemenu.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,12 @@ TitleMenu::TitleMenu() {
144144

145145
if (HasScriptedExitLogic) {
146146
// Exit menu button (Configuration/Patch driven)
147-
Exit.emplace(new TitleButton(
147+
auto* const exitPtr = new TitleButton(
148148
5, ExitSprite, ExitSprite, ItemHighlightSprite,
149-
glm::vec2(ItemHighlightOffsetX, (ItemYBase + (5 * ItemPadding)))));
149+
glm::vec2(ItemHighlightOffsetX, (ItemYBase + (5 * ItemPadding))));
150+
Exit.emplace(*exitPtr);
150151
setupBtn(
151-
*Exit,
152+
exitPtr,
152153
[this](Widgets::Button* target) { return ExitButtonOnClick(target); },
153154
MainItems, FDIR_DOWN);
154155
}
@@ -697,7 +698,7 @@ void TitleMenu::ShowContinueItems() {
697698
Extra->Move(glm::vec2(0.0f, ItemPadding));
698699
Config->Move(glm::vec2(0.0f, ItemPadding));
699700
Help->Move(glm::vec2(0.0f, ItemPadding));
700-
if (Exit.has_value()) (*Exit)->Move(glm::vec2(0.0f, ItemPadding));
701+
if (Exit.has_value()) Exit->get().Move(glm::vec2(0.0f, ItemPadding));
701702
ContinueItems->Move(glm::vec2(Profile::DesignWidth / 2, 0.0f),
702703
SecondaryFadeAnimation.DurationOut);
703704
}
@@ -711,7 +712,7 @@ void TitleMenu::HideContinueItems() {
711712
Extra->Move(glm::vec2(0.0f, -ItemPadding));
712713
Config->Move(glm::vec2(0.0f, -ItemPadding));
713714
Help->Move(glm::vec2(0.0f, -ItemPadding));
714-
if (Exit.has_value()) (*Exit)->Move(glm::vec2(0.0f, -ItemPadding));
715+
if (Exit.has_value()) Exit->get().Move(glm::vec2(0.0f, -ItemPadding));
715716
}
716717

717718
void TitleMenu::ShowExtraItems() {
@@ -727,7 +728,7 @@ void TitleMenu::ShowExtraItems() {
727728

728729
Config->Move(glm::vec2(0, ItemPadding));
729730
Help->Move(glm::vec2(0, ItemPadding));
730-
if (Exit.has_value()) (*Exit)->Move(glm::vec2(0, ItemPadding));
731+
if (Exit.has_value()) Exit->get().Move(glm::vec2(0, ItemPadding));
731732
ExtraItems->Move({Profile::DesignWidth / 2, 0.0f},
732733
SecondaryFadeAnimation.DurationIn);
733734
}
@@ -741,7 +742,7 @@ void TitleMenu::HideExtraItems() {
741742
AllowsScriptInput = true;
742743
Config->Move(glm::vec2(0, -ItemPadding));
743744
Help->Move(glm::vec2(0, -ItemPadding));
744-
if (Exit.has_value()) (*Exit)->Move(glm::vec2(0, -ItemPadding));
745+
if (Exit.has_value()) Exit->get().Move(glm::vec2(0, -ItemPadding));
745746
Config->Enabled = true;
746747
Help->Enabled = true;
747748
}

src/games/cclcc/titlemenu.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class TitleMenu : public Menu {
4444
Widgets::CCLCC::TitleButton* Extra;
4545
Widgets::CCLCC::TitleButton* Config;
4646
Widgets::CCLCC::TitleButton* Help;
47-
std::optional<Widgets::CCLCC::TitleButton*> Exit;
47+
std::optional<std::reference_wrapper<Widgets::CCLCC::TitleButton>> Exit;
4848
Widgets::Label* MenuLabel;
4949

5050
Widgets::Group* ContinueItems;

src/games/chlcc/titlemenu.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,16 @@ TitleMenu::TitleMenu() {
9191

9292
// Exit menu button (Configuration/Patch driven)
9393
if (HasScriptedExitLogic) {
94-
Exit.emplace(
94+
auto* const exitPtr =
9595
new TitleButton(4, ExitSprite, ExitHighlightSprite, ItemHighlightSprite,
9696
glm::vec2(ItemHighlightOffset.x - 1.0f,
97-
ItemYBase - 1.0f + 4 * ItemPadding)));
98-
(*Exit)->OnClickHandler = [this](auto* btn) {
97+
ItemYBase - 1.0f + 4 * ItemPadding));
98+
exitPtr->OnClickHandler = [this](auto* btn) {
9999
return ExitButtonOnClick(btn);
100100
};
101-
MainItems->Add(*Exit, FDIR_DOWN);
101+
102+
Exit.emplace(*exitPtr);
103+
MainItems->Add(exitPtr, FDIR_DOWN);
102104
}
103105

104106
// Quick Load secondary Load menu button

src/games/chlcc/titlemenu.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class TitleMenu : public Menu {
5454
Widgets::CHLCC::TitleButton* Load;
5555
Widgets::CHLCC::TitleButton* Extra;
5656
Widgets::CHLCC::TitleButton* System;
57-
std::optional<Widgets::CHLCC::TitleButton*> Exit;
57+
std::optional<std::reference_wrapper<Widgets::CHLCC::TitleButton>> Exit;
5858

5959
Widgets::Group* LoadItems;
6060
Widgets::CHLCC::TitleButton* SubLoad;

0 commit comments

Comments
 (0)