diff --git a/soh/soh/GameMenuBar.cpp b/soh/soh/GameMenuBar.cpp index 23cf1a488..b97bed5ea 100644 --- a/soh/soh/GameMenuBar.cpp +++ b/soh/soh/GameMenuBar.cpp @@ -344,6 +344,8 @@ namespace GameMenuBar { // Restore old Gold Skulltula cutscene CVar_SetS32("gGsCutscene", 0); + // Skip save confirmation + CVar_SetS32("gSkipSaveConfirmation", 0); // Autosave CVar_SetS32("gAutosave", 0); @@ -410,6 +412,8 @@ namespace GameMenuBar { CVar_SetS32("gN64WeirdFrames", 1); // Bombchus out of bounds CVar_SetS32("gBombchusOOB", 1); + // Skip save confirmation + CVar_SetS32("gSkipSaveConfirmation", 1); } void applyEnhancementPresetEnhanced(void) { @@ -819,6 +823,8 @@ namespace GameMenuBar { UIWidgets::PaddedEnhancementCheckbox("Remember Save Location", "gRememberSaveLocation", true, false); UIWidgets::Tooltip("When loading a save, places Link at the last entrance he went through.\n" "This doesn't work if the save was made in a grotto."); + UIWidgets::PaddedEnhancementCheckbox("Skip save confirmation", "gSkipSaveConfirmation", true, false); + UIWidgets::Tooltip("Skip the \"Game saved.\" confirmation screen"); ImGui::EndMenu(); } diff --git a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c index cf145b474..e64841f79 100644 --- a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c +++ b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c @@ -1527,6 +1527,10 @@ void KaleidoScope_DrawPages(GlobalContext* globalCtx, GraphicsContext* gfxCtx) { POLY_KAL_DISP = KaleidoScope_QuadTextureIA8(POLY_KAL_DISP, sPromptChoiceTexs[gSaveContext.language][1], 48, 16, 16); + } else if (((pauseCtx->state == 7 && pauseCtx->unk_1EC >= 4) || pauseCtx->state == 0xF) && + !CVar_GetS32("gSkipSaveConfirmation", 0)) { + POLY_KAL_DISP = + KaleidoScope_QuadTextureIA8(POLY_KAL_DISP, sSaveConfirmationTexs[gSaveContext.language], 152, 16, 0); } else if ((pauseCtx->state != 7) || (pauseCtx->unk_1EC < 4)) { if ((pauseCtx->state != 0xF) && ((pauseCtx->state == 0x10) || (pauseCtx->state == 0x11))) { POLY_KAL_DISP = @@ -3874,7 +3878,7 @@ void KaleidoScope_Update(GlobalContext* globalCtx) &D_801333E8); Gameplay_PerformSave(globalCtx); pauseCtx->unk_1EC = 4; - D_8082B25C = 3; + D_8082B25C = CVar_GetS32("gSkipSaveConfirmation", 0) ? 3 /* 0.1 sec */ : 90 /* 3 secs */; } } else if (CHECK_BTN_ALL(input->press.button, BTN_START) || CHECK_BTN_ALL(input->press.button, BTN_B)) { @@ -4118,7 +4122,7 @@ void KaleidoScope_Update(GlobalContext* globalCtx) gSaveContext.savedSceneNum = globalCtx->sceneNum; Save_SaveFile(); pauseCtx->state = 0xF; - D_8082B25C = 3; + D_8082B25C = CVar_GetS32("gSkipSaveConfirmation", 0) ? 3 /* 0.1 sec */ : 90 /* 3 secs */; } } break;