summaryrefslogtreecommitdiff
path: root/soh/src/code
diff options
context:
space:
mode:
authorGarrett Cox <garrettjcox@gmail.com>2024-04-04 08:15:34 -0500
committerGarrett Cox <garrettjcox@gmail.com>2024-04-04 08:15:34 -0500
commit325035e4738feaae749bc643add6361f1927d610 (patch)
tree87058b0ea18d680af2e7ff817d3f04ec8e36cc8b /soh/src/code
parent2339a729eea09c71d066070e01f6de77a496d510 (diff)
parent01bcc4bb5926b0a880504a96a5c1ad9d28821a28 (diff)
Merge branch 'develop-rando' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-changes
Diffstat (limited to 'soh/src/code')
-rw-r--r--soh/src/code/z_message_PAL.c5
-rw-r--r--soh/src/code/z_sram.c117
2 files changed, 64 insertions, 58 deletions
diff --git a/soh/src/code/z_message_PAL.c b/soh/src/code/z_message_PAL.c
index 94ab49fda..a025a2c0d 100644
--- a/soh/src/code/z_message_PAL.c
+++ b/soh/src/code/z_message_PAL.c
@@ -8,6 +8,7 @@
#include "textures/message_static/message_static.h"
#include "textures/message_texture_static/message_texture_static.h"
#include "soh/Enhancements/cosmetics/cosmeticsTypes.h"
+#include "soh/Enhancements/game-interactor/GameInteractor.h"
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
#include "soh/OTRGlobals.h"
@@ -3087,7 +3088,9 @@ void Message_Draw(PlayState* play) {
POLY_OPA_DISP = plusOne;
}
plusOne = Graph_GfxPlusOne(polyOpaP = POLY_OPA_DISP);
- gSPDisplayList(OVERLAY_DISP++, plusOne);
+ if (!GameInteractor_NoUIActive()) {
+ gSPDisplayList(OVERLAY_DISP++, plusOne);
+ }
Message_DrawMain(play, &plusOne);
gSPEndDisplayList(plusOne++);
Graph_BranchDlist(polyOpaP, plusOne);
diff --git a/soh/src/code/z_sram.c b/soh/src/code/z_sram.c
index 002e95987..2ec190b41 100644
--- a/soh/src/code/z_sram.c
+++ b/soh/src/code/z_sram.c
@@ -74,65 +74,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 = sDungeonEntrances[gSaveContext.savedSceneNum];
- break;
- case SCENE_DEKU_TREE_BOSS:
- gSaveContext.entranceIndex = ENTR_DEKU_TREE_0;
- break;
- case SCENE_DODONGOS_CAVERN_BOSS:
- gSaveContext.entranceIndex = ENTR_DODONGOS_CAVERN_0;
- break;
- case SCENE_JABU_JABU_BOSS:
- gSaveContext.entranceIndex = ENTR_JABU_JABU_0;
- break;
- case SCENE_FOREST_TEMPLE_BOSS:
- gSaveContext.entranceIndex = ENTR_FOREST_TEMPLE_0;
- break;
- case SCENE_FIRE_TEMPLE_BOSS:
- gSaveContext.entranceIndex = ENTR_FIRE_TEMPLE_0;
- break;
- case SCENE_WATER_TEMPLE_BOSS:
- gSaveContext.entranceIndex = ENTR_WATER_TEMPLE_0;
- break;
- case SCENE_SPIRIT_TEMPLE_BOSS:
- gSaveContext.entranceIndex = ENTR_SPIRIT_TEMPLE_0;
- break;
- case SCENE_SHADOW_TEMPLE_BOSS:
- gSaveContext.entranceIndex = ENTR_SHADOW_TEMPLE_0;
- 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 = ENTR_GANONS_TOWER_0;
+ 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 = sDungeonEntrances[gSaveContext.savedSceneNum];
+ break;
+ case SCENE_DEKU_TREE_BOSS:
+ gSaveContext.entranceIndex = ENTR_DEKU_TREE_0;
+ break;
+ case SCENE_DODONGOS_CAVERN_BOSS:
+ gSaveContext.entranceIndex = ENTR_DODONGOS_CAVERN_0;
+ break;
+ case SCENE_JABU_JABU_BOSS:
+ gSaveContext.entranceIndex = ENTR_JABU_JABU_0;
+ break;
+ case SCENE_FOREST_TEMPLE_BOSS:
+ gSaveContext.entranceIndex = ENTR_FOREST_TEMPLE_0;
+ break;
+ case SCENE_FIRE_TEMPLE_BOSS:
+ gSaveContext.entranceIndex = ENTR_FIRE_TEMPLE_0;
+ break;
+ case SCENE_WATER_TEMPLE_BOSS:
+ gSaveContext.entranceIndex = ENTR_WATER_TEMPLE_0;
+ break;
+ case SCENE_SPIRIT_TEMPLE_BOSS:
+ gSaveContext.entranceIndex = ENTR_SPIRIT_TEMPLE_0;
+ break;
+ case SCENE_SHADOW_TEMPLE_BOSS:
+ gSaveContext.entranceIndex = ENTR_SHADOW_TEMPLE_0;
+ 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 = ENTR_GANONS_TOWER_0;
+ 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) ? ENTR_LINKS_HOUSE_0 : ENTR_TEMPLE_OF_TIME_7;
- } else {
- gSaveContext.entranceIndex = ENTR_LINKS_HOUSE_0;
- }
- break;
- }
+ if (gSaveContext.savedSceneNum != SCENE_LINKS_HOUSE) {
+ gSaveContext.entranceIndex = (LINK_AGE_IN_YEARS == YEARS_CHILD) ? ENTR_LINKS_HOUSE_0 : ENTR_TEMPLE_OF_TIME_7;
+ } else {
+ gSaveContext.entranceIndex = ENTR_LINKS_HOUSE_0;
+ }
+ break;
}
osSyncPrintf("scene_no = %d\n", gSaveContext.entranceIndex);