From 88b578dd0278d84f054bfd3954f28e8be1caad2d Mon Sep 17 00:00:00 2001 From: Eric Hoey <121978037+A-Green-Spoon@users.noreply.github.com> Date: Thu, 10 Jul 2025 21:20:09 -0400 Subject: [PATCH 1/2] disable crawl speed increase if MQ Spirit boulder exists --- soh/soh/Enhancements/TimeSavers/CrawlSpeed.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/soh/soh/Enhancements/TimeSavers/CrawlSpeed.cpp b/soh/soh/Enhancements/TimeSavers/CrawlSpeed.cpp index 896f07973..7ada74e98 100644 --- a/soh/soh/Enhancements/TimeSavers/CrawlSpeed.cpp +++ b/soh/soh/Enhancements/TimeSavers/CrawlSpeed.cpp @@ -1,4 +1,5 @@ #include +#include "soh/ResourceManagerHelpers.h" #include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #include "soh/ShipInit.hpp" #include "global.h" @@ -102,8 +103,17 @@ void CrawlSpeed_Register() { COND_VB_SHOULD(VB_CRAWL_SPEED_INCREASE, shouldRegister, { Player* player = GET_PLAYER(gPlayState); - IncreaseCrawlSpeed(player, gPlayState); - *should = false; + bool isMQ = ResourceMgr_IsGameMasterQuest(); + bool boulderExists = !Flags_GetSwitch(gPlayState, 5); + bool excludeSpiritMQBoulder = + (gPlayState->sceneNum == SCENE_SPIRIT_TEMPLE && player->actor.world.pos.z < -545.0f && + player->actor.world.pos.z > -630.0f && isMQ && boulderExists); + if (excludeSpiritMQBoulder) { + *should = true; + } else { + IncreaseCrawlSpeed(player, gPlayState); + *should = false; + } }); } From 694c37cc5fb7061ed1aa54459d79e158747d35d8 Mon Sep 17 00:00:00 2001 From: Eric Hoey <121978037+A-Green-Spoon@users.noreply.github.com> Date: Mon, 21 Jul 2025 18:32:42 -0400 Subject: [PATCH 2/2] bring max speed back to 5 --- soh/soh/SohGui/SohMenuEnhancements.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soh/soh/SohGui/SohMenuEnhancements.cpp b/soh/soh/SohGui/SohMenuEnhancements.cpp index eda3d85bb..f03969f15 100644 --- a/soh/soh/SohGui/SohMenuEnhancements.cpp +++ b/soh/soh/SohGui/SohMenuEnhancements.cpp @@ -463,7 +463,7 @@ void SohMenu::AddMenuEnhancements() { .Options(IntSliderOptions().Min(0).Max(5).DefaultValue(0).Format("+%d")); AddWidget(path, "Crawl Speed %dx", WIDGET_CVAR_SLIDER_INT) .CVar(CVAR_ENHANCEMENT("CrawlSpeed")) - .Options(IntSliderOptions().Min(1).Max(4).DefaultValue(1).Format("%dx")); + .Options(IntSliderOptions().Min(1).Max(5).DefaultValue(1).Format("%dx")); AddWidget(path, "Exclude Glitch-Aiding Crawlspaces", WIDGET_CVAR_CHECKBOX) .CVar(CVAR_ENHANCEMENT("GlitchAidingCrawlspaces")) .PreFunc([](WidgetInfo& info) { info.isHidden = CVarGetInteger(CVAR_ENHANCEMENT("CrawlSpeed"), 0) == 1; })