Merge pull request #591 from mwpenny/save-fix
Do not save partial savefile on first boot (fixes #583)
This commit is contained in:
commit
b0c02a33f7
|
@ -77,6 +77,12 @@ int savefileSramLoad(void* sramAddr, void* ramAddr, int size) {
|
||||||
return 1;
|
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() {
|
void savefileNew() {
|
||||||
zeroMemory(&gSaveData, sizeof(gSaveData));
|
zeroMemory(&gSaveData, sizeof(gSaveData));
|
||||||
gSaveData.header.header = SAVEFILE_HEADER;
|
gSaveData.header.header = SAVEFILE_HEADER;
|
||||||
|
@ -85,7 +91,7 @@ void savefileNew() {
|
||||||
gSaveData.header.flags = 0;
|
gSaveData.header.flags = 0;
|
||||||
|
|
||||||
for (int i = 0; i < MAX_SAVE_SLOTS; ++i) {
|
for (int i = 0; i < MAX_SAVE_SLOTS; ++i) {
|
||||||
savefileDeleteGame(i);
|
savefileUpdateSlot(i, NO_TEST_CHAMBER, 0xFF, 0xFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
controllerSetDefaultSource();
|
controllerSetDefaultSource();
|
||||||
|
@ -162,9 +168,7 @@ void savefileDeleteGame(int slotIndex) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gSaveData.saveSlotMetadata[slotIndex].testChamber = NO_TEST_CHAMBER;
|
savefileUpdateSlot(slotIndex, NO_TEST_CHAMBER, 0xFF, 0xFF);
|
||||||
gSaveData.saveSlotMetadata[slotIndex].testSubjectNumber = 0xFF;
|
|
||||||
gSaveData.saveSlotMetadata[slotIndex].saveSlotOrder = 0xFF;
|
|
||||||
|
|
||||||
savefileSave();
|
savefileSave();
|
||||||
}
|
}
|
||||||
|
@ -184,9 +188,7 @@ void savefileSaveGame(Checkpoint checkpoint, u16* screenshot, int testChamberDis
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gSaveData.saveSlotMetadata[slotIndex].testChamber = testChamberDisplayNumber;
|
savefileUpdateSlot(slotIndex, testChamberDisplayNumber, subjectNumber, 0);
|
||||||
gSaveData.saveSlotMetadata[slotIndex].testSubjectNumber = subjectNumber;
|
|
||||||
gSaveData.saveSlotMetadata[slotIndex].saveSlotOrder = 0;
|
|
||||||
|
|
||||||
savefileSave();
|
savefileSave();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue