diff --git a/src/start_menu.c b/src/start_menu.c index f878819..6184ff6 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -968,7 +968,40 @@ static u8 SaveConfirmSaveCallback(void) } static u8 SaveYesNoCallback(void) +{ return SAVE_IN_PROGRESS; +} + +static u8 SaveConfirmInputCallback(void) +{ + switch (Menu_ProcessInputNoWrapClearOnChoose()) + { + case 0: // Yes + switch (gSaveFileStatus) + { + case SAVE_STATUS_EMPTY: + case SAVE_STATUS_CORRUPT: + if (gDifferentSaveFile == FALSE) + { + sSaveDialogCallback = SaveFileExistsCallback; + return SAVE_IN_PROGRESS; + } + + sSaveDialogCallback = SaveSavingMessageCallback; + return SAVE_IN_PROGRESS; + default: + sSaveDialogCallback = SaveFileExistsCallback; + return SAVE_IN_PROGRESS; + } + case -1: // B Button + case 1: // No + HideSaveInfoWindow(); + HideSaveMessageWindow(); + return SAVE_CANCELED; + } + + return SAVE_IN_PROGRESS; +} // A different save file exists static u8 SaveFileExistsCallback(void)