mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-25 19:02:19 -05:00
Merge pull request #114 from briaguya-ai/vb-tower-escape-no-new-should
vb tower escape
This commit is contained in:
commit
28a2cc925e
@ -438,8 +438,6 @@ void Settings::CreateOptionDescriptions() {
|
||||
"Start with Zelda's Letter and the item Impa would normally give you and skip the sequence up "
|
||||
"until after meeting Zelda. Disables the ability to shuffle Weird Egg.";
|
||||
mOptionDescriptions[RSK_SKIP_EPONA_RACE] = "Epona can be summoned with Epona's Song without needing to race Ingo.";
|
||||
mOptionDescriptions[RSK_SKIP_TOWER_ESCAPE] =
|
||||
"The tower escape sequence between Ganondorf and Ganon will be skipped.";
|
||||
mOptionDescriptions[RSK_COMPLETE_MASK_QUEST] =
|
||||
"Once the happy mask shop is opened, all masks will be available to be borrowed.";
|
||||
mOptionDescriptions[RSK_SKIP_SCARECROWS_SONG] =
|
||||
|
@ -3598,7 +3598,6 @@ typedef enum {
|
||||
RSK_CUCCO_COUNT,
|
||||
RSK_BIG_POE_COUNT,
|
||||
RSK_SKIP_EPONA_RACE,
|
||||
RSK_SKIP_TOWER_ESCAPE,
|
||||
RSK_COMPLETE_MASK_QUEST,
|
||||
RSK_SKIP_SCARECROWS_SONG,
|
||||
RSK_ENABLE_GLITCH_CUTSCENES,
|
||||
|
@ -147,7 +147,6 @@ void Settings::CreateOptions() {
|
||||
mOptions[RSK_KEYRINGS_GANONS_CASTLE] = Option::Bool("Ganon's Castle", "gRandomizeShuffleKeyRingsGanonsCastle");
|
||||
mOptions[RSK_SKIP_CHILD_STEALTH] = Option::Bool("Skip Child Stealth", {"Don't Skip", "Skip"}, OptionCategory::Setting, "gRandomizeSkipChildStealth", mOptionDescriptions[RSK_SKIP_CHILD_STEALTH], WidgetType::Checkbox, RO_GENERIC_DONT_SKIP);
|
||||
mOptions[RSK_SKIP_CHILD_ZELDA] = Option::Bool("Skip Child Zelda", {"Don't Skip", "Skip"}, OptionCategory::Setting, "gRandomizeSkipChildZelda", mOptionDescriptions[RSK_SKIP_CHILD_ZELDA], WidgetType::Checkbox, RO_GENERIC_DONT_SKIP);
|
||||
mOptions[RSK_SKIP_TOWER_ESCAPE] = Option::Bool("Skip Tower Escape", {"Don't Skip", "Skip"}, OptionCategory::Setting, "gRandomizeSkipTowerEscape", mOptionDescriptions[RSK_SKIP_TOWER_ESCAPE], WidgetType::Checkbox, RO_GENERIC_DONT_SKIP);
|
||||
mOptions[RSK_SKIP_EPONA_RACE] = Option::Bool("Skip Epona Race", {"Don't Skip", "Skip"}, OptionCategory::Setting, "gRandomizeSkipEponaRace", mOptionDescriptions[RSK_SKIP_EPONA_RACE], WidgetType::Checkbox, RO_GENERIC_DONT_SKIP);
|
||||
mOptions[RSK_SKIP_SCARECROWS_SONG] = Option::Bool("Skip Scarecrow's Song", "gRandomizeSkipScarecrowsSong", mOptionDescriptions[RSK_SKIP_SCARECROWS_SONG]);
|
||||
mOptions[RSK_BIG_POE_COUNT] = Option::U8("Big Poe Target Count", {NumOpts(1, 10)}, OptionCategory::Setting, "gRandomizeBigPoeTargetCount", mOptionDescriptions[RSK_BIG_POE_COUNT], WidgetType::Slider, 9);
|
||||
@ -716,7 +715,6 @@ void Settings::CreateOptions() {
|
||||
&mOptions[RSK_SKIP_CHILD_STEALTH],
|
||||
&mOptions[RSK_SKIP_CHILD_ZELDA],
|
||||
&mOptions[RSK_SKIP_EPONA_RACE],
|
||||
&mOptions[RSK_SKIP_TOWER_ESCAPE],
|
||||
&mOptions[RSK_COMPLETE_MASK_QUEST],
|
||||
&mOptions[RSK_SKIP_SCARECROWS_SONG]
|
||||
}, false, WidgetContainerType::COLUMN);
|
||||
@ -1200,7 +1198,6 @@ void Settings::CreateOptions() {
|
||||
{ "Timesaver Settings:Big Poe Target Count", RSK_BIG_POE_COUNT },
|
||||
{ "Timesaver Settings:Skip Child Stealth", RSK_SKIP_CHILD_STEALTH },
|
||||
{ "Timesaver Settings:Skip Epona Race", RSK_SKIP_EPONA_RACE },
|
||||
{ "Timesaver Settings:Skip Tower Escape", RSK_SKIP_TOWER_ESCAPE },
|
||||
{ "Timesaver Settings:Complete Mask Quest", RSK_COMPLETE_MASK_QUEST },
|
||||
{ "Timesaver Settings:Skip Scarecrow's Song", RSK_SKIP_SCARECROWS_SONG },
|
||||
{ "Timesaver Settings:Enable Glitch-Useful Cutscenes", RSK_ENABLE_GLITCH_CUTSCENES },
|
||||
@ -2523,7 +2520,6 @@ void Settings::ParseJson(nlohmann::json spoilerFileJson) {
|
||||
case RSK_SKIP_CHILD_ZELDA:
|
||||
case RSK_SKIP_CHILD_STEALTH:
|
||||
case RSK_SKIP_EPONA_RACE:
|
||||
case RSK_SKIP_TOWER_ESCAPE:
|
||||
if (it.value() == "Don't Skip") {
|
||||
mOptions[index].SetSelectedIndex(RO_GENERIC_DONT_SKIP);
|
||||
} else if (it.value() == "Skip") {
|
||||
|
@ -136,7 +136,7 @@ void TimeSaverOnGameFrameUpdateHandler() {
|
||||
|
||||
void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void* opt) {
|
||||
switch (id) {
|
||||
case GI_VB_PLAY_TRANSITION_CS:
|
||||
case GI_VB_PLAY_TRANSITION_CS: {
|
||||
if (CVarGetInteger("gTimeSavers.SkipCutscene.Intro", IS_RANDO) && gSaveContext.entranceIndex == ENTR_LINKS_HOUSE_0 && gSaveContext.cutsceneIndex == 0xFFF1) {
|
||||
gSaveContext.cutsceneIndex = 0;
|
||||
*should = false;
|
||||
@ -260,7 +260,16 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
|
||||
*should = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (gSaveContext.entranceIndex == ENTR_GANONS_TOWER_COLLAPSE_EXTERIOR_0) {
|
||||
if (CVarGetInteger("gTimeSavers.SkipTowerEscape", false) || IS_BOSS_RUSH) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_WATCHED_GANONS_CASTLE_COLLAPSE_CAUGHT_BY_GERUDO);
|
||||
gSaveContext.entranceIndex = ENTR_GANON_BOSS_0;
|
||||
*should = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case GI_VB_PLAY_ENTRANCE_CS: {
|
||||
s32* entranceFlag = static_cast<s32*>(opt);
|
||||
if (CVarGetInteger("gTimeSavers.SkipCutscene.Entrances", IS_RANDO) && (*entranceFlag != EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
|
@ -586,7 +586,8 @@ void DrawEnhancementsMenu() {
|
||||
CVarGetInteger("gTimeSavers.NoForcedDialog", IS_RANDO) &&
|
||||
CVarGetInteger("gTimeSavers.SkipOwlInteractions", IS_RANDO) &&
|
||||
CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO) &&
|
||||
CVarGetInteger("gTimeSavers.DisableTitleCard", IS_RANDO);
|
||||
CVarGetInteger("gTimeSavers.DisableTitleCard", IS_RANDO) &&
|
||||
CVarGetInteger("gTimeSavers.SkipTowerEscape", false);
|
||||
bool someChecked =
|
||||
CVarGetInteger("gTimeSavers.SkipCutscene.Intro", IS_RANDO) ||
|
||||
CVarGetInteger("gTimeSavers.SkipCutscene.Entrances", IS_RANDO) ||
|
||||
@ -598,7 +599,8 @@ void DrawEnhancementsMenu() {
|
||||
CVarGetInteger("gTimeSavers.NoForcedDialog", IS_RANDO) ||
|
||||
CVarGetInteger("gTimeSavers.SkipOwlInteractions", 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();
|
||||
ImGuiItemFlags backup_item_flags = g->CurrentItemFlags;
|
||||
@ -616,6 +618,7 @@ void DrawEnhancementsMenu() {
|
||||
CVarSetInteger("gTimeSavers.SkipOwlInteractions", 1);
|
||||
CVarSetInteger("gTimeSavers.SkipMiscInteractions", 1);
|
||||
CVarSetInteger("gTimeSavers.DisableTitleCard", 1);
|
||||
CVarSetInteger("gTimeSavers.SkipTowerEscape", 1);
|
||||
} else {
|
||||
CVarSetInteger("gTimeSavers.SkipCutscene.Intro", 0);
|
||||
CVarSetInteger("gTimeSavers.SkipCutscene.Entrances", 0);
|
||||
@ -628,6 +631,7 @@ void DrawEnhancementsMenu() {
|
||||
CVarSetInteger("gTimeSavers.SkipOwlInteractions", 0);
|
||||
CVarSetInteger("gTimeSavers.SkipMiscInteractions", 0);
|
||||
CVarSetInteger("gTimeSavers.DisableTitleCard", 0);
|
||||
CVarSetInteger("gTimeSavers.SkipTowerEscape", 0);
|
||||
}
|
||||
LUS::Context::GetInstance()->GetWindow()->GetGui()->SaveConsoleVariablesOnNextTick();
|
||||
}
|
||||
@ -645,6 +649,8 @@ void DrawEnhancementsMenu() {
|
||||
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("Disable Title Card", "gTimeSavers.DisableTitleCard", false, false, false, "", UIWidgets::CheckboxGraphics::Cross, IS_RANDO);
|
||||
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::PaddedText("Skip Get Item Animations", true, false);
|
||||
UIWidgets::EnhancementCombobox("gTimeSavers.SkipGetItemAnimation", skipGetItemAnimationOptions, SGIA_DISABLED);
|
||||
|
@ -1539,13 +1539,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) {
|
||||
|
||||
if (this->csTimer == 180) {
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
if ((IS_RANDO && Randomizer_GetSettingValue(RSK_SKIP_TOWER_ESCAPE) || IS_BOSS_RUSH)) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_WATCHED_GANONS_CASTLE_COLLAPSE_CAUGHT_BY_GERUDO);
|
||||
play->nextEntranceIndex = ENTR_GANON_BOSS_0;
|
||||
}
|
||||
else {
|
||||
play->nextEntranceIndex = ENTR_GANONS_TOWER_COLLAPSE_EXTERIOR_0;
|
||||
}
|
||||
play->nextEntranceIndex = ENTR_GANONS_TOWER_COLLAPSE_EXTERIOR_0;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user