mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-22 17:32:19 -05:00
Migrate child stealth
This commit is contained in:
parent
14c7f0c3e1
commit
5813b37415
@ -280,6 +280,13 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
|
|||||||
*should = false;
|
*should = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gSaveContext.entranceIndex == ENTR_CASTLE_COURTYARD_GUARDS_DAY_0) {
|
||||||
|
if (CVarGetInteger("gTimeSavers.SkipChildStealth", false)) {
|
||||||
|
gSaveContext.entranceIndex = ENTR_CASTLE_COURTYARD_ZELDA_0;
|
||||||
|
*should = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GI_VB_PLAY_ENTRANCE_CS: {
|
case GI_VB_PLAY_ENTRANCE_CS: {
|
||||||
|
@ -581,26 +581,22 @@ void DrawEnhancementsMenu() {
|
|||||||
CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO) &&
|
CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO) &&
|
||||||
CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) &&
|
CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) &&
|
||||||
CVarGetInteger("gTimeSavers.SkipCutscene.BossIntro", IS_RANDO) &&
|
CVarGetInteger("gTimeSavers.SkipCutscene.BossIntro", IS_RANDO) &&
|
||||||
CVarGetInteger("gTimeSavers.SkipCutscene.GlitchAiding", 0) &&
|
|
||||||
CVarGetInteger("gTimeSavers.SkipCutscene.OnePoint", IS_RANDO) &&
|
CVarGetInteger("gTimeSavers.SkipCutscene.OnePoint", IS_RANDO) &&
|
||||||
CVarGetInteger("gTimeSavers.NoForcedDialog", IS_RANDO) &&
|
CVarGetInteger("gTimeSavers.NoForcedDialog", IS_RANDO) &&
|
||||||
CVarGetInteger("gTimeSavers.SkipOwlInteractions", IS_RANDO) &&
|
CVarGetInteger("gTimeSavers.SkipOwlInteractions", IS_RANDO) &&
|
||||||
CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO) &&
|
CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO) &&
|
||||||
CVarGetInteger("gTimeSavers.DisableTitleCard", IS_RANDO) &&
|
CVarGetInteger("gTimeSavers.DisableTitleCard", IS_RANDO);
|
||||||
CVarGetInteger("gTimeSavers.SkipTowerEscape", false);
|
|
||||||
bool someChecked =
|
bool someChecked =
|
||||||
CVarGetInteger("gTimeSavers.SkipCutscene.Intro", IS_RANDO) ||
|
CVarGetInteger("gTimeSavers.SkipCutscene.Intro", IS_RANDO) ||
|
||||||
CVarGetInteger("gTimeSavers.SkipCutscene.Entrances", IS_RANDO) ||
|
CVarGetInteger("gTimeSavers.SkipCutscene.Entrances", IS_RANDO) ||
|
||||||
CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO) ||
|
CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO) ||
|
||||||
CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) ||
|
CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) ||
|
||||||
CVarGetInteger("gTimeSavers.SkipCutscene.BossIntro", IS_RANDO) ||
|
CVarGetInteger("gTimeSavers.SkipCutscene.BossIntro", IS_RANDO) ||
|
||||||
CVarGetInteger("gTimeSavers.SkipCutscene.GlitchAiding", 0) ||
|
|
||||||
CVarGetInteger("gTimeSavers.SkipCutscene.OnePoint", IS_RANDO) ||
|
CVarGetInteger("gTimeSavers.SkipCutscene.OnePoint", IS_RANDO) ||
|
||||||
CVarGetInteger("gTimeSavers.NoForcedDialog", IS_RANDO) ||
|
CVarGetInteger("gTimeSavers.NoForcedDialog", IS_RANDO) ||
|
||||||
CVarGetInteger("gTimeSavers.SkipOwlInteractions", IS_RANDO) ||
|
CVarGetInteger("gTimeSavers.SkipOwlInteractions", IS_RANDO) ||
|
||||||
CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO) ||
|
CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO) ||
|
||||||
CVarGetInteger("gTimeSavers.DisableTitleCard", IS_RANDO) ||
|
CVarGetInteger("gTimeSavers.DisableTitleCard", IS_RANDO);
|
||||||
CVarGetInteger("gTimeSavers.SkipTowerEscape", false);
|
|
||||||
|
|
||||||
ImGuiContext* g = ImGui::GetCurrentContext();
|
ImGuiContext* g = ImGui::GetCurrentContext();
|
||||||
ImGuiItemFlags backup_item_flags = g->CurrentItemFlags;
|
ImGuiItemFlags backup_item_flags = g->CurrentItemFlags;
|
||||||
@ -612,26 +608,22 @@ void DrawEnhancementsMenu() {
|
|||||||
CVarSetInteger("gTimeSavers.SkipCutscene.Story", 1);
|
CVarSetInteger("gTimeSavers.SkipCutscene.Story", 1);
|
||||||
CVarSetInteger("gTimeSavers.SkipCutscene.LearnSong", 1);
|
CVarSetInteger("gTimeSavers.SkipCutscene.LearnSong", 1);
|
||||||
CVarSetInteger("gTimeSavers.SkipCutscene.BossIntro", 1);
|
CVarSetInteger("gTimeSavers.SkipCutscene.BossIntro", 1);
|
||||||
CVarSetInteger("gTimeSavers.SkipCutscene.GlitchAiding", 1);
|
|
||||||
CVarSetInteger("gTimeSavers.SkipCutscene.OnePoint", 1);
|
CVarSetInteger("gTimeSavers.SkipCutscene.OnePoint", 1);
|
||||||
CVarSetInteger("gTimeSavers.NoForcedDialog", 1);
|
CVarSetInteger("gTimeSavers.NoForcedDialog", 1);
|
||||||
CVarSetInteger("gTimeSavers.SkipOwlInteractions", 1);
|
CVarSetInteger("gTimeSavers.SkipOwlInteractions", 1);
|
||||||
CVarSetInteger("gTimeSavers.SkipMiscInteractions", 1);
|
CVarSetInteger("gTimeSavers.SkipMiscInteractions", 1);
|
||||||
CVarSetInteger("gTimeSavers.DisableTitleCard", 1);
|
CVarSetInteger("gTimeSavers.DisableTitleCard", 1);
|
||||||
CVarSetInteger("gTimeSavers.SkipTowerEscape", 1);
|
|
||||||
} else {
|
} else {
|
||||||
CVarSetInteger("gTimeSavers.SkipCutscene.Intro", 0);
|
CVarSetInteger("gTimeSavers.SkipCutscene.Intro", 0);
|
||||||
CVarSetInteger("gTimeSavers.SkipCutscene.Entrances", 0);
|
CVarSetInteger("gTimeSavers.SkipCutscene.Entrances", 0);
|
||||||
CVarSetInteger("gTimeSavers.SkipCutscene.Story", 0);
|
CVarSetInteger("gTimeSavers.SkipCutscene.Story", 0);
|
||||||
CVarSetInteger("gTimeSavers.SkipCutscene.LearnSong", 0);
|
CVarSetInteger("gTimeSavers.SkipCutscene.LearnSong", 0);
|
||||||
CVarSetInteger("gTimeSavers.SkipCutscene.BossIntro", 0);
|
CVarSetInteger("gTimeSavers.SkipCutscene.BossIntro", 0);
|
||||||
CVarSetInteger("gTimeSavers.SkipCutscene.GlitchAiding", 0);
|
|
||||||
CVarSetInteger("gTimeSavers.SkipCutscene.OnePoint", 0);
|
CVarSetInteger("gTimeSavers.SkipCutscene.OnePoint", 0);
|
||||||
CVarSetInteger("gTimeSavers.NoForcedDialog", 0);
|
CVarSetInteger("gTimeSavers.NoForcedDialog", 0);
|
||||||
CVarSetInteger("gTimeSavers.SkipOwlInteractions", 0);
|
CVarSetInteger("gTimeSavers.SkipOwlInteractions", 0);
|
||||||
CVarSetInteger("gTimeSavers.SkipMiscInteractions", 0);
|
CVarSetInteger("gTimeSavers.SkipMiscInteractions", 0);
|
||||||
CVarSetInteger("gTimeSavers.DisableTitleCard", 0);
|
CVarSetInteger("gTimeSavers.DisableTitleCard", 0);
|
||||||
CVarSetInteger("gTimeSavers.SkipTowerEscape", 0);
|
|
||||||
}
|
}
|
||||||
LUS::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesOnNextTick();
|
LUS::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesOnNextTick();
|
||||||
}
|
}
|
||||||
@ -641,14 +633,16 @@ void DrawEnhancementsMenu() {
|
|||||||
UIWidgets::PaddedEnhancementCheckbox("Skip Story Cutscenes", "gTimeSavers.SkipCutscene.Story", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
UIWidgets::PaddedEnhancementCheckbox("Skip Story Cutscenes", "gTimeSavers.SkipCutscene.Story", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
||||||
UIWidgets::PaddedEnhancementCheckbox("Skip Song Cutscenes", "gTimeSavers.SkipCutscene.LearnSong", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
UIWidgets::PaddedEnhancementCheckbox("Skip Song Cutscenes", "gTimeSavers.SkipCutscene.LearnSong", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
||||||
UIWidgets::PaddedEnhancementCheckbox("Skip Boss Introductions", "gTimeSavers.SkipCutscene.BossIntro", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
UIWidgets::PaddedEnhancementCheckbox("Skip Boss Introductions", "gTimeSavers.SkipCutscene.BossIntro", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
||||||
UIWidgets::PaddedEnhancementCheckbox("Skip Glitch-Aiding Cutscenes", "gTimeSavers.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("Skip One Point Cutscenes (Chests, Door Unlocks, etc)", "gTimeSavers.SkipCutscene.OnePoint", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
UIWidgets::PaddedEnhancementCheckbox("Skip One Point Cutscenes (Chests, Door Unlocks, etc)", "gTimeSavers.SkipCutscene.OnePoint", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
||||||
UIWidgets::PaddedEnhancementCheckbox("No Forced Dialog", "gTimeSavers.NoForcedDialog", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
UIWidgets::PaddedEnhancementCheckbox("No Forced Dialog", "gTimeSavers.NoForcedDialog", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
||||||
UIWidgets::Tooltip("Prevent forced conversations with Navi or other NPCs");
|
UIWidgets::Tooltip("Prevent forced conversations with Navi or other NPCs");
|
||||||
UIWidgets::PaddedEnhancementCheckbox("Skip Owl Interactions", "gTimeSavers.SkipOwlInteractions", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
UIWidgets::PaddedEnhancementCheckbox("Skip Owl Interactions", "gTimeSavers.SkipOwlInteractions", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
||||||
UIWidgets::PaddedEnhancementCheckbox("Skip Misc Interactions", "gTimeSavers.SkipMiscInteractions", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
UIWidgets::PaddedEnhancementCheckbox("Skip Misc Interactions", "gTimeSavers.SkipMiscInteractions", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
||||||
UIWidgets::PaddedEnhancementCheckbox("Disable Title Card", "gTimeSavers.DisableTitleCard", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
UIWidgets::PaddedEnhancementCheckbox("Disable Title Card", "gTimeSavers.DisableTitleCard", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
||||||
|
UIWidgets::PaddedEnhancementCheckbox("Skip Glitch-Aiding Cutscenes", "gTimeSavers.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("Skip Child Stealth", "gTimeSavers.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", "gTimeSavers.SkipTowerEscape", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, false);
|
UIWidgets::PaddedEnhancementCheckbox("Skip Tower Escape", "gTimeSavers.SkipTowerEscape", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, false);
|
||||||
UIWidgets::Tooltip("Skip the tower escape sequence between Ganondorf and Ganon.");
|
UIWidgets::Tooltip("Skip the tower escape sequence between Ganondorf and Ganon.");
|
||||||
|
|
||||||
|
@ -363,18 +363,6 @@ void Play_Init(GameState* thisx) {
|
|||||||
u8 tempSetupIndex;
|
u8 tempSetupIndex;
|
||||||
s32 pad[2];
|
s32 pad[2];
|
||||||
|
|
||||||
// Skip Child Stealth when option is enabled, Zelda's Letter isn't obtained and Impa's reward hasn't been received
|
|
||||||
// eventChkInf[4] & 1 = Got Zelda's Letter
|
|
||||||
// eventChkInf[5] & 0x200 = Got Impa's reward
|
|
||||||
// entranceIndex 0x7A, ENTR_CASTLE_COURTYARD_GUARDS_DAY_0, Castle Courtyard - Day from crawlspace
|
|
||||||
// entranceIndex 0x400, ENTR_CASTLE_COURTYARD_ZELDA_0, Zelda's Courtyard
|
|
||||||
if (IS_RANDO && Randomizer_GetSettingValue(RSK_SKIP_CHILD_STEALTH) &&
|
|
||||||
!Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER) && !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_ZELDAS_LULLABY)) {
|
|
||||||
if (gSaveContext.entranceIndex == ENTR_CASTLE_COURTYARD_GUARDS_DAY_0) {
|
|
||||||
gSaveContext.entranceIndex = ENTR_CASTLE_COURTYARD_ZELDA_0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Properly initialize the frame counter so it doesn't use garbage data
|
// Properly initialize the frame counter so it doesn't use garbage data
|
||||||
if (!firstInit) {
|
if (!firstInit) {
|
||||||
play->gameplayFrames = 0;
|
play->gameplayFrames = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user