summaryrefslogtreecommitdiff
path: root/soh/src/code
diff options
context:
space:
mode:
Diffstat (limited to 'soh/src/code')
-rw-r--r--soh/src/code/z_room.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/soh/src/code/z_room.c b/soh/src/code/z_room.c
index 772978f09..e92925c6a 100644
--- a/soh/src/code/z_room.c
+++ b/soh/src/code/z_room.c
@@ -575,6 +575,13 @@ u32 func_80096FE8(PlayState* play, RoomContext* roomCtx) {
frontRoom = gSaveContext.respawnFlag > 0 ? ((void)0, gSaveContext.respawn[gSaveContext.respawnFlag - 1].roomIndex)
: play->setupEntranceList[play->curSpawn].room;
+
+ // In ER, override roomNum to load based on scene and spawn during scene init
+ if (IS_RANDO && gSaveContext.respawnFlag <= 0 &&
+ Randomizer_GetSettingValue(RSK_SHUFFLE_ENTRANCES)) {
+ frontRoom = Entrance_OverrideSpawnSceneRoom(play->sceneNum, play->curSpawn, frontRoom);
+ }
+
func_8009728C(play, roomCtx, frontRoom);
return maxRoomSize;
@@ -583,12 +590,6 @@ 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 (IS_RANDO && 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) {