diff --git a/src/savefile/savefile.c b/src/savefile/savefile.c index 52f2e93..0cf081d 100755 --- a/src/savefile/savefile.c +++ b/src/savefile/savefile.c @@ -77,6 +77,12 @@ int savefileSramLoad(void* sramAddr, void* ramAddr, int size) { return 1; } +static void savefileUpdateSlot(int slotIndex, unsigned char testChamber, unsigned char subjectNumber, unsigned char slotOrder) { + gSaveData.saveSlotMetadata[slotIndex].testChamber = testChamber; + gSaveData.saveSlotMetadata[slotIndex].testSubjectNumber = subjectNumber; + gSaveData.saveSlotMetadata[slotIndex].saveSlotOrder = slotOrder; +} + void savefileNew() { zeroMemory(&gSaveData, sizeof(gSaveData)); gSaveData.header.header = SAVEFILE_HEADER; @@ -85,7 +91,7 @@ void savefileNew() { gSaveData.header.flags = 0; for (int i = 0; i < MAX_SAVE_SLOTS; ++i) { - savefileDeleteGame(i); + savefileUpdateSlot(i, NO_TEST_CHAMBER, 0xFF, 0xFF); } controllerSetDefaultSource(); @@ -162,9 +168,7 @@ void savefileDeleteGame(int slotIndex) { } } - gSaveData.saveSlotMetadata[slotIndex].testChamber = NO_TEST_CHAMBER; - gSaveData.saveSlotMetadata[slotIndex].testSubjectNumber = 0xFF; - gSaveData.saveSlotMetadata[slotIndex].saveSlotOrder = 0xFF; + savefileUpdateSlot(slotIndex, NO_TEST_CHAMBER, 0xFF, 0xFF); savefileSave(); } @@ -184,9 +188,7 @@ void savefileSaveGame(Checkpoint checkpoint, u16* screenshot, int testChamberDis } } - gSaveData.saveSlotMetadata[slotIndex].testChamber = testChamberDisplayNumber; - gSaveData.saveSlotMetadata[slotIndex].testSubjectNumber = subjectNumber; - gSaveData.saveSlotMetadata[slotIndex].saveSlotOrder = 0; + savefileUpdateSlot(slotIndex, testChamberDisplayNumber, subjectNumber, 0); savefileSave(); }