diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-11-04 17:12:02 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-11-04 17:12:02 -0500 |
commit | 2fa08605b8cf4f8f2cca6ecad046587275737b20 (patch) | |
tree | 913a034293f828caa2544cec5def0054c4a0e7f3 | |
parent | 57b328ad409349510691952805eb058965d3d321 (diff) |
Propagate save status, type, and sector defines
-rw-r--r-- | include/reset_save_heap.h | 2 | ||||
-rw-r--r-- | include/save.h | 7 | ||||
-rw-r--r-- | src/cereader_tool.c | 8 | ||||
-rw-r--r-- | src/hall_of_fame.c | 6 | ||||
-rw-r--r-- | src/intro.c | 2 | ||||
-rw-r--r-- | src/link.c | 4 | ||||
-rw-r--r-- | src/mystery_gift_menu.c | 2 | ||||
-rw-r--r-- | src/quest_log.c | 2 | ||||
-rw-r--r-- | src/reset_save_heap.c | 6 | ||||
-rw-r--r-- | src/save.c | 30 | ||||
-rw-r--r-- | src/title_screen.c | 2 |
11 files changed, 38 insertions, 33 deletions
diff --git a/include/reset_save_heap.h b/include/reset_save_heap.h index 8cb038906..e29448815 100644 --- a/include/reset_save_heap.h +++ b/include/reset_save_heap.h @@ -7,7 +7,7 @@ // Exported ROM declarations -void sub_8079B7C(void); +void ResetSaveHeap(void); #endif //GUARD_RESET_SAVE_HEAP_H diff --git a/include/save.h b/include/save.h index 5b7223e77..ed527eefd 100644 --- a/include/save.h +++ b/include/save.h @@ -54,6 +54,11 @@ struct SaveSectionOffsets #define UNKNOWN_CHECK_VALUE 0x8012025 +#define SECTOR_SAVE1(n) (n) +#define SECTOR_SAVE2(n) ((n) + NUM_SECTORS_PER_SAVE_SLOT) +#define SECTOR_HOF(n) ((n) + 2 * NUM_SECTORS_PER_SAVE_SLOT) +#define SECTOR_TTOWER(n) ((n) + 2 * NUM_SECTORS_PER_SAVE_SLOT + 2) + // SetSectorDamagedStatus states enum { @@ -106,7 +111,7 @@ u8 sub_80DA40C(void); u8 sub_80DA434(void); u8 sub_80DA45C(void); bool8 sub_80DA4A0(void); -u8 Save_LoadGameData(u8 a1); +u8 Save_LoadGameData(u8 saveType); u32 TryCopySpecialSaveSection(u8 sector, u8* dst); u32 sub_8153634(u8 sector, u8* src); void sub_8153688(u8 taskId); diff --git a/src/cereader_tool.c b/src/cereader_tool.c index 066702fe0..654a70b48 100644 --- a/src/cereader_tool.c +++ b/src/cereader_tool.c @@ -47,11 +47,11 @@ static bool32 CEReaderTool_SaveTrainerTower_r(struct EReaderTrainerHillSet * ttd memset(buffer, 0, 0x1000); memcpy(buffer, ttdata, SEC30_SIZE); buffer[1] = sub_815D654(); - if (TryWriteSpecialSaveSection(30, buffer) != TRUE) + if (TryWriteSpecialSaveSection(SECTOR_TTOWER(0), buffer) != TRUE) return FALSE; memset(buffer, 0, 0x1000); memcpy(buffer, (u8 *)ttdata + SEC30_SIZE, SEC31_SIZE); - if (TryWriteSpecialSaveSection(31, buffer) != TRUE) + if (TryWriteSpecialSaveSection(SECTOR_TTOWER(1), buffer) != TRUE) return FALSE; return TRUE; } @@ -66,11 +66,11 @@ bool32 CEReaderTool_SaveTrainerTower(struct EReaderTrainerHillSet * ttdata) static bool32 CEReaderTool_LoadTrainerTower_r(struct EReaderTrainerHillSet * ttdata, void * buffer) { - if (TryCopySpecialSaveSection(30, buffer) != 1) + if (TryCopySpecialSaveSection(SECTOR_TTOWER(0), buffer) != 1) return FALSE; memcpy(ttdata + 0x000, buffer, SEC30_SIZE); - if (TryCopySpecialSaveSection(31, buffer) != 1) + if (TryCopySpecialSaveSection(SECTOR_TTOWER(1), buffer) != 1) return FALSE; memcpy((u8 *)ttdata + SEC30_SIZE, buffer, SEC31_SIZE); diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 791d2dc33..bbdddf883 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -80,7 +80,7 @@ static void Task_Hof_WaitAndPrintPlayerInfo(u8 taskId); static void Task_Hof_ExitOnKeyPressed(u8 taskId); static void Task_Hof_HandlePaletteOnExit(u8 taskId); static void Task_Hof_HandleExit(u8 taskId); -static void SetCallback2AfterHallOfFameDisplay(void); +static void SetWarpsToRollCredits(void); static void Task_HofPC_CopySaveData(u8 taskId); static void Task_HofPC_DrawSpritesPrintText(u8 taskId); static void Task_HofPC_PrintMonInfo(u8 taskId); @@ -699,11 +699,11 @@ static void Task_Hof_HandleExit(u8 taskId) if (sHofMonPtr != NULL) FREE_AND_SET_NULL(sHofMonPtr); - SetCallback2AfterHallOfFameDisplay(); + SetWarpsToRollCredits(); } } -static void SetCallback2AfterHallOfFameDisplay(void) +static void SetWarpsToRollCredits(void) { VarSet(VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR, 1); FlagSet(FLAG_SPECIAL_FLAG_0x4000); diff --git a/src/intro.c b/src/intro.c index e2432b6a2..33a03a389 100644 --- a/src/intro.c +++ b/src/intro.c @@ -574,7 +574,7 @@ void c2_copyright_1(void) { ResetMenuAndMonGlobals(); Save_ResetSaveCounters(); - Save_LoadGameData(0); + Save_LoadGameData(SAVE_NORMAL); if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_INVALID) Sav2_ClearSetDefault(); SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); diff --git a/src/link.c b/src/link.c index ac9cf9cfe..dfbc9fcb2 100644 --- a/src/link.c +++ b/src/link.c @@ -464,7 +464,7 @@ void LinkTestProcessKeyInput(void) } if (JOY_NEW(R_BUTTON)) { - TrySavingData(1); + TrySavingData(SAVE_LINK); } if (JOY_NEW(SELECT_BUTTON)) { @@ -1581,7 +1581,7 @@ static void CB2_PrintErrorMessage(void) PlaySE(SE_PIN); gWirelessCommType = 0; sLinkErrorBuffer.unk_06 = 0; - sub_8079B7C(); + ResetSaveHeap(); } } else if (gWirelessCommType == 2) diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index 55a1a7287..8384d211d 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -914,7 +914,7 @@ bool32 mevent_save_game(u8 * state) (*state)++; break; case 1: - TrySavingData(0); + TrySavingData(SAVE_NORMAL); (*state)++; break; case 2: diff --git a/src/quest_log.c b/src/quest_log.c index 7ce3ede12..dfb3bad5b 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -1067,7 +1067,7 @@ static void QuestLog_EndPlayback(void) { ResetSpecialVars(); Save_ResetSaveCounters(); - Save_LoadGameData(0); + Save_LoadGameData(SAVE_NORMAL); SetMainCallback2(sub_8057430); gFieldCallback2 = sub_8111F60; FreeAllWindowBuffers(); diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c index 428f7b88d..7b9d30c06 100644 --- a/src/reset_save_heap.c +++ b/src/reset_save_heap.c @@ -8,7 +8,7 @@ #include "overworld.h" #include "malloc.h" -void sub_8079B7C(void) +void ResetSaveHeap(void) { u16 imeBackup = REG_IME; @@ -20,8 +20,8 @@ void sub_8079B7C(void) SetSaveBlocksPointers(); ResetMenuAndMonGlobals(); Save_ResetSaveCounters(); - Save_LoadGameData(0); - if (gSaveFileStatus == 0 || gSaveFileStatus == 2) + Save_LoadGameData(SAVE_NORMAL); + if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_INVALID) Sav2_ClearSetDefault(); SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); InitHeap(gHeap, HEAP_SIZE); diff --git a/src/save.c b/src/save.c index e38e9f10f..a2d365886 100644 --- a/src/save.c +++ b/src/save.c @@ -719,7 +719,7 @@ bool8 sub_80DA3D8(void) { u8 retVal = sub_80D9AA4(0xE, gRamSaveSectionLocations); if (gDamagedSaveSectors) - DoSaveFailedScreen(0); + DoSaveFailedScreen(SAVE_NORMAL); if (retVal == 0xFF) return 1; else @@ -730,7 +730,7 @@ u8 sub_80DA40C(void) { sub_80D9B04(0xE, gRamSaveSectionLocations); if (gDamagedSaveSectors) - DoSaveFailedScreen(0); + DoSaveFailedScreen(SAVE_NORMAL); return 0; } @@ -738,7 +738,7 @@ u8 sub_80DA434(void) { sav12_xor_get(0xE, gRamSaveSectionLocations); if (gDamagedSaveSectors) - DoSaveFailedScreen(0); + DoSaveFailedScreen(SAVE_NORMAL); return 0; } @@ -769,34 +769,34 @@ bool8 sub_80DA4A0(void) retVal = TRUE; } if (gDamagedSaveSectors) - DoSaveFailedScreen(1); + DoSaveFailedScreen(SAVE_LINK); return retVal; } -u8 Save_LoadGameData(u8 a1) +u8 Save_LoadGameData(u8 saveType) { u8 result; if (gFlashMemoryPresent != TRUE) { - gSaveFileStatus = 4; - return 0xFF; + gSaveFileStatus = SAVE_STATUS_NO_FLASH; + return SAVE_STATUS_ERROR; } UpdateSaveAddresses(); - switch (a1) + switch (saveType) { - case 0: + case SAVE_NORMAL: default: result = sub_80D9E14(0xFFFF, gRamSaveSectionLocations); LoadSerializedGame(); gSaveFileStatus = result; gGameContinueCallback = 0; break; - case 3: - result = sub_80DA120(0x1C, gDecompressionBuffer, 0xF80); - if(result == 1) - result = sub_80DA120(0x1D, gDecompressionBuffer + 0xF80, 0xF80); + case SAVE_HALL_OF_FAME: + result = sub_80DA120(SECTOR_HOF(0), gDecompressionBuffer, 0xF80); + if (result == SAVE_STATUS_OK) + result = sub_80DA120(SECTOR_HOF(1), gDecompressionBuffer + 0xF80, 0xF80); break; } @@ -809,7 +809,7 @@ u32 TryCopySpecialSaveSection(u8 sector, u8* dst) s32 size; u8* savData; - if (sector != 30 && sector != 31) + if (sector != SECTOR_TTOWER(0) && sector != SECTOR_TTOWER(1)) return 0xFF; ReadFlash(sector, 0, (u8 *)&gSaveDataBuffer, sizeof(struct SaveSection)); if (*(u32*)(&gSaveDataBuffer.data[0]) != 0xB39D) @@ -830,7 +830,7 @@ u32 TryWriteSpecialSaveSection(u8 sector, u8* src) u8* savData; void* savDataBuffer; - if (sector != 30 && sector != 31) + if (sector != SECTOR_TTOWER(0) && sector != SECTOR_TTOWER(1)) return 0xFF; savDataBuffer = &gSaveDataBuffer; diff --git a/src/title_screen.c b/src/title_screen.c index 44bdc7c0f..2d6b6cf15 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -621,7 +621,7 @@ static void SetTitleScreenScene_Cry(s16 * data) SetSaveBlocksPointers(); ResetMenuAndMonGlobals(); Save_ResetSaveCounters(); - Save_LoadGameData(0); + Save_LoadGameData(SAVE_NORMAL); if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_INVALID) Sav2_ClearSetDefault(); SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); |