mirror of
https://github.com/pret/pmd-red.git
synced 2026-03-28 21:15:06 -05:00
64 lines
1.4 KiB
C
64 lines
1.4 KiB
C
#include "global.h"
|
|
#include "code_80130A8.h"
|
|
#include "memory.h"
|
|
#include "save.h"
|
|
#include "save_read.h"
|
|
|
|
EWRAM_DATA_2 SavePakRead *gSavePakRead = {0};
|
|
|
|
#include "data/save_read.h"
|
|
|
|
void PrepareSavePakRead(void)
|
|
{
|
|
gSavePakRead = MemoryAlloc(sizeof(SavePakRead), 5);
|
|
gSavePakRead->state = 1;
|
|
}
|
|
|
|
u8 ReadSavePak(void)
|
|
{
|
|
u32 temp;
|
|
u32 temp2;
|
|
|
|
switch (gSavePakRead->state) {
|
|
case 0:
|
|
gSavePakRead->state = 1;
|
|
break;
|
|
case 1:
|
|
temp = 0;
|
|
gSavePakRead->readStatus = ReadSaveFromPak(&temp);
|
|
gSavePakRead->state = 2;
|
|
break;
|
|
case 2:
|
|
if (gSavePakRead->readStatus != READ_SAVE_VALID) {
|
|
if (IsSaveCorrupted()) {
|
|
sub_80141B4(sSaveCorrupted, 0, 0, 0x301);
|
|
gSavePakRead->state = 3;
|
|
}
|
|
else
|
|
gSavePakRead->state = 4;
|
|
}
|
|
else
|
|
gSavePakRead->state = 6;
|
|
break;
|
|
case 3:
|
|
if (sub_80144A4(&temp2) == 0)
|
|
gSavePakRead->state = 4;
|
|
break;
|
|
case 4:
|
|
sub_8012298();
|
|
gSavePakRead->state = 6;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
void FinishReadSavePak(void)
|
|
{
|
|
if (gSavePakRead != NULL) {
|
|
MemoryFree(gSavePakRead);
|
|
gSavePakRead = NULL;
|
|
}
|
|
} |