diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-02-07 00:40:17 -0500 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-02-07 00:40:17 -0500 |
commit | 0e448936b5f77561f8bb55f3e0d27e7ed5a64c99 (patch) | |
tree | 7c529306c92bcc3e482ef4e0ac89ec941bdc4097 /src/engine/save.c | |
parent | 51ade392bf16ae4c87a18f8965b8e650fe983d03 (diff) | |
parent | a395cd7e53ed33634eef4df22814da4ba96a3357 (diff) |
Merge branch 'master' of https://github.com/pret/pokeruby
Diffstat (limited to 'src/engine/save.c')
-rw-r--r-- | src/engine/save.c | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/src/engine/save.c b/src/engine/save.c index 250b29a87..0b7a3dd79 100644 --- a/src/engine/save.c +++ b/src/engine/save.c @@ -663,6 +663,35 @@ static u16 CalculateChecksum(void *data, u16 size) return ((checksum >> 16) + checksum); } +#if DEBUG +void sub_813B79C(void) +{ + struct SaveSector *sbSector; + struct SaveSector *hofSector; + const struct SaveBlockChunk *sbChunks; + const struct SaveBlockChunk *hofChunks; + u16 i; + + sbSector = eSaveSection; + sbChunks = sSaveBlockChunks; + for (i = 0; i < NUM_SECTORS_PER_SAVE_SLOT * 2; i++) + { + DoReadFlashWholeSection(i, sbSector); + sbSector->checksum = CalculateChecksum(sbSector, sbChunks[sbSector->id].size); + ProgramFlashSectorAndVerify(i, sbSector->data); + } + + hofSector = eSaveSection; + hofChunks = sHallOfFameChunks; + for (i = 0; i < NUM_HALL_OF_FAME_SECTORS; i++) + { + DoReadFlashWholeSection(HALL_OF_FAME_SECTOR + i, hofSector); + hofSector->id = CalculateChecksum(hofSector, hofChunks[i].size); // why id? + ProgramFlashSectorAndVerify(HALL_OF_FAME_SECTOR + i, hofSector->data); + } +} +#endif + u8 Save_WriteDataInternal(u8 saveType) { u8 i; @@ -706,13 +735,21 @@ u8 Save_WriteDataInternal(u8 saveType) return 0; } +#if DEBUG +extern u32 gUnknown_Debug_03004BD0; +#endif + u8 Save_WriteData(u8 saveType) // TrySave { if (gFlashMemoryPresent != TRUE) return SAVE_STATUS_ERROR; Save_WriteDataInternal(saveType); - if (!gDamagedSaveSectors) + if (!gDamagedSaveSectors +#if DEBUG + && gUnknown_Debug_03004BD0 == 0 +#endif + ) return SAVE_STATUS_OK; DoSaveFailedScreen(saveType); @@ -815,7 +852,7 @@ u8 Save_LoadGameData(u8 saveType) return result; } -static const u8 sUnusedFlashSectors[] = { 30, 31 }; +const u8 sUnusedFlashSectors[] = { 30, 31 }; bool8 unref_sub_8125F4C(struct UnkSaveSection *a1) { |