disable crawl speed increase if MQ Spirit boulder exists

This commit is contained in:
Eric Hoey 2025-07-10 21:20:09 -04:00
commit 88b578dd02

View file

@ -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);
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;
}
});
}