diff options
Diffstat (limited to 'src/save.c')
-rw-r--r-- | src/save.c | 352 |
1 files changed, 175 insertions, 177 deletions
@@ -10,72 +10,69 @@ struct unk_struct { + // size: 0x800 u32 unk0; - u32 unk4; - u32 unk8; - u32 unkC; - u32 unk10; + u8 unk4[0x10]; // has "POKE_DUNGEON__05 u32 unk14; u32 unk18; u32 unk1C; - u32 padding[504]; + u32 unk20; + u32 padding[503]; }; -struct unk_203B188 +struct SavePakRead { u32 state; u32 readStatus; }; +extern struct SavePakRead *gSavePakRead; -extern struct unk_203B188 *gUnknown_203B188; - -struct unkStruct_203B18C +struct SavePakWrite { u32 state; s32 unk4; u32 saveStatus; struct OpenedFile *faceFile; u8 *faceData; - u16 unk14; - u16 unk16; - u8 unk18; - u8 unk19; - u8 unk1A; - u8 unk1B; - u16 pokeID; + u16 unk14; + u16 unk16; + u8 unk18; + u8 unk19; + u8 unk1A; + u8 unk1B; + u16 pokeID; }; -extern struct unkStruct_203B18C *gUnknown_203B18C; +extern struct SavePakWrite *gSavePakWrite; -struct unkStruct_203B190 +struct QuickSaveRead { s32 state; - u8 *unk4; - u32 unk8; - u8 unkC; + u8 *dest; + u32 size; + bool8 saveValid; }; -extern struct unkStruct_203B190 *gUnknown_203B190; +extern struct QuickSaveRead *gQuickSaveRead; -struct unkStruct_203B194 +struct QuickSaveWrite { s32 state; u8 *unk4; u32 unk8; u8 unkC; - u8 fillD[3]; u32 quickSaveStatus; }; -extern struct unkStruct_203B194 *gUnknown_203B194; +extern struct QuickSaveWrite *gQuickSaveWrite; extern s32 gUnknown_202DE28; extern u32 gUnknown_203B17C; extern char *gUnknown_203B180; -extern u32 *gRecruitedPokemonRef; -extern u32 *gUnknown_203B460; +extern struct unkStruct_203B45C *gRecruitedPokemonRef; +extern struct unkStruct_203B460 *gUnknown_203B460; extern struct RescueTeamData *gRescueTeamInfoRef; -extern u8 *gFriendAreas; +extern bool8 *gFriendAreas; extern u32 gUnknown_203B46C; extern u8 *gUnknown_203B480; extern u8 *gUnknown_203B484; @@ -85,10 +82,17 @@ extern u32 gUnknown_203B490; extern u32 gUnknown_203B494; extern struct ExclusivePokemonData *gUnknown_203B498; +ALIGNED(4) const char PokeDungeon_Text[] = _("POKE_DUNGEON__05"); + +ALIGNED(4) const char fill_save0[] = _("pksdir0"); +ALIGNED(4) const char fill_save1[] = _("pksdir0"); +ALIGNED(4) const char fill_save2[] = _("pksdir0"); +ALIGNED(4) const char fill_save3[] = _("pksdir0"); + ALIGNED(4) const char gSaveCorrupted[] = _("#+The game data is corrupted.\n" "#+Your data will be erased."); -ALIGNED(4) const char fill_save0[] = _("pksdir0"); +ALIGNED(4) const char fill_save4[] = _("pksdir0"); ALIGNED(4) const char gSavingAdventure[] = _("#+Saving your adventure...\n" "#+Please don~27t turn off the power."); @@ -105,7 +109,7 @@ ALIGNED(4) const char gSaveNotWritten[] = _("#+The data could not be written.\n" ALIGNED(4) const char gSaveFailed[] = _("#+Save failed."); -ALIGNED(4) const char fill_save1[] = _("pksdir0"); +ALIGNED(4) const char fill_save5[] = _("pksdir0"); ALIGNED(4) const char gUnknown_80D44C8[] = _("#+Your data was not properly saved~2c\n" "#+so your game cannot be resumed\n" @@ -114,7 +118,7 @@ ALIGNED(4) const char gUnknown_80D44C8[] = _("#+Your data was not properly saved "#+Before shutting down~2c save in your\n" "#+team base~2c or quicksave in a dungeon."); -ALIGNED(4) const char fill_save2[] = _("pksdir0"); +ALIGNED(4) const char fill_save6[] = _("pksdir0"); ALIGNED(4) const char gUnknown_80D45AC[] = _("#+Quicksaving your adventure...\n" "#+Please don~27t turn off the power."); @@ -135,7 +139,7 @@ ALIGNED(4) const char gSaveNotWritten2[] = _("#+The data could not be written.\n "#+and reinsert the DS Card."); ALIGNED(4) const char gSaveFailed2[] = _("#+Save failed."); -ALIGNED(4) const char fill_save3[] = _("pksdir0"); +ALIGNED(4) const char fill_save7[] = _("pksdir0"); extern volatile struct UnkStruct_203B184 *gUnknown_203B184; @@ -147,15 +151,13 @@ extern void sub_80140DC(); extern void sub_8014114(); extern void sub_80141B4(const char *r0, u32 r1, u8 *r2, u16 r3); extern u32 sub_80144A4(u32 *a); -extern u32 sub_808ED78(u8 *, u32); -extern u32 sub_808EE9C(void* a, s32 b); +extern u32 SaveRecruitedPokemon(u8 *, u32); +extern u32 ReadRecruitedPokemon(void* a, s32 b); extern u32 sub_808F154(u8 *, u32); extern u32 sub_808F2B0(void* a, s32 b); extern u32 sub_8091C68(u8 *, u32); extern u32 sub_8091D14(void* a, s32 b); extern u32 sub_80921C4(u8 *, u32); -extern u32 SaveFriendAreas(u8 *, u32); -extern u32 ReadSavedFriendAreas(void* a, s32 b); extern u8 *sub_8095100(void); extern u32 *sub_8095108(void); extern u32 *sub_8095110(void); @@ -169,10 +171,6 @@ extern u32 sub_8097D60(u8 *, u32); extern u32 sub_8097D98(void* a, s32 b); extern void sub_80993E4(); extern void sub_800135C(void); -extern u32 *GetRecruitedPokemon(void); -extern void InitializeRecruitedPokemon(void); -extern u32 *GetMoneyItemsInfo(void); -extern void InitializeMoneyItems(void); extern u32 GetGameOptions(void); extern void InitializeGameOptions(u8 r0); extern u8 *sub_80950F8(void); @@ -183,7 +181,7 @@ extern void sub_80972F4(void); extern u32 sub_8097680(void); extern u32 *sub_809769C(void); extern void sub_80974E8(void); -extern void sub_8097748(void); +extern void ResetNumAdventures(void); extern void sub_80993D8(void); extern struct PlayTimeStruct *gPlayTimeRef; @@ -213,7 +211,7 @@ void sub_8011C40(s32 in) char *sub_8011C4C(void) { - return gUnknown_203B180; + return gUnknown_203B180; // returns POKE_DUNGEON__05 } void CalculateChecksum(u8 *out, u32 size) @@ -304,15 +302,15 @@ u32 ReadSaveSector(s32 *a, u8 *dest, s32 size) } } else { - return 1; + return READ_SAVE_FAILED; } if (r1) { - return 1; + return READ_SAVE_FAILED; } if (ValidateChecksum(dest, size)) { - return 2; + return READ_SAVE_CHECKSUM_ERROR; } - return 0; + return READ_SAVE_VALID; } // Unused @@ -346,12 +344,12 @@ u32 ReadSaveFromPak(u32 *a) if (gUnknown_203B184 == NULL) { sub_8011C28(r5->unk41C); sub_8011C40(r5->unk418); - SetRngState(r5->unk420); + SetRngState(r5->RngState); } else { gUnknown_203B184->unk054 = r5->unk41C; gUnknown_203B184->unk050 = r5->unk418; - gUnknown_203B184->unk058 = r5->unk420; + gUnknown_203B184->RngState = r5->RngState; } } if (!r7) @@ -367,8 +365,8 @@ u32 ReadSaveFromPak(u32 *a) } if (!r7) { - r1 = sub_808EE9C(r4, 0x4650); - if (r1 != r5->unk424) { + r1 = ReadRecruitedPokemon(r4, 0x4650); + if (r1 != r5->savedRecruitedPokemon) { r7 = 3; } r4 += 0x4650; @@ -382,8 +380,8 @@ u32 ReadSaveFromPak(u32 *a) r7 = 3; } r4 += 0x1d8; - r1 = sub_809222C(r4, 0x10); - if (r1 != r5->unk434) { + r1 = ReadRescueTeamInfo(r4, 0x10); + if (r1 != r5->savedRescueTeamInfo) { r7 = 3; } r4 += 0x10; @@ -424,7 +422,7 @@ u32 sub_8011FA8(void) struct unk_struct *r5 = MemoryAlloc(sizeof(struct unk_struct), 5); temp = 0x1F; temp2 = ReadSaveSector(&temp, (u8 *)r5, sizeof(struct unk_struct)); - if( temp2 == 0) + if( temp2 == READ_SAVE_VALID) { if(r5->unk14 != 0x5071412) { @@ -432,7 +430,7 @@ u32 sub_8011FA8(void) } } temp3 = 0xf1209; - if(temp2 == 0) + if(temp2 == READ_SAVE_VALID) { temp3 = r5->unk18; } @@ -447,7 +445,7 @@ bool8 IsSaveCorrupted(void) struct unk_struct *r5 = MemoryAlloc(sizeof(struct unk_struct), 5); temp = 0x1F; isCorrupted = FALSE; - if(ReadSaveSector(&temp, (u8 *)r5, sizeof(struct unk_struct)) == 0) + if(ReadSaveSector(&temp, (u8 *)r5, sizeof(struct unk_struct)) == READ_SAVE_VALID) { if(r5->unk14 == 0x5071412) { @@ -471,30 +469,30 @@ u32 WriteSavetoPak(s32 *param_1,u32 param_2) if (gUnknown_203B184 == NULL) { iVar1->unk41C = param_2; iVar1->unk418 = sub_8011C34(); - iVar1->unk420 = GetRngState(); + iVar1->RngState = GetRngState(); } else { iVar1->unk41C = gUnknown_203B184->unk054; iVar1->unk418 = gUnknown_203B184->unk050; - iVar1->unk420 = gUnknown_203B184->unk058; + iVar1->RngState = gUnknown_203B184->RngState; } iVar1->unk414 = 0x5071412; __src = sub_8011C4C(); - strncpy(iVar1->unk404,__src,16); + strncpy(iVar1->unk404,__src, ARRAY_COUNT(iVar1->unk404)); if (gUnknown_203B184 == NULL) { - sub_8002700(&iVar1->unk004); + sub_8002700(iVar1->unk004); } else { - MemoryCopy8(iVar1->unk004,gUnknown_203B184->unk04C,0x400); + MemoryCopy8(iVar1->unk004,gUnknown_203B184->unk04C,ARRAY_COUNT(iVar1->unk004)); } - iVar1->unk424 = sub_808ED78(array_ptr,0x4650); + iVar1->savedRecruitedPokemon = SaveRecruitedPokemon(array_ptr,0x4650); array_ptr += 0x4650; iVar1->unk428 = sub_808F154(array_ptr,0x258); array_ptr += 0x258; iVar1->unk430 = sub_8091C68(array_ptr,0x1D8); array_ptr += 0x1D8; - iVar1->unk434 = sub_80921C4(array_ptr,0x10); + iVar1->savedRescueTeamInfo = SaveRescueTeamInfo(array_ptr,0x10); array_ptr += 0x10; iVar1->savedFriendAreas = SaveFriendAreas(array_ptr,8); array_ptr += 8; @@ -508,12 +506,12 @@ u32 WriteSavetoPak(s32 *param_1,u32 param_2) r4 = WriteSaveSector(param_1,(u8 *)iVar1,sizeof(struct UnkStruct_sub_8011DAC)); MemoryFree(iVar1); - if (r5 != 0) + if (r5 != SAVE_COMPLETED) return r5; - if (r4 != 0) + if (r4 != SAVE_COMPLETED) return r4; - return 0; // Success + return SAVE_COMPLETED; } @@ -525,7 +523,7 @@ s32 sub_80121D4(s32 *a, u8 *src, s32 size) u32 sub_80121E0(u32 r0) { u32 temp; - char *temp2; + char *string; u32 temp3; struct unk_struct *r4 = MemoryAlloc(sizeof(struct unk_struct), 5); temp = 0x1F; @@ -534,8 +532,8 @@ u32 sub_80121E0(u32 r0) r4->unk1C = *sub_809769C(); r4->unk14 = 0x5071412; - temp2 = sub_8011C4C(); - strncpy((u8 *)r4 + 4, temp2, 16); + string = sub_8011C4C(); + strncpy(r4->unk4, string, ARRAY_COUNT(r4->unk4)); sub_80958E4((u8 *)r4 + 32, 0); temp3 = WriteSaveSector(&temp, (u8 *)r4, sizeof(struct unk_struct)); MemoryFree(r4); @@ -591,7 +589,7 @@ void sub_80122D0(void) { sub_8011C28(0); sub_8011C40(-1); - sub_8097748(); + ResetNumAdventures(); ResetPlayTime(gPlayTimeRef); } @@ -626,7 +624,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0) gUnknown_203B184 = r0; if(r0 != NULL) { - gUnknown_203B460 = r0->unk0; + gUnknown_203B460 = r0->MoneyItems; gRecruitedPokemonRef = r0->recruitedPokemon; gUnknown_203B480 = r0->unk8; gUnknown_203B484 = r0->unkC; @@ -657,52 +655,52 @@ void sub_8012334(struct UnkStruct_203B184 *r0) } -void sub_8012468(void) +void PrepareSavePakRead(void) { - gUnknown_203B188 = MemoryAlloc(sizeof(struct unk_203B188), 5); - gUnknown_203B188->state = 1; + gSavePakRead = MemoryAlloc(sizeof(struct SavePakRead), 5); + gSavePakRead->state = 1; } -u8 sub_8012484(void) +u8 ReadSavePak(void) { u32 temp; u32 temp2; - switch(gUnknown_203B188->state) + switch(gSavePakRead->state) { case 0: - gUnknown_203B188->state = 1; + gSavePakRead->state = 1; break; case 1: temp = 0; - gUnknown_203B188->readStatus = ReadSaveFromPak(&temp); - gUnknown_203B188->state = 2; + gSavePakRead->readStatus = ReadSaveFromPak(&temp); + gSavePakRead->state = 2; break; case 2: - if(gUnknown_203B188->readStatus != 0) + if(gSavePakRead->readStatus != READ_SAVE_VALID) { if(IsSaveCorrupted()) { sub_80141B4(gSaveCorrupted, 0, 0, 0x301); - gUnknown_203B188->state = 3; + gSavePakRead->state = 3; } else { - gUnknown_203B188->state = 4; + gSavePakRead->state = 4; } } else { - gUnknown_203B188->state = 6; + gSavePakRead->state = 6; } break; case 3: if(sub_80144A4(&temp2) == 0) - gUnknown_203B188->state = 4; + gSavePakRead->state = 4; break; case 4: sub_8012298(); - gUnknown_203B188->state = 6; + gSavePakRead->state = 6; case 5: break; case 6: @@ -711,16 +709,16 @@ u8 sub_8012484(void) return 1; } -void sub_8012558(void) +void FinishReadSavePak(void) { - if(gUnknown_203B188 != NULL) + if(gSavePakRead != NULL) { - MemoryFree(gUnknown_203B188); - gUnknown_203B188 = NULL; + MemoryFree(gSavePakRead); + gSavePakRead = NULL; } } -void sub_8012574(s16 PokemonID) +void PrepareSavePakWrite(s16 PokemonID) { struct OpenedFile *file; s32 id_s32; @@ -729,138 +727,138 @@ void sub_8012574(s16 PokemonID) id_s32 = PokemonID; // had to cast for asr shift sub_80993D8(); - gUnknown_203B18C = MemoryAlloc(sizeof(struct unkStruct_203B18C),5); - gUnknown_203B18C->pokeID = id_s32; - gUnknown_203B18C->faceFile = NULL; - gUnknown_203B18C->faceData = NULL; + gSavePakWrite = MemoryAlloc(sizeof(struct SavePakWrite),5); + gSavePakWrite->pokeID = id_s32; + gSavePakWrite->faceFile = NULL; + gSavePakWrite->faceData = NULL; if (PokemonID != 0) { file = GetDialogueSpriteDataPtr(PokemonID); - gUnknown_203B18C->faceFile = file; - gUnknown_203B18C->faceData = file->data; - gUnknown_203B18C->unk18 = 0; - gUnknown_203B18C->unk19 = 0; - gUnknown_203B18C->unk1A = 0; - gUnknown_203B18C->unk14 = 2; - gUnknown_203B18C->unk16 = 8; + gSavePakWrite->faceFile = file; + gSavePakWrite->faceData = file->data; + gSavePakWrite->unk18 = 0; + gSavePakWrite->unk19 = 0; + gSavePakWrite->unk1A = 0; + gSavePakWrite->unk14 = 2; + gSavePakWrite->unk16 = 8; } - if (gUnknown_203B18C->faceFile != 0) { - preload_face = (u8 *)&gUnknown_203B18C->faceFile; + if (gSavePakWrite->faceFile != 0) { + preload_face = (u8 *)&gSavePakWrite->faceFile; sub_80141B4(gSavingAdventure,0,preload_face,0x20); } else { sub_80141B4(gSavingAdventure,0,0,0x20); } - gUnknown_203B18C->state = 3; + gSavePakWrite->state = 3; } -bool8 sub_8012600(void) +bool8 WriteSavePak(void) { struct OpenedFile **faceFile; u32 local_14; u32 other_stack; faceFile = NULL; - if (gUnknown_203B18C->faceFile != 0) { - faceFile = &gUnknown_203B18C->faceFile; + if (gSavePakWrite->faceFile != 0) { + faceFile = &gSavePakWrite->faceFile; } - switch(gUnknown_203B18C->state) + switch(gSavePakWrite->state) { case 0: - gUnknown_203B18C->state = 7; + gSavePakWrite->state = 7; break; case 1: - gUnknown_203B18C->unk4++; - if (gUnknown_203B18C->unk4 > 8) { + gSavePakWrite->unk4++; + if (gSavePakWrite->unk4 > 8) { sub_80141B4(gWriteGamePak, 0, 0, 0x20); - gUnknown_203B18C->state = 3; + gSavePakWrite->state = 3; } break; case 2: break; case 3: - gUnknown_203B18C->state = 4; + gSavePakWrite->state = 4; break; case 4: local_14 = 0; sub_80140DC(); - gUnknown_203B18C->saveStatus = WriteSavetoPak(&local_14, sub_8011C1C()); - switch(gUnknown_203B18C->saveStatus) + gSavePakWrite->saveStatus = WriteSavetoPak(&local_14, sub_8011C1C()); + switch(gSavePakWrite->saveStatus) { case SAVE_COMPLETED: - if(gUnknown_203B18C->faceFile != NULL) + if(gSavePakWrite->faceFile != NULL) sub_80141B4(gSaveCompleted, 0, (u8 *)faceFile, 0x101); else sub_80141B4(gSaveCompleted, 0, (u8 *)faceFile, 0x101); - gUnknown_203B18C->state = 5; + gSavePakWrite->state = 5; break; case SAVE_NOT_WRTTEN: sub_80141B4(gSaveNotWritten, 0, 0, 0); - gUnknown_203B18C->state = 6; + gSavePakWrite->state = 6; break; default: - if(gUnknown_203B18C->faceFile != NULL) + if(gSavePakWrite->faceFile != NULL) sub_80141B4(gSaveFailed, 0, (u8 *)faceFile, 0x101); else sub_80141B4(gSaveFailed, 0, (u8 *)faceFile, 0x101); - gUnknown_203B18C->state = 5; + gSavePakWrite->state = 5; break; } sub_8014114(); break; case 5: if (sub_80144A4(&other_stack) == 0) - gUnknown_203B18C->state = 7; + gSavePakWrite->state = 7; break; case 6: break; case 7: - return 0; + return FALSE; } - return 1; + return TRUE; } -u32 sub_8012744(void) +u32 GetSavePakStatus(void) { - return gUnknown_203B18C->saveStatus; + return gSavePakWrite->saveStatus; } -void sub_8012750(void) +void FinishWriteSavePak(void) { - if(gUnknown_203B18C != NULL) + if(gSavePakWrite != NULL) { - if(gUnknown_203B18C->faceFile != NULL) - CloseFile(gUnknown_203B18C->faceFile); - MemoryFree(gUnknown_203B18C); - gUnknown_203B18C = NULL; + if(gSavePakWrite->faceFile != NULL) + CloseFile(gSavePakWrite->faceFile); + MemoryFree(gSavePakWrite); + gSavePakWrite = NULL; } sub_80993E4(); } -void sub_801277C(u8 *r0, u32 r1) +void PrepareQuickSaveRead(u8 *dest, u32 size) { - gUnknown_203B190 = MemoryAlloc(sizeof(struct unkStruct_203B190), 5); - gUnknown_203B190->unk4 = r0; - gUnknown_203B190->unk8 = r1; - gUnknown_203B190->unkC = 0; - gUnknown_203B190->state = 1; + gQuickSaveRead = MemoryAlloc(sizeof(struct QuickSaveRead), 5); + gQuickSaveRead->dest = dest; + gQuickSaveRead->size = size; + gQuickSaveRead->saveValid = FALSE; + gQuickSaveRead->state = 1; } -u32 sub_80127A8(void) +bool8 ReadQuickSave(void) { u32 stack_1; u32 stack_2; - switch(gUnknown_203B190->state) + switch(gQuickSaveRead->state) { case 0: - gUnknown_203B190->state = 1; + gQuickSaveRead->state = 1; break; case 1: stack_1 = 16; - if(sub_8011F9C(&stack_1, gUnknown_203B190->unk4, gUnknown_203B190->unk8) == 0) + if(sub_8011F9C(&stack_1, gQuickSaveRead->dest, gQuickSaveRead->size) == READ_SAVE_VALID) { - gUnknown_203B190->unkC = 1; - gUnknown_203B190->state = 3; + gQuickSaveRead->saveValid = TRUE; + gQuickSaveRead->state = 3; } else { @@ -870,42 +868,42 @@ u32 sub_80127A8(void) // Before shutting down, save in your // team base or quicksave in a dungeon sub_80141B4(gUnknown_80D44C8, 0, 0, 0x301); - gUnknown_203B190->state = 2; + gQuickSaveRead->state = 2; } break; case 2: if(sub_80144A4(&stack_2) == 0) - gUnknown_203B190->state = 3; + gQuickSaveRead->state = 3; break; case 3: - return 0; + return FALSE; default: break; } - return 1; + return TRUE; } -u8 sub_8012828(void) +bool8 IsQuickSaveValid(void) { - return gUnknown_203B190->unkC; + return gQuickSaveRead->saveValid; } -void sub_8012834(void) +void FinishQuickSaveRead(void) { - if(gUnknown_203B190 != NULL){ - MemoryFree(gUnknown_203B190); - gUnknown_203B190 = 0; + if(gQuickSaveRead != NULL){ + MemoryFree(gQuickSaveRead); + gQuickSaveRead = 0; } } -void sub_8012850(u8 *r0, u32 r1, u8 r2) +void PrepareQuickSaveWrite(u8 *r0, u32 r1, u8 r2) { - gUnknown_203B194 = MemoryAlloc(sizeof(struct unkStruct_203B194), 5); - gUnknown_203B194->unk4 = r0; - gUnknown_203B194->unk8 = r1; - gUnknown_203B194->unkC = r2; - gUnknown_203B194->state = 0; - if(gUnknown_203B194->unkC != 0) + gQuickSaveWrite = MemoryAlloc(sizeof(struct QuickSaveWrite), 5); + gQuickSaveWrite->unk4 = r0; + gQuickSaveWrite->unk8 = r1; + gQuickSaveWrite->unkC = r2; + gQuickSaveWrite->state = 0; + if(gQuickSaveWrite->unkC != 0) // Quicksaving your adventure... // Please don't turn off the power. sub_80141B4(gUnknown_80D45AC, 0, 0, 0x20); @@ -915,30 +913,30 @@ void sub_8012850(u8 *r0, u32 r1, u8 r2) sub_80141B4(gUnknown_80D45AC, 0, 0, 0x20); } -u32 sub_80128B0(void) +u32 WriteQuickSave(void) { u32 stack_1; u32 stack_2; - switch(gUnknown_203B194->state) + switch(gQuickSaveWrite->state) { case 0: - gUnknown_203B194->state = 1; + gQuickSaveWrite->state = 1; break; case 1: sub_80140DC(); stack_1 = 16; - gUnknown_203B194->quickSaveStatus = sub_80121D4(&stack_1, gUnknown_203B194->unk4, gUnknown_203B194->unk8); - gUnknown_203B194->state = 2; + gQuickSaveWrite->quickSaveStatus = sub_80121D4(&stack_1, gQuickSaveWrite->unk4, gQuickSaveWrite->unk8); + gQuickSaveWrite->state = 2; return 1; case 2: stack_1 = 0; - if(gUnknown_203B194->quickSaveStatus == 0) - gUnknown_203B194->quickSaveStatus = WriteSavetoPak(&stack_1, 2); - switch(gUnknown_203B194->quickSaveStatus) + if(gQuickSaveWrite->quickSaveStatus == 0) + gQuickSaveWrite->quickSaveStatus = WriteSavetoPak(&stack_1, 2); + switch(gQuickSaveWrite->quickSaveStatus) { case SAVE_COMPLETED: sub_80121E0(0xf1207); - if(gUnknown_203B194->unkC != 0) + if(gQuickSaveWrite->unkC != 0) // Your adventure has been saved // When you are in a dungeon, quicksave // your progress before ending the game. @@ -950,31 +948,31 @@ u32 sub_80128B0(void) // save your progress in your team base, // or quicksave in a dungeon. sub_80141B4(gUnknown_80D4668, 0, 0, 0x301); - gUnknown_203B194->state = 3; + gQuickSaveWrite->state = 3; break; case SAVE_NOT_WRTTEN: // The data could not be written. // Please turn off the power and remove // and reinsert the DS Card sub_80141B4(gSaveNotWritten2, 0, 0, 0); - gUnknown_203B194->state = 4; + gQuickSaveWrite->state = 4; break; default: sub_80121E0(0xf1209); sub_80141B4(gSaveFailed2, 0, 0, 0x301); - gUnknown_203B194->state = 3; + gQuickSaveWrite->state = 3; break; } sub_8014114(); break; case 3: if(sub_80144A4(&stack_2) == 0) - gUnknown_203B194->state = 5; + gQuickSaveWrite->state = 5; break; case 4: break; case 5: - if(gUnknown_203B194->quickSaveStatus == SAVE_COMPLETED) + if(gQuickSaveWrite->quickSaveStatus == SAVE_COMPLETED) return 2; else return 3; @@ -985,11 +983,11 @@ u32 sub_80128B0(void) return 0; } -void sub_80129FC() +void FinishQuickSaveWrite() { - if (gUnknown_203B194) { - MemoryFree(gUnknown_203B194); - gUnknown_203B194 = NULL; + if (gQuickSaveWrite) { + MemoryFree(gQuickSaveWrite); + gQuickSaveWrite = NULL; } } |