diff --git a/src/code/z_scene.c b/src/code/z_scene.c index d2d88cc7cf..1092c8bb6e 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -9,13 +9,13 @@ GLOBAL_ASM("./asm/non_matchings/z_scene/Scene_ReloadUnloadedObjects.asm") s32 Scene_FindSceneObjectIndex(SceneContext* sceneCtxt, s16 objectId) { s32 i; - + for(i = 0; i < sceneCtxt->objectCount; i++) { if((sceneCtxt->objects[i].id < 0 ? -sceneCtxt->objects[i].id : sceneCtxt->objects[i].id) == objectId) { return i; } } - + return -1; } @@ -38,10 +38,10 @@ void Scene_HeaderCommand00(GlobalContext* ctxt, SceneCmd* entry) { void* objectVramAddr; s16 temp16; u8 unk20; - + ctxt->linkActorEntry = (ActorEntry*)Lib_PtrSegToVirt((void*)entry->spawnList.segment) + ctxt->setupEntranceList[ctxt->curSpawn].spawn; - + if ( (ctxt->linkActorEntry->params & 0x0F00) >> 8 == 0x0C || (gSaveContext.extra.unk10 == 0x02 && gSaveContext.extra.unk42 == 0x0CFF) ) { @@ -50,18 +50,18 @@ void Scene_HeaderCommand00(GlobalContext* ctxt, SceneCmd* entry) { } loadReturn = Scene_LoadObject(&ctxt->sceneContext, 0x11); - + global = ctxt; objectVramAddr = global->sceneContext.objects[global->sceneContext.objectCount].vramAddr; - + ctxt->sceneContext.objectCount = loadReturn; ctxt->sceneContext.unk9 = loadReturn; - + unk20 = gSaveContext.perm.unk20; temp16 = D_801C2730[unk20]; - + actorOverlayTable[0].initInfo->objectId = temp16; - + Scene_LoadObject(&ctxt->sceneContext, temp16); ctxt->sceneContext.objects[ctxt->sceneContext.objectCount].vramAddr = objectVramAddr; @@ -179,12 +179,12 @@ void Scene_HeaderCommand0F(GlobalContext* ctxt, SceneCmd* entry) { s32 func_8012FF10(GlobalContext* ctxt, s32 fileIndex) { s32 vromStart = D_801C2660[fileIndex].vromStart; s32 fileSize = D_801C2660[fileIndex].vromEnd - vromStart; - + if (fileSize) { ctxt->roomContext.unk74 = GameStateHeap_AllocFromEnd(&ctxt->state.heap, fileSize); return DmaMgr_SendRequest0((s32)ctxt->roomContext.unk74, vromStart, fileSize); } - + // UB: Undefined behaviour to not have a return statement here, but it breaks matching to add one. } @@ -207,9 +207,9 @@ GLOBAL_ASM("./asm/non_matchings/z_scene/Scene_HeaderCommand10.asm") // Scene Command 0x05: Wind Settings void Scene_HeaderCommand05(GlobalContext* ctxt, SceneCmd* entry) { s8 temp1 = entry->windSettings.unk4; - s8 temp2 = entry->windSettings.unk5; + s8 temp2 = entry->windSettings.unk5; s8 temp3 = entry->windSettings.unk6; - + ctxt->kankyoContext.unkAC = temp1; ctxt->kankyoContext.unkAE = temp2; ctxt->kankyoContext.unkB0 = temp3; @@ -230,8 +230,8 @@ void Scene_HeaderCommand15(GlobalContext* ctxt, SceneCmd* entry) { ctxt->unk814 = entry->soundSettings.musicSeq; ctxt->unk815 = entry->soundSettings.nighttimeSFX; if (gSaveContext.extra.unk276 == 0xFF || func_801A8A50(0) == 0x57) { - func_801A400C(entry->soundSettings.bgmId); - } + audio_setBGM(entry->soundSettings.bgmId); + } } // Scene Command 0x16: Echo Setting @@ -243,11 +243,11 @@ void Scene_HeaderCommand16(GlobalContext* ctxt, SceneCmd* entry) { void Scene_HeaderCommand18(GlobalContext* ctxt, SceneCmd* entry) { SceneCmd** altHeaderList; SceneCmd* altHeader; - + if (gSaveContext.extra.sceneSetupIndex) { altHeaderList = (SceneCmd**)Lib_PtrSegToVirt((void*)entry->altHeaders.segment); altHeader = altHeaderList[gSaveContext.extra.sceneSetupIndex - 1]; - + if (altHeader != NULL) { Scene_ProcessHeader(ctxt, (SceneCmd*)Lib_PtrSegToVirt(altHeader)); (entry + 1)->base.code = 0x14;