summaryrefslogtreecommitdiff
path: root/soh/src/code
diff options
context:
space:
mode:
authorArchez <Archez@users.noreply.github.com>2024-02-28 22:33:51 -0500
committerGitHub <noreply@github.com>2024-02-28 22:33:51 -0500
commitfb6ea4256072b75e6d70a24948fd2120c47e247e (patch)
tree6ebbcca3c39373d61c0045a813638255865dbceb /soh/src/code
parentb26f2b21da3768b4caca370d5b3e6165849b4478 (diff)
prevent remember save location in dungeons/boss rooms (#3983)
Diffstat (limited to 'soh/src/code')
-rw-r--r--soh/src/code/z_sram.c117
1 files changed, 60 insertions, 57 deletions
diff --git a/soh/src/code/z_sram.c b/soh/src/code/z_sram.c
index 1ce20abc3..0152ecf2e 100644
--- a/soh/src/code/z_sram.c
+++ b/soh/src/code/z_sram.c
@@ -59,65 +59,68 @@ void Sram_OpenSave() {
Save_LoadFile();
- if (!CVarGetInteger("gRememberSaveLocation", 0) || gSaveContext.savedSceneNum == SCENE_FAIRYS_FOUNTAIN ||
- gSaveContext.savedSceneNum == SCENE_GROTTOS) {
- switch (gSaveContext.savedSceneNum) {
- case SCENE_DEKU_TREE:
- case SCENE_DODONGOS_CAVERN:
- case SCENE_JABU_JABU:
- case SCENE_FOREST_TEMPLE:
- case SCENE_FIRE_TEMPLE:
- case SCENE_WATER_TEMPLE:
- case SCENE_SPIRIT_TEMPLE:
- case SCENE_SHADOW_TEMPLE:
- case SCENE_BOTTOM_OF_THE_WELL:
- case SCENE_ICE_CAVERN:
- case SCENE_GANONS_TOWER:
- case SCENE_GERUDO_TRAINING_GROUND:
- case SCENE_THIEVES_HIDEOUT:
- case SCENE_INSIDE_GANONS_CASTLE:
- gSaveContext.entranceIndex = dungeonEntrances[gSaveContext.savedSceneNum];
- break;
- case SCENE_DEKU_TREE_BOSS:
- gSaveContext.entranceIndex = 0;
- break;
- case SCENE_DODONGOS_CAVERN_BOSS:
- gSaveContext.entranceIndex = 4;
- break;
- case SCENE_JABU_JABU_BOSS:
- gSaveContext.entranceIndex = 0x28;
- break;
- case SCENE_FOREST_TEMPLE_BOSS:
- gSaveContext.entranceIndex = 0x169;
- break;
- case SCENE_FIRE_TEMPLE_BOSS:
- gSaveContext.entranceIndex = 0x165;
- break;
- case SCENE_WATER_TEMPLE_BOSS:
- gSaveContext.entranceIndex = 0x10;
- break;
- case SCENE_SPIRIT_TEMPLE_BOSS:
- gSaveContext.entranceIndex = 0x82;
- break;
- case SCENE_SHADOW_TEMPLE_BOSS:
- gSaveContext.entranceIndex = 0x37;
- break;
- case SCENE_GANONS_TOWER_COLLAPSE_INTERIOR:
- case SCENE_INSIDE_GANONS_CASTLE_COLLAPSE:
- case SCENE_GANONDORF_BOSS:
- case SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR:
- case SCENE_GANON_BOSS:
- gSaveContext.entranceIndex = 0x41B;
+ switch (gSaveContext.savedSceneNum) {
+ case SCENE_DEKU_TREE:
+ case SCENE_DODONGOS_CAVERN:
+ case SCENE_JABU_JABU:
+ case SCENE_FOREST_TEMPLE:
+ case SCENE_FIRE_TEMPLE:
+ case SCENE_WATER_TEMPLE:
+ case SCENE_SPIRIT_TEMPLE:
+ case SCENE_SHADOW_TEMPLE:
+ case SCENE_BOTTOM_OF_THE_WELL:
+ case SCENE_ICE_CAVERN:
+ case SCENE_GANONS_TOWER:
+ case SCENE_GERUDO_TRAINING_GROUND:
+ case SCENE_THIEVES_HIDEOUT:
+ case SCENE_INSIDE_GANONS_CASTLE:
+ gSaveContext.entranceIndex = dungeonEntrances[gSaveContext.savedSceneNum];
+ break;
+ case SCENE_DEKU_TREE_BOSS:
+ gSaveContext.entranceIndex = 0;
+ break;
+ case SCENE_DODONGOS_CAVERN_BOSS:
+ gSaveContext.entranceIndex = 4;
+ break;
+ case SCENE_JABU_JABU_BOSS:
+ gSaveContext.entranceIndex = 0x28;
+ break;
+ case SCENE_FOREST_TEMPLE_BOSS:
+ gSaveContext.entranceIndex = 0x169;
+ break;
+ case SCENE_FIRE_TEMPLE_BOSS:
+ gSaveContext.entranceIndex = 0x165;
+ break;
+ case SCENE_WATER_TEMPLE_BOSS:
+ gSaveContext.entranceIndex = 0x10;
+ break;
+ case SCENE_SPIRIT_TEMPLE_BOSS:
+ gSaveContext.entranceIndex = 0x82;
+ break;
+ case SCENE_SHADOW_TEMPLE_BOSS:
+ gSaveContext.entranceIndex = 0x37;
+ break;
+ case SCENE_GANONS_TOWER_COLLAPSE_INTERIOR:
+ case SCENE_INSIDE_GANONS_CASTLE_COLLAPSE:
+ case SCENE_GANONDORF_BOSS:
+ case SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR:
+ case SCENE_GANON_BOSS:
+ gSaveContext.entranceIndex = 0x41B;
+ break;
+
+ default:
+ // Use the saved entrance value with remember save location, except when in grottos/fairy fountains
+ if (CVarGetInteger("gRememberSaveLocation", 0) && gSaveContext.savedSceneNum != SCENE_FAIRYS_FOUNTAIN &&
+ gSaveContext.savedSceneNum != SCENE_GROTTOS) {
break;
+ }
- default:
- if (gSaveContext.savedSceneNum != SCENE_LINKS_HOUSE) {
- gSaveContext.entranceIndex = (LINK_AGE_IN_YEARS == YEARS_CHILD) ? 0xBB : 0x5F4;
- } else {
- gSaveContext.entranceIndex = 0xBB;
- }
- break;
- }
+ if (gSaveContext.savedSceneNum != SCENE_LINKS_HOUSE) {
+ gSaveContext.entranceIndex = (LINK_AGE_IN_YEARS == YEARS_CHILD) ? 0xBB : 0x5F4;
+ } else {
+ gSaveContext.entranceIndex = 0xBB;
+ }
+ break;
}
osSyncPrintf("scene_no = %d\n", gSaveContext.entranceIndex);