@@ -9,39 +9,36 @@ using namespace horrible::prelude;
99
1010class OptionItem ::Impl final {
1111public:
12- bool s_compatible = false ; // If this option is compatible with the current platform
12+ bool compatible = false ; // If this option is compatible with the current platform
1313
1414 // The option
15- Option m_option = {
15+ Option option = {
1616 " unk" _spr,
1717 " Unknown Option" ,
1818 " No description provided." ,
1919 " General"
2020 };
2121
22- CCMenuItemToggler* m_toggler = nullptr ; // The toggler for the option
23- };
24-
25- OptionItem::OptionItem () {
26- m_impl = std::make_unique<Impl>();
22+ CCMenuItemToggler* toggler = nullptr ; // The toggler for the option
2723};
2824
25+ OptionItem::OptionItem () : m_impl(std::make_unique<Impl>()) {};
2926OptionItem::~OptionItem () {};
3027
3128bool OptionItem::init (CCSize const & size, Option option) {
32- m_impl->m_option = std::move (option);
29+ m_impl->option = std::move (option);
3330
3431 // check for compatibility
35- for (auto const & p : m_impl->m_option .platforms ) {
32+ for (auto const & p : m_impl->option .platforms ) {
3633 if (p & GEODE_PLATFORM_TARGET) {
37- m_impl->s_compatible = true ;
34+ m_impl->compatible = true ;
3835 break ;
3936 };
4037 };
4138
4239 if (!CCMenu::init ()) return false ;
4340
44- setID (m_impl->m_option .id );
41+ setID (m_impl->option .id );
4542 setContentSize (size);
4643 setAnchorPoint ({ 0.5 , 1 });
4744
@@ -66,27 +63,27 @@ bool OptionItem::init(CCSize const& size, Option option) {
6663 togglerOn->setScale (0 .875f );
6764
6865 // toggler for the option
69- m_impl->m_toggler = CCMenuItemToggler::create (
66+ m_impl->toggler = CCMenuItemToggler::create (
7067 togglerOff,
7168 togglerOn,
7269 this ,
7370 menu_selector (OptionItem::onToggle)
7471 );
75- m_impl->m_toggler ->setID (" toggler" );
76- m_impl->m_toggler ->setAnchorPoint ({ 0 .5f , 0 .5f });
77- m_impl->m_toggler ->setPosition ({ x + 12 .f , yCenter });
78- m_impl->m_toggler ->setScale (0 .875f );
72+ m_impl->toggler ->setID (" toggler" );
73+ m_impl->toggler ->setAnchorPoint ({ 0 .5f , 0 .5f });
74+ m_impl->toggler ->setPosition ({ x + 12 .f , yCenter });
75+ m_impl->toggler ->setScale (0 .875f );
7976
8077 // Set toggler state based on saved mod option value
81- if (horribleMod) m_impl->m_toggler ->toggle (horribleMod->getSavedValue <bool >(m_impl->m_option .id ));
78+ if (horribleMod) m_impl->toggler ->toggle (horribleMod->getSavedValue <bool >(m_impl->option .id ));
8279
83- addChild (m_impl->m_toggler );
80+ addChild (m_impl->toggler );
8481
8582 x += 30 .f ;
8683
8784 // name of the joke
8885 auto nameLabel = CCLabelBMFont::create (
89- m_impl->m_option .name .c_str (),
86+ m_impl->option .name .c_str (),
9087 " bigFont.fnt" ,
9188 getScaledContentWidth () - 40 .f ,
9289 kCCTextAlignmentLeft
@@ -98,7 +95,7 @@ bool OptionItem::init(CCSize const& size, Option option) {
9895 nameLabel->setScale (0 .4f );
9996
10097 auto categoryLabel = CCLabelBMFont::create (
101- m_impl->m_option .category .c_str (),
98+ m_impl->option .category .c_str (),
10299 " goldFont.fnt" ,
103100 getScaledContentWidth () - 60 .f ,
104101 kCCTextAlignmentLeft
@@ -110,8 +107,8 @@ bool OptionItem::init(CCSize const& size, Option option) {
110107 categoryLabel->setOpacity (200 );
111108 categoryLabel->setScale (0 .25f );
112109
113- // Set color based on m_impl->m_option .Tier
114- switch (m_impl->m_option .silly ) {
110+ // Set color based on m_impl->option .Tier
111+ switch (m_impl->option .silly ) {
115112 case SillyTier::Low: // green
116113 nameLabel->setColor (colors::green);
117114 break ;
@@ -134,7 +131,7 @@ bool OptionItem::init(CCSize const& size, Option option) {
134131
135132 if (horribleMod->getSettingValue <bool >(" dev-mode" )) {
136133 auto idLabel = CCLabelBMFont::create (
137- m_impl->m_option .id .c_str (),
134+ m_impl->option .id .c_str (),
138135 " chatFont.fnt" ,
139136 getScaledContentWidth () - 20 .f ,
140137 kCCTextAlignmentLeft
@@ -167,8 +164,8 @@ bool OptionItem::init(CCSize const& size, Option option) {
167164
168165 addChild (helpBtn);
169166
170- if (!m_impl->s_compatible ) {
171- m_impl->m_toggler ->toggle (false );
167+ if (!m_impl->compatible ) {
168+ m_impl->toggler ->toggle (false );
172169
173170 togglerOn->setDisplayFrame (togglerOff->displayFrame ());
174171
@@ -192,34 +189,34 @@ bool OptionItem::init(CCSize const& size, Option option) {
192189};
193190
194191void OptionItem::saveTogglerState () {
195- if (m_impl->m_toggler ) options::set (m_impl->m_option .id , m_impl->m_toggler ->isToggled ());
192+ if (m_impl->toggler ) options::set (m_impl->option .id , m_impl->toggler ->isToggled ());
196193};
197194
198195void OptionItem::onToggle (CCObject*) {
199- if (m_impl->s_compatible ) {
196+ if (m_impl->compatible ) {
200197 saveTogglerState ();
201- if (m_impl->m_option .restart ) {
198+ if (m_impl->option .restart ) {
202199 Notification::create (" Restart required!" , NotificationIcon::Warning, 2 .5f )->show ();
203- log::warn (" Restart required to apply option {}" , m_impl->m_option .id );
200+ log::warn (" Restart required to apply option {}" , m_impl->option .id );
204201 };
205202
206- auto now = options::get (m_impl->m_option .id );
203+ auto now = options::get (m_impl->option .id );
207204
208- OptionEvent (m_impl->m_option .id ).send (m_impl->m_option .id , now);
205+ OptionEvent (m_impl->option .id ).send (m_impl->option .id , now);
209206
210- log::info (" Option {} now set to {}" , m_impl->m_option .name , now ? " disabled" : " enabled" ); // wtf is it other way around lmao
211- } else if (m_impl->m_toggler ) {
212- Notification::create (fmt::format (" {} is unavailable for {}" , m_impl->m_option .name , GEODE_PLATFORM_NAME), NotificationIcon::Error, 1 .25f )->show ();
213- log::error (" Option {} is not available for platform {}" , m_impl->m_option .id , GEODE_PLATFORM_SHORT_IDENTIFIER);
207+ log::info (" Option {} now set to {}" , m_impl->option .name , now ? " disabled" : " enabled" ); // wtf is it other way around lmao
208+ } else if (m_impl->toggler ) {
209+ Notification::create (fmt::format (" {} is unavailable for {}" , m_impl->option .name , GEODE_PLATFORM_NAME), NotificationIcon::Error, 1 .25f )->show ();
210+ log::error (" Option {} is not available for platform {}" , m_impl->option .id , GEODE_PLATFORM_SHORT_IDENTIFIER);
214211
215- m_impl->m_toggler ->toggle (false );
212+ m_impl->toggler ->toggle (false );
216213 };
217214};
218215
219216void OptionItem::onDescription (CCObject*) {
220217 if (auto popup = FLAlertLayer::create (
221- m_impl->m_option .name .c_str (),
222- m_impl->m_option .description .c_str (),
218+ m_impl->option .name .c_str (),
219+ m_impl->option .description .c_str (),
223220 " OK"
224221 )) popup->show ();
225222};
@@ -230,11 +227,11 @@ void OptionItem::onExit() {
230227};
231228
232229Option OptionItem::getOption () const noexcept {
233- return m_impl->m_option ;
230+ return m_impl->option ;
234231};
235232
236233bool OptionItem::isCompatible () const noexcept {
237- return m_impl->s_compatible ;
234+ return m_impl->compatible ;
238235};
239236
240237OptionItem* OptionItem::create (CCSize const & size, Option option) {
0 commit comments