Restore save confirmation screen when saving and in game over (N64) (#1750)

* Restore save confirmation screen

* Use correct time from NTSC decomp

* Apply suggested changes

* Update GameMenuBar.cpp
This commit is contained in:
Amaro Martínez 2022-10-23 02:40:47 -05:00 committed by GitHub
parent af5a780e63
commit fc1a009953
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 2 deletions

View File

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

View File

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