mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-02 23:44:52 -05:00
66 lines
1.5 KiB
C
66 lines
1.5 KiB
C
#include "global.h"
|
|
#include "globaldata.h"
|
|
#include "string_format.h"
|
|
#include "memory.h"
|
|
#include "quick_save_read.h"
|
|
#include "save.h"
|
|
|
|
static EWRAM_INIT QuickSaveRead *sQuickSaveRead = {NULL};
|
|
|
|
#include "data/quick_save_read.h"
|
|
|
|
void PrepareQuickSaveRead(u8 *dest, u32 size)
|
|
{
|
|
sQuickSaveRead = MemoryAlloc(sizeof(QuickSaveRead), 5);
|
|
sQuickSaveRead->dest = dest;
|
|
sQuickSaveRead->size = size;
|
|
sQuickSaveRead->saveValid = FALSE;
|
|
sQuickSaveRead->state = 1;
|
|
}
|
|
|
|
bool8 ReadQuickSave(void)
|
|
{
|
|
u32 stack_1;
|
|
u32 stack_2;
|
|
|
|
switch (sQuickSaveRead->state) {
|
|
case 0:
|
|
sQuickSaveRead->state = 1;
|
|
break;
|
|
case 1:
|
|
stack_1 = 16;
|
|
|
|
if (sub_8011F9C(&stack_1, sQuickSaveRead->dest, sQuickSaveRead->size) == READ_SAVE_VALID) {
|
|
sQuickSaveRead->saveValid = TRUE;
|
|
sQuickSaveRead->state = 3;
|
|
}
|
|
else {
|
|
CreateDialogueBoxAndPortrait(sSaveFailedExplanation, 0, 0, 0x301);
|
|
sQuickSaveRead->state = 2;
|
|
}
|
|
break;
|
|
case 2:
|
|
if (sub_80144A4(&stack_2) == 0)
|
|
sQuickSaveRead->state = 3;
|
|
break;
|
|
case 3:
|
|
return FALSE;
|
|
default:
|
|
break;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
bool8 IsQuickSaveValid(void)
|
|
{
|
|
return sQuickSaveRead->saveValid;
|
|
}
|
|
|
|
void FinishQuickSaveRead(void)
|
|
{
|
|
if (sQuickSaveRead != NULL){
|
|
MemoryFree(sQuickSaveRead);
|
|
sQuickSaveRead = 0;
|
|
}
|
|
}
|