diff --git a/src/d/actor/d_a_alink_sumou.inc b/src/d/actor/d_a_alink_sumou.inc index 8da61c32ce..bbf3b3980f 100644 --- a/src/d/actor/d_a_alink_sumou.inc +++ b/src/d/actor/d_a_alink_sumou.inc @@ -185,7 +185,7 @@ int daAlink_c::procSumouMove() { return 1; } - IF_DUSK(const bool easySumo = DUSK_IF_ELSE(dusk::getSettings().game.holdToMash.sumo, false)); + IF_DUSK(const bool holdToMash = DUSK_IF_ELSE(dusk::getSettings().game.holdToMash, false)); daNpcWrestler_c* wrestler_p = (daNpcWrestler_c*)mCargoCarryAcKeep.getActor(); daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; f32 sp8; @@ -201,7 +201,7 @@ int daAlink_c::procSumouMove() { sp8 = frameCtrl_p->getRate(); if (mProcVar0.field_0x3008 != 0) { - if (easySumo ? doButton() : doTrigger()) { + if (holdToMash ? doButton() : doTrigger()) { mProcVar0.field_0x3008--; } @@ -225,7 +225,7 @@ int daAlink_c::procSumouMove() { field_0x3198 = ANM_SUMOU_PUSH_BACK; } } else if (mProcVar3.field_0x300e == 0) { - if (mProcVar2.field_0x300c > 0 && (easySumo ? doButton() : doTrigger())) { + if (mProcVar2.field_0x300c > 0 && (holdToMash ? doButton() : doTrigger())) { mProcVar2.field_0x300c--; } @@ -233,7 +233,7 @@ int daAlink_c::procSumouMove() { if (mSpeedModifier > 0.0f) { sp8 = frameCtrl_p->getRate(); - if (easySumo ? doButton() : doTrigger()) { + if (holdToMash ? doButton() : doTrigger()) { cLib_chaseF(&sp8, 1.5f, 0.1f); } else { cLib_addCalc(&sp8, 1.0f, 0.5f, 0.05f, 0.02f); diff --git a/src/d/actor/d_a_alink_swim.inc b/src/d/actor/d_a_alink_swim.inc index 8d26936506..9c64180e08 100644 --- a/src/d/actor/d_a_alink_swim.inc +++ b/src/d/actor/d_a_alink_swim.inc @@ -660,11 +660,11 @@ void daAlink_c::setSwimMoveAnime() { field_0x3478 = mpHIO->mSwim.m.mUnderwaterMinAnmSpeed; field_0x347c = mpHIO->mSwim.m.mUnderwaterMaxAnmSpeed; - IF_DUSK(const bool easySwim = DUSK_IF_ELSE(dusk::getSettings().game.holdToMash.swimming, false)); + IF_DUSK(const bool holdToMash = DUSK_IF_ELSE(dusk::getSettings().game.holdToMash, false)); if (mMaxSpeed < mpHIO->mSwim.m.mUnderwaterMaxSpeed) { mMaxSpeed = mpHIO->mSwim.m.mUnderwaterMaxSpeed; - } else if (easySwim ? doButton() : doTrigger()) { + } else if (holdToMash ? doButton() : doTrigger()) { mMaxSpeed += 0.75f; if (mMaxSpeed > temp_f29) { mMaxSpeed = temp_f29; diff --git a/src/d/actor/d_a_b_gnd.cpp b/src/d/actor/d_a_b_gnd.cpp index 3d6ad77710..50978a6691 100644 --- a/src/d/actor/d_a_b_gnd.cpp +++ b/src/d/actor/d_a_b_gnd.cpp @@ -2947,7 +2947,7 @@ static void demo_camera(b_gnd_class* i_this) { s8 sp8 = false; #if TARGET_PC const s16 entry_demo_cam_mode = i_this->mDemoCamMode; - const bool easyGanondorfQTE = DUSK_IF_ELSE(dusk::getSettings().game.holdToMash.ganondorf, false); + const bool holdToMash = DUSK_IF_ELSE(dusk::getSettings().game.holdToMash, false); #endif switch (i_this->mDemoCamMode) { case 0: @@ -3406,7 +3406,7 @@ static void demo_camera(b_gnd_class* i_this) { cLib_addCalc2(&i_this->mDemoCamCenter.z, spF0.z + i_this->mDemoCamCenterTarget.z, 0.1f, 5.0f); } - if ((int)(easyGanondorfQTE ? mDoCPd_c::getHoldA(PAD_1) : mDoCPd_c::getTrigA(PAD_1)) != 0) { + if ((int)(holdToMash ? mDoCPd_c::getHoldA(PAD_1) : mDoCPd_c::getTrigA(PAD_1)) != 0) { i_this->mTubazeriPushValue += 0.1f; if (i_this->mTubazeriPushValue > 1.0f) { i_this->mTubazeriPushValue = 1.0f; diff --git a/src/d/actor/d_a_e_gi.cpp b/src/d/actor/d_a_e_gi.cpp index 0ff3e8f92f..228cdbcfb5 100644 --- a/src/d/actor/d_a_e_gi.cpp +++ b/src/d/actor/d_a_e_gi.cpp @@ -750,21 +750,21 @@ void daE_GI_c::PushButtonCount() { mPushButtonCount++; } - IF_DUSK(const bool easyBloatQTE = DUSK_IF_ELSE(dusk::getSettings().game.holdToMash.twilitBloat, false)); + IF_DUSK(const bool holdToMash = DUSK_IF_ELSE(dusk::getSettings().game.holdToMash, false)); - if (easyBloatQTE ? mDoCPd_c::getHoldA(PAD_1) : mDoCPd_c::getTrigA(PAD_1)) { + if (holdToMash ? mDoCPd_c::getHoldA(PAD_1) : mDoCPd_c::getTrigA(PAD_1)) { mPushButtonCount += 2; } - if (easyBloatQTE ? mDoCPd_c::getHoldB(PAD_1) : mDoCPd_c::getTrigB(PAD_1)) { + if (holdToMash ? mDoCPd_c::getHoldB(PAD_1) : mDoCPd_c::getTrigB(PAD_1)) { mPushButtonCount += 2; } - if (easyBloatQTE ? mDoCPd_c::getHoldL(PAD_1) : mDoCPd_c::getTrigL(PAD_1)) { + if (holdToMash ? mDoCPd_c::getHoldL(PAD_1) : mDoCPd_c::getTrigL(PAD_1)) { mPushButtonCount += 2; } - if (easyBloatQTE ? mDoCPd_c::getHoldR(PAD_1) : mDoCPd_c::getTrigR(PAD_1)) { + if (holdToMash ? mDoCPd_c::getHoldR(PAD_1) : mDoCPd_c::getTrigR(PAD_1)) { mPushButtonCount += 2; } diff --git a/src/dusk/settings.cpp b/src/dusk/settings.cpp index 2ee639815e..a71cabd6b3 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -51,12 +51,7 @@ UserSettings g_userSettings = { .buttonFishing {"game.buttonFishing", false}, .instantSaves {"game.instantSaves", false}, .instantText {"game.instantText", false}, - .holdToMash { - .sumo {"game.holdToMash.sumo", false}, - .swimming {"game.holdToMash.swimming", false}, - .twilitBloat {"game.holdToMash.twilitBloat", false}, - .ganondorf {"game.holdToMash.ganondorf", false}, - }, + .holdToMash {"game.holdToMash", false}, .sunsSong {"game.sunsSong", false}, .autoSave {"game.autoSave", false}, .enhancedMapMenus {"game.enhancedMapMenus", false}, @@ -266,10 +261,7 @@ void registerSettings() { Register(g_userSettings.game.buttonFishing); Register(g_userSettings.game.instantSaves); Register(g_userSettings.game.instantText); - Register(g_userSettings.game.holdToMash.sumo); - Register(g_userSettings.game.holdToMash.swimming); - Register(g_userSettings.game.holdToMash.twilitBloat); - Register(g_userSettings.game.holdToMash.ganondorf); + Register(g_userSettings.game.holdToMash); Register(g_userSettings.game.sunsSong); Register(g_userSettings.game.autoSave); Register(g_userSettings.game.enhancedMapMenus); diff --git a/src/dusk/settings.h b/src/dusk/settings.h index 249a29c0ce..a67c835c09 100644 --- a/src/dusk/settings.h +++ b/src/dusk/settings.h @@ -182,12 +182,7 @@ struct UserSettings { ConfigVar buttonFishing; ConfigVar instantSaves; ConfigVar instantText; - struct { - ConfigVar sumo; - ConfigVar swimming; - ConfigVar twilitBloat; - ConfigVar ganondorf; - } holdToMash; + ConfigVar holdToMash; ConfigVar sunsSong; ConfigVar autoSave; ConfigVar enhancedMapMenus; diff --git a/src/dusk/speedrun.cpp b/src/dusk/speedrun.cpp index 448b7c7664..fe976de974 100644 --- a/src/dusk/speedrun.cpp +++ b/src/dusk/speedrun.cpp @@ -56,10 +56,7 @@ void resetForSpeedrunMode() { getSettings().game.damageMultiplier.setSpeedrunValue(1); getSettings().game.instantDeath.setSpeedrunValue(false); getSettings().game.noHeartDrops.setSpeedrunValue(false); - getSettings().game.holdToMash.sumo.setSpeedrunValue(false); - getSettings().game.holdToMash.swimming.setSpeedrunValue(false); - getSettings().game.holdToMash.twilitBloat.setSpeedrunValue(false); - getSettings().game.holdToMash.ganondorf.setSpeedrunValue(false); + getSettings().game.holdToMash.setSpeedrunValue(false); getSettings().game.autoSave.setSpeedrunValue(false); getSettings().game.sunsSong.setSpeedrunValue(false); diff --git a/src/dusk/ui/settings.cpp b/src/dusk/ui/settings.cpp index 9882c17d40..97606907e0 100644 --- a/src/dusk/ui/settings.cpp +++ b/src/dusk/ui/settings.cpp @@ -1214,51 +1214,8 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { "Skips the delay when writing to the Memory Card."); addOption("Hold B for Instant Text", getSettings().game.instantText, "Makes text scroll immediately by holding B."); - leftPane.register_control( - leftPane.add_select_button({ - .key = "Hold Button to Mash", - .getValue = [] { - int count = 0; - int total = 0; - auto check = [&](bool enabled) { total++; if (enabled) count++; }; - check(getSettings().game.holdToMash.sumo); - check(getSettings().game.holdToMash.swimming); - check(getSettings().game.holdToMash.twilitBloat); - check(getSettings().game.holdToMash.ganondorf); - static thread_local char buf[12]; - std::snprintf(buf, sizeof(buf), "%d / %d", count, total); - return Rml::String{buf}; - }, - .isModified = [] { - return getSettings().game.holdToMash.sumo != - getSettings().game.holdToMash.sumo.getDefaultValue() - || getSettings().game.holdToMash.swimming != - getSettings().game.holdToMash.swimming.getDefaultValue() - || getSettings().game.holdToMash.twilitBloat != - getSettings().game.holdToMash.twilitBloat.getDefaultValue() - || getSettings().game.holdToMash.ganondorf != - getSettings().game.holdToMash.ganondorf.getDefaultValue(); - }, - }), - rightPane, [](Pane& pane) { - pane.clear(); - pane.add_rml( - "Hold the indicated button to mash automatically."); - auto addSubToggle = [&pane](const Rml::String& text, ConfigVar& var) { - pane.add_button({ - .text = text, - .isSelected = [&var] { return var.getValue(); }, - }).on_pressed([&var] { - mDoAud_seStartMenu(kSoundItemChange); - var.setValue(!var.getValue()); - config::save(); - }); - }; - addSubToggle("Sumo Wrestling", getSettings().game.holdToMash.sumo); - addSubToggle("Swimming", getSettings().game.holdToMash.swimming); - addSubToggle("Stunned by Twilit Bloat", getSettings().game.holdToMash.twilitBloat); - addSubToggle("Ganondorf Chance", getSettings().game.holdToMash.ganondorf); - }); + addSpeedrunDisabledOption("Hold Button to Mash", getSettings().game.holdToMash, + "Hold the indicated button to mash automatically."); addOption("No Climbing Miss Animation", getSettings().game.noMissClimbing, "Prevents Link from playing a struggle animation when grabbing ledges or " "climbing on vines.");