summaryrefslogtreecommitdiff
path: root/soh/src/code
diff options
context:
space:
mode:
authorAdam Bird <Archez@users.noreply.github.com>2023-01-20 01:00:12 -0500
committerGitHub <noreply@github.com>2023-01-20 01:00:12 -0500
commit261db2c3e1b7075dc4bdfcc207512a3604dc3885 (patch)
tree7083e97f9266a86982fd7e5514e1f254298c6e8a /soh/src/code
parent7964bde063ceb46ec9b329ff2a0613d631a3dfe8 (diff)
Rando: Boss Entrance Shuffle (#2194)
* sync 3ds upstream logic changes for boss rooms * add boss shuffle settings and handling to 3ds code * add boss shuffle handling to game code * repair authentically bugged entrances for boss shuffle * add boss entrances to the entrance tracker * unset hint area for boss rooms to fix altar hint * update boss reward hints to not mention dungeons * one more boss heart container hint fix * reorder entrance rando funcs * support closed forest with boss shuffle and simple boss room entrance pairs in shuffle table * fix death warp in boss rooms without saving; fix KD boss room in tracker * remove boss shuffle check from dungeon open checks and some cleanups * add boss shuffle to preset clear * remove dungeon entry exit connection from boss rooms * another no hint fix for boss shuffle * undo change for exact location hints * clarify comments
Diffstat (limited to 'soh/src/code')
-rw-r--r--soh/src/code/z_room.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/soh/src/code/z_room.c b/soh/src/code/z_room.c
index c135123f8..23fb6a4d7 100644
--- a/soh/src/code/z_room.c
+++ b/soh/src/code/z_room.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "vt.h"
+#include "soh/Enhancements/randomizer/randomizer_entrance.h"
void func_80095AB4(PlayState* play, Room* room, u32 flags);
void func_80095D04(PlayState* play, Room* room, u32 flags);
@@ -575,6 +576,12 @@ u32 func_80096FE8(PlayState* play, RoomContext* roomCtx) {
s32 func_8009728C(PlayState* play, RoomContext* roomCtx, s32 roomNum) {
size_t size;
+ // In ER, override roomNum to load based on scene and spawn
+ if (gSaveContext.n64ddFlag && gSaveContext.respawnFlag <= 0 &&
+ Randomizer_GetSettingValue(RSK_SHUFFLE_ENTRANCES)) {
+ roomNum = Entrance_OverrideSpawnSceneRoom(play->sceneNum, play->curSpawn, roomNum);
+ }
+
return OTRfunc_8009728C(play, roomCtx, roomNum);
if (roomCtx->status == 0) {