Merge pull request #207 from westonCoder/savefile-chamber-number
Correct Chamber Numbers
This commit is contained in:
commit
2085847001
|
@ -206,4 +206,42 @@ struct Location* levelGetLocation(short index) {
|
|||
}
|
||||
|
||||
return &gCurrentLevel->locations[index];
|
||||
}
|
||||
|
||||
int levelGetChamberNumber(int levelIndex, int roomIndex){
|
||||
switch(levelIndex){
|
||||
case 0:
|
||||
if (roomIndex <= 2)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
case 1:
|
||||
if (roomIndex <= 2)
|
||||
return 2;
|
||||
else
|
||||
return 3;
|
||||
case 2:
|
||||
if (roomIndex <= 2)
|
||||
return 4;
|
||||
else
|
||||
return 5;
|
||||
case 3:
|
||||
if (roomIndex <= 2)
|
||||
return 6;
|
||||
else
|
||||
return 7;
|
||||
case 4:
|
||||
return 8;
|
||||
case 5:
|
||||
return 9;
|
||||
case 6:
|
||||
return 10;
|
||||
case 7:
|
||||
if (roomIndex <= 2)
|
||||
return 11;
|
||||
else
|
||||
return 12;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
|
@ -28,6 +28,8 @@ Gfx* levelMaterialRevert(int index);
|
|||
|
||||
int levelQuadIndex(struct CollisionObject* pointer);
|
||||
|
||||
int levelGetChamberNumber(int levelIndex, int roomIndex);
|
||||
|
||||
struct Location* levelGetLocation(short index);
|
||||
|
||||
#endif
|
|
@ -37,7 +37,7 @@ void saveGamePopulate(struct SaveGameMenu* saveGame, int includeNew) {
|
|||
if (includeNew && freeSlot != SAVEFILE_NO_SLOT) {
|
||||
savefileInfo[numberOfSaves].slotIndex = freeSlot;
|
||||
savefileInfo[numberOfSaves].savefileName = "NEW SAVE";
|
||||
savefileInfo[numberOfSaves].testchamberIndex = gCurrentLevelIndex;
|
||||
savefileInfo[numberOfSaves].testchamberIndex = levelGetChamberNumber(gCurrentLevelIndex, gScene.player.body.currentRoom);
|
||||
savefileInfo[numberOfSaves].screenshot = gScreenGrabBuffer;
|
||||
|
||||
if (suggestedSlot == 0) {
|
||||
|
@ -60,7 +60,7 @@ enum MenuDirection saveGameUpdate(struct SaveGameMenu* saveGame) {
|
|||
if (controllerGetButtonDown(0, A_BUTTON) && saveGame->savefileList->numberOfSaves) {
|
||||
Checkpoint* save = stackMalloc(MAX_CHECKPOINT_SIZE);
|
||||
if (checkpointSaveInto(&gScene, save)) {
|
||||
savefileSaveGame(save, gScreenGrabBuffer, gCurrentLevelIndex, gCurrentTestSubject, savefileGetSlot(saveGame->savefileList));
|
||||
savefileSaveGame(save, gScreenGrabBuffer, levelGetChamberNumber(gCurrentLevelIndex, gScene.player.body.currentRoom), gCurrentTestSubject, savefileGetSlot(saveGame->savefileList));
|
||||
saveGamePopulate(saveGame, 0);
|
||||
}
|
||||
stackMallocFree(save);
|
||||
|
|
|
@ -52,7 +52,7 @@ void checkpointSave(struct Scene* scene) {
|
|||
savefileGrabScreenshot();
|
||||
gHasCheckpoint = checkpointSaveInto(scene, gCheckpoint);
|
||||
// slot 0 is the autosave slot
|
||||
savefileSaveGame(gCheckpoint, gScreenGrabBuffer, gCurrentLevelIndex, gCurrentTestSubject, 0);
|
||||
savefileSaveGame(gCheckpoint, gScreenGrabBuffer, levelGetChamberNumber(gCurrentLevelIndex, gScene.player.body.currentRoom), gCurrentTestSubject, 0);
|
||||
}
|
||||
|
||||
void checkpointLoadLast(struct Scene* scene) {
|
||||
|
|
Loading…
Reference in a new issue