Fix OnePoint cutscenes, make Skip Glitch cutscenes into Exclude Glitch Cutscenes (#4575)

* Fix OnePoint chutscenes, make skip glitch cutscenes into exclude cutscenes

* address comments
This commit is contained in:
Pepper0ni 2024-11-26 19:43:20 +00:00 committed by GitHub
parent 31120b7188
commit d0f7d30c16
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 17 deletions

View File

@ -263,7 +263,7 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_li
// The switch in jabu that you are intended to press with a box to reach barrinade
// can be skipped by either a frame perfect roll open or with OI
// The One Point for that switch is used in common setups for the former and is required for the latter to work
if (actor->params == 14848 && gPlayState->sceneNum == SCENE_JABU_JABU && !CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.GlitchAiding"), 0)){
if (actor->params == 14848 && gPlayState->sceneNum == SCENE_JABU_JABU && CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.GlitchAiding"), 0)){
break;
}
BgBdanSwitch* switchActor = (BgBdanSwitch*)actor;
@ -280,18 +280,9 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_li
RateLimitedSuccessChime();
break;
}
case ACTOR_BG_HIDAN_FWBIG: {
*should = false;
break;
}
case ACTOR_EN_EX_ITEM: {
*should = false;
break;
}
case ACTOR_EN_DNT_NOMAL: {
*should = false;
break;
}
case ACTOR_BG_HIDAN_FWBIG:
case ACTOR_EN_EX_ITEM:
case ACTOR_EN_DNT_NOMAL:
case ACTOR_EN_DNT_DEMO: {
*should = false;
break;
@ -311,6 +302,8 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_li
case ACTOR_BG_SPOT18_BASKET:
case ACTOR_BG_HIDAN_CURTAIN:
case ACTOR_BG_MORI_HINERI:
case ACTOR_BG_MIZU_SHUTTER:
case ACTOR_SHOT_SUN:
*should = false;
RateLimitedSuccessChime();
break;
@ -786,7 +779,7 @@ void TimeSaverOnActorInitHandler(void* actorRef) {
// or poes from which the cutscene is triggered until we can have a "BeforeActorInit" hook.
// So for now we're just going to set the flag before they get to the room the cutscene is in
if (gPlayState->sceneNum == SCENE_FOREST_TEMPLE && actor->id == ACTOR_EN_ST && !Flags_GetSwitch(gPlayState, 0x1B)) {
if (CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.GlitchAiding"), 0)) {
if (CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.Story"), 0) && !CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.GlitchAiding"), 0)) {
Flags_SetSwitch(gPlayState, 0x1B);
}
}
@ -812,7 +805,7 @@ void TimeSaverOnActorInitHandler(void* actorRef) {
// Fire Temple Darunia cutscene
if (actor->id == ACTOR_EN_DU && gPlayState->sceneNum == SCENE_FIRE_TEMPLE) {
if (CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.GlitchAiding"), 0)) {
if (CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.Story"), 0) && !CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.GlitchAiding"), 0)) {
Flags_SetInfTable(INFTABLE_SPOKE_TO_DARUNIA_IN_FIRE_TEMPLE);
Actor_Kill(actor);
}

View File

@ -681,8 +681,8 @@ void DrawEnhancementsMenu() {
UIWidgets::PaddedEnhancementCheckbox("Skip Owl Interactions", CVAR_ENHANCEMENT("TimeSavers.SkipOwlInteractions"), false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
UIWidgets::PaddedEnhancementCheckbox("Skip Misc Interactions", CVAR_ENHANCEMENT("TimeSavers.SkipMiscInteractions"), false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
UIWidgets::PaddedEnhancementCheckbox("Disable Title Card", CVAR_ENHANCEMENT("TimeSavers.DisableTitleCard"), false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
UIWidgets::PaddedEnhancementCheckbox("Skip Glitch-Aiding Cutscenes", CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.GlitchAiding"), false, false, false, "", UIWidgets::CheckboxGraphics::Cross, 0);
UIWidgets::Tooltip("Skip cutscenes that are associated with useful glitches, currently this is only the Fire Temple Darunia CS and Forest Temple Poe Sisters CS");
UIWidgets::PaddedEnhancementCheckbox("Exclude Glitch-Aiding Cutscenes", CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.GlitchAiding"), false, false, false, "", UIWidgets::CheckboxGraphics::Cross, 0);
UIWidgets::Tooltip("Don't skip cutscenes that are associated with useful glitches, currently this is only the Fire Temple Darunia CS, Forest Temple Poe Sisters CS and the Box Skip One Point in Jabu");
UIWidgets::PaddedEnhancementCheckbox("Skip Child Stealth", CVAR_ENHANCEMENT("TimeSavers.SkipChildStealth"), false, false, false, "", UIWidgets::CheckboxGraphics::Cross, false);
UIWidgets::Tooltip("The crawlspace into Hyrule Castle goes straight to Zelda, skipping the guards.");
UIWidgets::PaddedEnhancementCheckbox("Skip Tower Escape", CVAR_ENHANCEMENT("TimeSavers.SkipTowerEscape"), false, false, false, "", UIWidgets::CheckboxGraphics::Cross, false);