Propagate save status, type, and sector defines

This commit is contained in:
PikalaxALT
2019-11-04 17:12:02 -05:00
parent 57b328ad40
commit 2fa08605b8
11 changed files with 38 additions and 33 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
// Exported ROM declarations
void sub_8079B7C(void);
void ResetSaveHeap(void);
#endif //GUARD_RESET_SAVE_HEAP_H
+6 -1
View File
@@ -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);
+4 -4
View File
@@ -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);
+3 -3
View File
@@ -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);
+1 -1
View File
@@ -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);
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -914,7 +914,7 @@ bool32 mevent_save_game(u8 * state)
(*state)++;
break;
case 1:
TrySavingData(0);
TrySavingData(SAVE_NORMAL);
(*state)++;
break;
case 2:
+1 -1
View File
@@ -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();
+3 -3
View File
@@ -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);
+15 -15
View File
@@ -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;
+1 -1
View File
@@ -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);