mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-26 08:05:21 -07:00
Prevent MQ Spirit softlock with increased crawl speed (#5667)
* disable crawl speed increase if MQ Spirit boulder exists * bring max speed back to 5
This commit is contained in:
parent
6e6f8dcc9d
commit
d8453b2b68
2 changed files with 13 additions and 3 deletions
|
@ -1,4 +1,5 @@
|
|||
#include <libultraship/bridge.h>
|
||||
#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);
|
||||
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;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -468,7 +468,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; })
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue