From 6f96e665186c87f15acb6f5cb8d27665afee3130 Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Thu, 27 Nov 2025 21:19:33 -0800 Subject: various Z2Audio / JAudio debug cleanup (#2876) * some JAudio work * audio cleanup checkpoint * checkpoint more audio cleanup * fix symbols * more z2 cleanup * fix regression * fix build * some fixes --- src/Z2AudioLib/Z2SeqMgr.cpp | 1400 +++++++++++++++++++++++-------------------- 1 file changed, 752 insertions(+), 648 deletions(-) (limited to 'src/Z2AudioLib/Z2SeqMgr.cpp') diff --git a/src/Z2AudioLib/Z2SeqMgr.cpp b/src/Z2AudioLib/Z2SeqMgr.cpp index 82f91fd01e..da9f8b1ced 100644 --- a/src/Z2AudioLib/Z2SeqMgr.cpp +++ b/src/Z2AudioLib/Z2SeqMgr.cpp @@ -1,8 +1,3 @@ -// -// Generated By: dol2asm -// Translation Unit: Z2SeqMgr -// - #include "Z2AudioLib/Z2SeqMgr.h" #include "Z2AudioLib/Z2LinkMgr.h" #include "Z2AudioLib/Z2Param.h" @@ -13,7 +8,90 @@ #include "Z2AudioLib/Z2Calc.h" #include "JSystem/JAudio2/JAISoundChild.h" #include "JSystem/JAudio2/JAISeq.h" -#include "dol2asm.h" + +static const char* sSpotName[] = { + "F_SP00", + "F_SP103", + "R_SP01", + "F_SP104", + "R_SP107", + "F_SP108", + "R_SP108", + "F_SP117", + "F_SP109", + "R_SP109", + "R_SP209", + "F_SP110", + "R_SP110", + "F_SP111", + "F_SP128", + "R_SP128", + "F_SP115", + "F_SP112", + "F_SP126", + "F_SP127", + "R_SP127", + "F_SP113", + "F_SP116", + "R_SP116", + "R_SP160", + "R_SP161", + "F_SP114", + "F_SP118", + "F_SP124", + "F_SP125", + "F_SP121", + "F_SP122", + "F_SP123", + "F_SP200", + "F_SP102", + "", + "R_SP300", + "R_SP301", + "T_ENEMY", + "D_MN54", + "D_MN05", + "D_MN05B", + "D_MN05A", + "D_MN04", + "D_MN04B", + "D_MN04A", + "D_MN01", + "D_MN01B", + "D_MN01A", + "D_MN10", + "D_MN10B", + "D_MN10A", + "D_MN11", + "D_MN11B", + "D_MN11A", + "D_MN06", + "D_MN06B", + "D_MN06A", + "D_MN07", + "D_MN07B", + "D_MN07A", + "D_MN08", + "D_MN08B", + "D_MN08C", + "D_MN08A", + "D_MN08D", + "D_MN09", + "D_MN09A", + "D_MN09B", + "D_MN09C", + "D_SB00", + "D_SB01", + "D_SB02", + "D_SB03", + "D_SB04", + "D_SB05", + "D_SB06", + "D_SB07", + "D_SB08", + "D_SB09", + "D_SB10", +}; /* 802AEEA0-802AF010 2A97E0 0170+00 0/0 1/1 0/0 .text __ct__8Z2SeqMgrFv */ Z2SeqMgr::Z2SeqMgr() : JASGlobalInstance(true) { @@ -53,12 +131,12 @@ Z2SeqMgr::Z2SeqMgr() : JASGlobalInstance(true) { } /* 802AF010-802AF408 2A9950 03F8+00 3/3 5/5 38/38 .text bgmStart__8Z2SeqMgrFUlUll */ -void Z2SeqMgr::bgmStart(u32 i_bgmID, u32 i_count, s32 param_2) { - switch (i_bgmID) { +void Z2SeqMgr::bgmStart(u32 bgmID, u32 fadeTime, s32 param_2) { + switch (bgmID) { case -1: return; case 0x200005D: - bgmAllUnMute(0x21); + bgmAllUnMute(33); bgmStreamPrepare(0x200005d); bgmStreamPlay(); return; @@ -67,13 +145,13 @@ void Z2SeqMgr::bgmStart(u32 i_bgmID, u32 i_count, s32 param_2) { mMainBgmMaster.forceIn(); break; case Z2BGM_GAME_OVER: - if (getMainBgmID() != i_bgmID) { + if (getMainBgmID() != bgmID) { Z2GetSceneMgr()->setInGame(false); Z2GetSceneMgr()->setSceneExist(false); setBattleBgmOff(true); Z2GetSoundMgr()->getSeqMgr()->stop(0); Z2GetSoundMgr()->getStreamMgr()->stop(0); - Z2GetSoundMgr()->startSound(i_bgmID, &mMainBgmHandle, NULL); + Z2GetSoundMgr()->startSound(bgmID, &mMainBgmHandle, NULL); mBgmStatus = 0xff; } return; @@ -81,7 +159,7 @@ void Z2SeqMgr::bgmStart(u32 i_bgmID, u32 i_count, s32 param_2) { if (Z2GetLink() != NULL && Z2GetLink()->getCurrentPos() != NULL && Z2GetLink()->getCurrentPos()->y > -10000.0f) { - i_bgmID = Z2BGM_RAKKA_HOUSE; + bgmID = Z2BGM_RAKKA_HOUSE; } break; case Z2BGM_VS_GANON_01: @@ -96,33 +174,37 @@ void Z2SeqMgr::bgmStart(u32 i_bgmID, u32 i_count, s32 param_2) { mStreamBgmMaster.forceIn(); } + #if !PLATFORM_SHIELD if (Z2GetStatusMgr()->getDemoStatus() == 9) { if (mMainBgmHandle) { mMainBgmHandle->stop(0); } + if (param_2 == 0) { if (mSubBgmHandle) { mSubBgmHandle->stop(0); } mMainBgmMaster.forceIn(); } - } else { + } else + #endif + { bgmStop(0, param_2); } - if (i_bgmID == Z2BGM_FIELD_LINK_DAY || i_bgmID == Z2BGM_FIELD_LINK_NIGHT) { + if (bgmID == Z2BGM_FIELD_LINK_DAY || bgmID == Z2BGM_FIELD_LINK_NIGHT) { fieldBgmStart(); } else { - Z2GetSoundMgr()->startSound(i_bgmID, &mMainBgmHandle, NULL); + Z2GetSoundMgr()->startSound(bgmID, &mMainBgmHandle, NULL); mBgmStatus = 0xff; } - if (param_2 == 0 && i_count != 0) { - mMainBgmMaster.fadeInFromOut(i_count); + if (param_2 == 0 && fadeTime != 0) { + mMainBgmMaster.fadeInFromOut(fadeTime); } - if (i_bgmID == Z2BGM_BOSS_SNOWWOMAN_1 || i_bgmID == Z2BGM_HORSE_BATTLE - || i_bgmID == Z2BGM_VS_GANON_02 || i_bgmID == Z2BGM_TOAL_VILLEGE) + if (bgmID == Z2BGM_BOSS_SNOWWOMAN_1 || bgmID == Z2BGM_HORSE_BATTLE + || bgmID == Z2BGM_VS_GANON_02 || bgmID == Z2BGM_TOAL_VILLEGE) { changeBgmStatus(0); } @@ -132,116 +214,53 @@ void Z2SeqMgr::bgmStart(u32 i_bgmID, u32 i_count, s32 param_2) { } else { field_0xa4.forceIn(); } + + #if DEBUG + if (bgmID == Z2BGM_HIDDEN_VILLAGE) { + OS_REPORT("[Z2SeqMgr::bgmStart] Z2BGM_HIDDEN_VILLAGE start(%d)\n", mMainBgmHandle.isSoundAttached()); + OS_REPORT(" mainBgmMasterVol::%.2f \n", mMainBgmMaster.get()); + OS_REPORT(" subBgmMasterVol::%.2f \n", mSubBgmMaster.get()); + OS_REPORT(" allBgmMasterVol::%.2f \n", mAllBgmMaster.get()); + OS_REPORT(" bgmPauseVol::%.2f \n", mBgmPause.get()); + OS_REPORT(" fanfareMuteVol::%.2f \n", mFanfareMute.get()); + OS_REPORT(" windStoneVol::%.2f \n", mWindStone.get()); + OS_REPORT(" twilightGateVol::%.2f \n", mTwilightGateVol); + } + #endif } /* 802AF408-802AF49C 2A9D48 0094+00 3/3 5/5 30/30 .text bgmStop__8Z2SeqMgrFUll */ -void Z2SeqMgr::bgmStop(u32 i_count, s32 param_1) { +void Z2SeqMgr::bgmStop(u32 fadeTime, s32 param_1) { if (mMainBgmHandle) { - mMainBgmHandle->stop(i_count); + mMainBgmHandle->stop(fadeTime); } + if (mStreamBgmHandle) { - mStreamBgmHandle->stop(i_count); + mStreamBgmHandle->stop(fadeTime); } + if (param_1 == 0) { if (mSubBgmHandle) { - mSubBgmHandle->stop(i_count); + mSubBgmHandle->stop(fadeTime); } mMainBgmMaster.forceIn(); } } -static void dummyString() { - DEAD_STRING("F_SP00"); - DEAD_STRING("F_SP103"); - DEAD_STRING("R_SP01"); - DEAD_STRING("F_SP104"); - DEAD_STRING("R_SP107"); - DEAD_STRING("F_SP108"); - DEAD_STRING("R_SP108"); - DEAD_STRING("F_SP117"); - DEAD_STRING("F_SP109"); - DEAD_STRING("R_SP109"); - DEAD_STRING("R_SP209"); - DEAD_STRING("F_SP110"); - DEAD_STRING("R_SP110"); - DEAD_STRING("F_SP111"); - DEAD_STRING("F_SP128"); - DEAD_STRING("R_SP128"); - DEAD_STRING("F_SP115"); - DEAD_STRING("F_SP112"); - DEAD_STRING("F_SP126"); - DEAD_STRING("F_SP127"); - DEAD_STRING("R_SP127"); - DEAD_STRING("F_SP113"); - DEAD_STRING("F_SP116"); - DEAD_STRING("R_SP116"); - DEAD_STRING("R_SP160"); - DEAD_STRING("R_SP161"); - DEAD_STRING("F_SP114"); - DEAD_STRING("F_SP118"); - DEAD_STRING("F_SP124"); - DEAD_STRING("F_SP125"); - DEAD_STRING("F_SP121"); - DEAD_STRING("F_SP122"); - DEAD_STRING("F_SP123"); - DEAD_STRING("F_SP200"); - DEAD_STRING("F_SP102"); - DEAD_STRING(""); - DEAD_STRING("R_SP300"); - DEAD_STRING("R_SP301"); - DEAD_STRING("T_ENEMY"); - DEAD_STRING("D_MN54"); - DEAD_STRING("D_MN05"); - DEAD_STRING("D_MN05B"); - DEAD_STRING("D_MN05A"); - DEAD_STRING("D_MN04"); - DEAD_STRING("D_MN04B"); - DEAD_STRING("D_MN04A"); - DEAD_STRING("D_MN01"); - DEAD_STRING("D_MN01B"); - DEAD_STRING("D_MN01A"); - DEAD_STRING("D_MN10"); - DEAD_STRING("D_MN10B"); - DEAD_STRING("D_MN10A"); - DEAD_STRING("D_MN11"); - DEAD_STRING("D_MN11B"); - DEAD_STRING("D_MN11A"); - DEAD_STRING("D_MN06"); - DEAD_STRING("D_MN06B"); - DEAD_STRING("D_MN06A"); - DEAD_STRING("D_MN07"); - DEAD_STRING("D_MN07B"); - DEAD_STRING("D_MN07A"); - DEAD_STRING("D_MN08"); - DEAD_STRING("D_MN08B"); - DEAD_STRING("D_MN08C"); - DEAD_STRING("D_MN08A"); - DEAD_STRING("D_MN08D"); - DEAD_STRING("D_MN09"); - DEAD_STRING("D_MN09A"); - DEAD_STRING("D_MN09B"); - DEAD_STRING("D_MN09C"); - DEAD_STRING("D_SB00"); - DEAD_STRING("D_SB01"); - DEAD_STRING("D_SB02"); - DEAD_STRING("D_SB03"); - DEAD_STRING("D_SB04"); - DEAD_STRING("D_SB05"); - DEAD_STRING("D_SB06"); - DEAD_STRING("D_SB07"); - DEAD_STRING("D_SB08"); - DEAD_STRING("D_SB09"); - DEAD_STRING("D_SB10"); -} - /* 802AF49C-802AF884 2A9DDC 03E8+00 3/2 6/6 65/65 .text subBgmStart__8Z2SeqMgrFUl */ -void Z2SeqMgr::subBgmStart(u32 i_bgmID) { - if (i_bgmID == -1) { +void Z2SeqMgr::subBgmStart(u32 bgmID) { + #if DEBUG + const char** spotName = sSpotName; + #endif + + if (bgmID == -1) { return; } - int count_in, count_out; - switch (i_bgmID) { + int fadeinTime = 0; + int fadeoutTime = 0; + + switch (bgmID) { case Z2BGM_ITEM_GET: case Z2BGM_ITEM_GET_MINI: case Z2BGM_OPEN_BOX: @@ -274,25 +293,25 @@ void Z2SeqMgr::subBgmStart(u32 i_bgmID) { if (getSubBgmID() == Z2BGM_OBACHAN) { subBgmStop(); } - mFanfareID = i_bgmID; + mFanfareID = bgmID; return; case Z2BGM_FACE_OFF_BATTLE: case Z2BGM_BOSS_OCTAEEL_D02: case Z2BGM_DRAGON_D02: case Z2BGM_FACE_OFF_BATTLE2: case Z2BGM_FACE_OFF_BATTLE3: - count_in = 0; - count_out = -1; + fadeinTime = 0; + fadeoutTime = -1; break; case Z2BGM_LUTERA1: case Z2BGM_BOSS_SNOWWOMAN_D1: Z2GetStatusMgr()->setDemoName("force_start"); - count_in = 0; - count_out = struct_80450862; + fadeinTime = 0; + fadeoutTime = Z2Param::BGM_CROSS_FADEOUT_TIME; break; case Z2BGM_TARO_RESCUE: - count_in = 0; - count_out = 120; + fadeinTime = 0; + fadeoutTime = 120; bgmStop(0, 0); break; case Z2BGM_OBACHAN: @@ -331,13 +350,13 @@ void Z2SeqMgr::subBgmStart(u32 i_bgmID) { case Z2BGM_GOMA_D01: case Z2BGM_MINIGAME_WIN01: case Z2BGM_MINIGAME_WIN02: - count_in = 0; - count_out = 1; + fadeinTime = 0; + fadeoutTime = 1; break; case Z2BGM_COWBOY_GAME: mAllBgmMaster.forceIn(); - count_in = 0; - count_out = 1; + fadeinTime = 0; + fadeoutTime = 1; break; case Z2BGM_SNOWBOARD_WIN: case Z2BGM_SNOWBOARD_LOSE: @@ -356,27 +375,27 @@ void Z2SeqMgr::subBgmStart(u32 i_bgmID) { case Z2BGM_HORSE_BATTLE: case Z2BGM_TN_MBOSS_LV9: mStreamBgmMaster.forceIn(); - count_in = 0; - count_out = 1; + fadeinTime = 0; + fadeoutTime = 1; break; case Z2BGM_MAGNE_GORON_D01: case Z2BGM_DEKUTOAD_D01: - count_in = 0; - count_out = 20; + fadeinTime = 0; + fadeoutTime = 20; break; case Z2BGM_IB_MBOSS_D01: case Z2BGM_GG_MBOSS_D01: - count_in = 0; - count_out = struct_80450862; + fadeinTime = 0; + fadeoutTime = Z2Param::BGM_CROSS_FADEOUT_TIME; break; default: - count_in = struct_80450861; - count_out = struct_80450862; + fadeinTime = Z2Param::BGM_CROSS_FADEIN_TIME; + fadeoutTime = Z2Param::BGM_CROSS_FADEOUT_TIME; break; } - if (i_bgmID == getSubBgmID()) { - if (i_bgmID == Z2BGM_SUMO || i_bgmID == Z2BGM_COWBOY_GAME) { + if (bgmID == getSubBgmID()) { + if (bgmID == Z2BGM_SUMO || bgmID == Z2BGM_COWBOY_GAME) { mSubBgmHandle->stop(0); mSubBgmHandle.releaseSound(); } else { @@ -388,10 +407,10 @@ void Z2SeqMgr::subBgmStart(u32 i_bgmID) { subBgmStopInner(); } - Z2GetSoundMgr()->startSound(i_bgmID, &mSubBgmHandle, NULL); + Z2GetSoundMgr()->startSound(bgmID, &mSubBgmHandle, NULL); mSubBgmStatus = 0xff; - switch (i_bgmID) { + switch (bgmID) { case Z2BGM_HORSE_BATTLE: case Z2BGM_FACE_OFF_BATTLE2: changeSubBgmStatus(0); @@ -408,119 +427,138 @@ void Z2SeqMgr::subBgmStart(u32 i_bgmID) { break; } - if (count_in != 0) { - mSubBgmMaster.fadeInFromOut(count_in); + if (fadeinTime != 0) { + mSubBgmMaster.fadeInFromOut(fadeinTime); } else { mSubBgmMaster.forceIn(); } - if (count_out >= 0) { - mMainBgmMaster.fadeOut(count_out); + if (fadeoutTime >= 0) { + mMainBgmMaster.fadeOut(fadeoutTime); } field_0xb8 = -1; + + #if DEBUG + if (bgmID == Z2BGM_HIDDEN_VIL_D1) { + OS_REPORT("[Z2SeqMgr::subBgmStart] HIDDEN_VIL_D01 start(%d)\n", mMainBgmHandle.isSoundAttached()); + OS_REPORT(" mainBgmMasterVol::%.2f \n", mMainBgmMaster.get()); + OS_REPORT(" subBgmMasterVol::%.2f \n", mSubBgmMaster.get()); + OS_REPORT(" allBgmMasterVol::%.2f \n", mAllBgmMaster.get()); + OS_REPORT(" bgmPauseVol::%.2f \n", mBgmPause.get()); + OS_REPORT(" fanfareMuteVol::%.2f \n", mFanfareMute.get()); + OS_REPORT(" windStoneVol::%.2f \n", mWindStone.get()); + OS_REPORT(" twilightGateVol::%.2f \n", mTwilightGateVol); + } + #endif } /* 802AF884-802AF9D0 2AA1C4 014C+00 4/3 4/4 42/42 .text subBgmStop__8Z2SeqMgrFv */ void Z2SeqMgr::subBgmStop() { switch (getSubBgmID()) { - case Z2BGM_ITEM_GET: - case Z2BGM_ITEM_GET_MINI: - case Z2BGM_OPEN_BOX: - case Z2BGM_ITEM_GET_ME: - case Z2BGM_HEART_GET: - case Z2BGM_FISHING_BARE: - case Z2BGM_FISHING_GET1: - case Z2BGM_FISHING_GET2: - case Z2BGM_FISHING_GET3: - case Z2BGM_ITEM_GET_INSECT: - case Z2BGM_ITEM_GET_SMELL: - case Z2BGM_ITEM_GET_POU: - case Z2BGM_SNOWBOARD_WIN: - case Z2BGM_SNOWBOARD_LOSE: - case Z2BGM_MINIGAME_WIN01: - case Z2BGM_MINIGAME_WIN02: - case Z2BGM_ITEM_GET_ME_S: - case Z2BGM_KOMONJO_GET_INTRO: - return; - case Z2BGM_LUTERA1: - case Z2BGM_BOSS_SNOWWOMAN_D1: - Z2GetStatusMgr()->setDemoName("force_end"); - field_0xb8 = 0; - break; - case Z2BGM_HIDDEN_VIL_D1: - bgmStart(Z2BGM_HIDDEN_VILLAGE, 0, 0); - // fallthrough - case Z2BGM_BOSSBABA_0: - case Z2BGM_MAGNE_GORON: - case Z2BGM_MAGNE_GORON_D01: - case Z2BGM_MAGNE_GORON_D02: - case Z2BGM_DEKUTOAD: - case Z2BGM_DEKUTOAD_D01: - case Z2BGM_BOSSFIREMAN_1: - case Z2BGM_SUMO_D1: - case Z2BGM_BOSS_OCTAEEL_D01: - case Z2BGM_BOSS_OCTAEEL_D02: - case Z2BGM_VARIANT: - case Z2BGM_DEATH_MOUNTAIN02: - case Z2BGM_SNOW_BOARD: - case Z2BGM_IB_MBOSS_D01: - case Z2BGM_SUMOMO: - case Z2BGM_RIVER_GAME: - case Z2BGM_GG_MBOSS_D01: - case Z2BGM_HARAGIGANT_D01: - case Z2BGM_HARAGIGANT_D02: - case Z2BGM_DRAGON_D01: - case Z2BGM_DRAGON_D02: - case Z2BGM_YAMIMUSHI_B_D01: - case Z2BGM_GOMA_D01: - case Z2BGM_FACE_OFF_BATTLE3: - case Z2BGM_RIVER_GAME_00: - field_0xb8 = 0; - break; - case Z2BGM_FISHING_HIT: - setBattleBgmOff(false); - mSubBgmHandle->stop(23); - field_0xb8 = 55; - break; - case Z2BGM_IB_MBOSS: - field_0xb8 = 420; - mSubBgmHandle->stop(45); - break; - case Z2BGM_TN_MBOSS: - field_0xb8 = 510; - mSubBgmHandle->stop(45); - break; - case Z2BGM_TN_MBOSS_LV9: - field_0xb8 = 360; - mSubBgmHandle->stop(45); - break; - case Z2BGM_GG_MBOSS: - case Z2BGM_P_ZANT: - field_0xb8 = 420; - mSubBgmHandle->stop(45); - break; - case Z2BGM_OBACHAN: - case Z2BGM_POSTMAN: - setBattleBgmOff(false); - // fallthrough - default: - field_0xb8 = 15; - break; + case Z2BGM_ITEM_GET: + case Z2BGM_ITEM_GET_MINI: + case Z2BGM_OPEN_BOX: + case Z2BGM_ITEM_GET_ME: + case Z2BGM_HEART_GET: + case Z2BGM_FISHING_BARE: + case Z2BGM_FISHING_GET1: + case Z2BGM_FISHING_GET2: + case Z2BGM_FISHING_GET3: + case Z2BGM_ITEM_GET_INSECT: + case Z2BGM_ITEM_GET_SMELL: + case Z2BGM_ITEM_GET_POU: + case Z2BGM_SNOWBOARD_WIN: + case Z2BGM_SNOWBOARD_LOSE: + case Z2BGM_MINIGAME_WIN01: + case Z2BGM_MINIGAME_WIN02: + case Z2BGM_ITEM_GET_ME_S: + case Z2BGM_KOMONJO_GET_INTRO: + return; + case Z2BGM_LUTERA1: + case Z2BGM_BOSS_SNOWWOMAN_D1: + Z2GetStatusMgr()->setDemoName("force_end"); + field_0xb8 = 0; + break; + case Z2BGM_HIDDEN_VIL_D1: + bgmStart(Z2BGM_HIDDEN_VILLAGE, 0, 0); + // fallthrough + case Z2BGM_BOSSBABA_0: + case Z2BGM_MAGNE_GORON: + case Z2BGM_MAGNE_GORON_D01: + case Z2BGM_MAGNE_GORON_D02: + case Z2BGM_DEKUTOAD: + case Z2BGM_DEKUTOAD_D01: + case Z2BGM_BOSSFIREMAN_1: + case Z2BGM_SUMO_D1: + case Z2BGM_BOSS_OCTAEEL_D01: + case Z2BGM_BOSS_OCTAEEL_D02: + case Z2BGM_VARIANT: + case Z2BGM_DEATH_MOUNTAIN02: + case Z2BGM_SNOW_BOARD: + case Z2BGM_IB_MBOSS_D01: + case Z2BGM_SUMOMO: + case Z2BGM_RIVER_GAME: + case Z2BGM_GG_MBOSS_D01: + case Z2BGM_HARAGIGANT_D01: + case Z2BGM_HARAGIGANT_D02: + case Z2BGM_DRAGON_D01: + case Z2BGM_DRAGON_D02: + case Z2BGM_YAMIMUSHI_B_D01: + case Z2BGM_GOMA_D01: + case Z2BGM_FACE_OFF_BATTLE3: + case Z2BGM_RIVER_GAME_00: + field_0xb8 = 0; + break; + case Z2BGM_FISHING_HIT: + setBattleBgmOff(false); + mSubBgmHandle->stop(23); + field_0xb8 = 55; + break; + case Z2BGM_IB_MBOSS: + field_0xb8 = 420; + mSubBgmHandle->stop(45); + break; + case Z2BGM_TN_MBOSS: + field_0xb8 = 510; + mSubBgmHandle->stop(45); + break; + case Z2BGM_TN_MBOSS_LV9: + field_0xb8 = 360; + mSubBgmHandle->stop(45); + break; + case Z2BGM_GG_MBOSS: + case Z2BGM_P_ZANT: + field_0xb8 = 420; + mSubBgmHandle->stop(45); + break; + case Z2BGM_OBACHAN: + case Z2BGM_POSTMAN: + setBattleBgmOff(false); + // fallthrough + default: + field_0xb8 = 15; + break; } -} + #if DEBUG + if (getSubBgmID() == Z2BGM_HIDDEN_VIL_D1) { + OS_REPORT("[Z2SeqMgr::subBgmStop] HIDDEN_VIL_D01 stop\n"); + } + #endif +} /* 802AF9D0-802AFB94 2AA310 01C4+00 2/2 0/0 0/0 .text subBgmStopInner__8Z2SeqMgrFv */ void Z2SeqMgr::subBgmStopInner() { if (field_0xb8 == -1) { return; } + if (!mSubBgmHandle) { return; } - int count = struct_80450862; + int fadeTime = Z2Param::BGM_CROSS_FADEOUT_TIME; switch (getSubBgmID()) { case Z2BGM_MAGNE_GORON: case Z2BGM_MAGNE_GORON_D01: @@ -529,37 +567,38 @@ void Z2SeqMgr::subBgmStopInner() { case Z2BGM_SUMO_D1: case Z2BGM_VARIANT: case Z2BGM_IB_MBOSS_D01: - count = 10; + fadeTime = 10; break; case Z2BGM_LUTERA1: - count = 50; + fadeTime = 50; break; case Z2BGM_RIVER_GAME: case Z2BGM_RIVER_GAME_00: - count = 33; + fadeTime = 33; setBattleBgmOff(false); break; case Z2BGM_SNOW_BOARD: - count = 90; + fadeTime = 90; setBattleBgmOff(false); break; } - mSubBgmHandle->stop(count); + mSubBgmHandle->stop(fadeTime); mSubBgmHandle.releaseSound(); - mMainBgmMaster.fadeIn(struct_80450862); + mMainBgmMaster.fadeIn(Z2Param::BGM_CROSS_FADEOUT_TIME); field_0xb8 = -1; } /* 802AFB94-802AFDEC 2AA4D4 0258+00 1/1 3/3 46/46 .text bgmStreamPrepare__8Z2SeqMgrFUl */ -void Z2SeqMgr::bgmStreamPrepare(u32 i_bgmID) { +void Z2SeqMgr::bgmStreamPrepare(u32 bgmID) { if (mStreamBgmHandle) { bgmStreamStop(0); } - Z2GetSoundMgr()->startSound(i_bgmID, &mStreamBgmHandle, NULL); + + Z2GetSoundMgr()->startSound(bgmID, &mStreamBgmHandle, NULL); mStreamBgmHandle->lockWhenPrepared(); - switch (i_bgmID) { + switch (bgmID) { case 0x2000010: mAllBgmMaster.forceIn(); // fallthrough @@ -570,7 +609,7 @@ void Z2SeqMgr::bgmStreamPrepare(u32 i_bgmID) { return; case 0x2000023: if (mMainBgmHandle) { - mMainBgmHandle->stop(struct_80450862); + mMainBgmHandle->stop(Z2Param::BGM_CROSS_FADEOUT_TIME); } return; case 0x2000038: @@ -592,7 +631,7 @@ void Z2SeqMgr::bgmStreamPrepare(u32 i_bgmID) { break; } - mStreamBgmMaster.fadeOut(struct_80450862); + mStreamBgmMaster.fadeOut(Z2Param::BGM_CROSS_FADEOUT_TIME); } @@ -610,79 +649,98 @@ void Z2SeqMgr::bgmStreamPlay() { if (mStreamBgmHandle) { mStreamBgmHandle->unlockIfLocked(); } + if (getStreamBgmID() == -1) { if (mMainBgmHandle) { mMainBgmHandle->stop(30); } - } else if (getStreamBgmID() == 0x2000000) { + } + + #if !PLATFORM_SHIELD + else if (getStreamBgmID() == 0x2000000) { if (mStreamBgmHandle) { mStreamBgmHandle->stop(); } bgmStart(Z2BGM_MENU_SELECT, 0, 0); } + #endif } /* 802AFEDC-802AFF8C 2AA81C 00B0+00 2/2 1/1 27/27 .text bgmStreamStop__8Z2SeqMgrFUl */ -void Z2SeqMgr::bgmStreamStop(u32 i_count) { +void Z2SeqMgr::bgmStreamStop(u32 fadeTime) { if (getStreamBgmID() == 0x200003f || getStreamBgmID() == 0x200005c) { Z2GetStatusMgr()->setDemoName("force_end"); } + if (mStreamBgmHandle) { - mStreamBgmHandle->stop(i_count); + mStreamBgmHandle->stop(fadeTime); } + mStreamBgmHandle.releaseSound(); } /* 802AFF8C-802B1DF4 2AA8CC 1E68+00 5/4 8/7 26/26 .text changeBgmStatus__8Z2SeqMgrFl */ -void Z2SeqMgr::changeBgmStatus(s32 param_0) { +void Z2SeqMgr::changeBgmStatus(s32 status) { if (!mMainBgmHandle) { return; } - u32 count = 0; + u32 moveTime = 0; bool mute; + + #if PLATFORM_SHIELD + f32 volume1 = 1.0f; + f32 volume2 = 1.0f; + f32 volume3 = 1.0f; + f32 volume4 = 1.0f; + #else f32 volume1, volume2, volume3, volume4; + #endif + switch (getMainBgmID()) { case Z2BGM_TOAL_VILLEGE: - if (param_0 == mBgmStatus) { + if (status == mBgmStatus) { return; } + if (mBgmStatus != 0xff) { - count = 60; + moveTime = 60; } - if (param_0 == 1) { + + if (status == 1) { volume1 = 0.65f; volume2 = 0.0f; volume3 = 1.0f; - count = 30; + moveTime = 30; } else { volume1 = 1.0f; volume2 = 1.0f; volume3 = 0.0f; } - setChildTrackVolume(&mMainBgmHandle, 0, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 1, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 2, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 3, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 4, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 5, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 6, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 7, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 8, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 9, volume3, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 10, volume3, count, -1.0f, -1.0f); + + setChildTrackVolume(&mMainBgmHandle, 0, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 1, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 2, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 3, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 4, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 5, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 6, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 7, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 8, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 9, volume3, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 10, volume3, moveTime, -1.0f, -1.0f); break; case Z2BGM_HORSE_BATTLE: - setChildTrackVolume(&mMainBgmHandle, 11, 0.0f, 0, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 12, 0.0f, 0, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 13, 0.0f, 0, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 11, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 12, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 13, 0.0f, moveTime, -1.0f, -1.0f); break; case Z2BGM_DUNGEON_FOREST: mute = false; - switch (param_0) { + switch (status) { case 4: case 0xc: - muteSceneBgm(struct_80450860, 0.0f); + muteSceneBgm(Z2Param::SCENE_CHANGE_BGM_FADEOUT_TIME, 0.0f); // fallthrough case 7: mute = true; @@ -691,12 +749,13 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { Z2GetSoundObjMgr()->setForceBattleArea(true, 1500, 5000, 10000); break; } + if (!mute) { - unMuteSceneBgm(struct_80450860); + unMuteSceneBgm(Z2Param::SCENE_CHANGE_BGM_FADEOUT_TIME); } break; case Z2BGM_DUNGEON_LV2: - switch (param_0) { + switch (status) { case 0xe: case 0x10: case 0x11: @@ -711,27 +770,30 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { break; case Z2BGM_DUNGEON_LV5: if (mBgmStatus != 0xff) { - count = 45; + moveTime = 45; } - if (param_0 == 2 || param_0 == 1) { + + if (status == 2 || status == 1) { volume1 = 0.0f; volume2 = 1.0f; } else { volume1 = 1.0f; volume2 = 0.0f; } - setChildTrackVolume(&mMainBgmHandle, 0, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 1, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 2, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 3, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 4, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 8, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 9, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 10, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 11, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 12, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 13, volume2, count, -1.0f, -1.0f); - if (param_0 == 4) { + + setChildTrackVolume(&mMainBgmHandle, 0, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 1, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 2, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 3, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 4, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 8, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 9, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 10, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 11, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 12, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 13, volume2, moveTime, -1.0f, -1.0f); + + if (status == 4) { muteSceneBgm(60, 0.29f); } else { unMuteSceneBgm(60); @@ -739,78 +801,80 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { break; case Z2BGM_CASTLE_TOWN: if (mBgmStatus != 0xff) { - count = 45; + moveTime = 45; } - switch (param_0) { + + switch (status) { case 0: case 1: case 5: - setChildTrackVolume(&mMainBgmHandle, 0, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 1, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 2, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 3, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 4, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 5, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 6, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 8, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 9, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 10, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 11, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 12, 0.0f, count, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 0, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 1, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 2, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 3, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 4, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 5, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 6, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 8, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 9, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 10, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 11, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 12, 0.0f, moveTime, -1.0f, -1.0f); break; case 2: - setChildTrackVolume(&mMainBgmHandle, 0, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 1, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 2, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 3, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 4, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 5, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 6, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 8, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 9, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 10, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 11, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 12, 0.0f, count, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 0, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 1, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 2, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 3, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 4, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 5, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 6, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 8, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 9, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 10, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 11, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 12, 0.0f, moveTime, -1.0f, -1.0f); break; case 3: - setChildTrackVolume(&mMainBgmHandle, 0, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 1, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 2, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 3, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 4, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 5, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 6, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 8, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 9, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 10, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 11, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 12, 1.0f, count, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 0, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 1, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 2, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 3, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 4, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 5, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 6, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 8, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 9, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 10, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 11, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 12, 1.0f, moveTime, -1.0f, -1.0f); break; case 4: - setChildTrackVolume(&mMainBgmHandle, 0, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 1, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 2, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 3, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 4, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 5, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 6, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 7, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 8, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 9, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 10, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 11, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 12, 0.0f, count, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 0, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 1, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 2, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 3, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 4, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 5, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 6, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 7, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 8, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 9, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 10, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 11, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 12, 0.0f, moveTime, -1.0f, -1.0f); break; } - if (param_0 == 5) { - muteSceneBgm(count, 0.35f); + + if (status == 5) { + muteSceneBgm(moveTime, 0.35f); mFlags.mHeightVolMod = false; } else { - unMuteSceneBgm(count); - if (param_0 < 2) { + unMuteSceneBgm(moveTime); + if (status < 2) { mFlags.mHeightVolMod = false; } else { mFlags.mHeightVolMod = true; @@ -819,37 +883,39 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { break; case Z2BGM_HOLY_FOREST: if (mBgmStatus != 0xff) { - count = 45; + moveTime = 45; setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, 5, -1.0f, -1.0f); } else { setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, 0, -1.0f, -1.0f); } - if (param_0 == 1) { + + if (status == 1) { volume1 = 0.6f; volume2 = 1.0f; } else { volume1 = 1.0f; volume2 = 0.0f; } - setChildTrackVolume(&mMainBgmHandle, 0, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 1, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 2, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 3, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 4, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 5, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 6, volume2, count, -1.0f, -1.0f); + + setChildTrackVolume(&mMainBgmHandle, 0, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 1, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 2, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 3, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 4, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 5, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 6, volume2, moveTime, -1.0f, -1.0f); break; case Z2BGM_LUTERA2: - if (param_0 == 0) { + if (status == 0) { muteSceneBgm(0, 0.5f); - } else if (param_0 == 1) { + } else if (status == 1) { unMuteSceneBgm(80); } break; case Z2BGM_DEMO08: - if (param_0 == 1) { + if (status == 1) { setChildTrackVolume(&mMainBgmHandle, 4, 1.0f, 90, -1.0f, -1.0f); - } else if (param_0 == 2) { + } else if (status == 2) { bgmStop(90, 0); } else { setChildTrackVolume(&mMainBgmHandle, 4, 0.0f, 0, -1.0f, -1.0f); @@ -859,7 +925,7 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { } break; case Z2BGM_DEMO10: - if (param_0 == 1) { + if (status == 1) { setChildTrackVolume(&mMainBgmHandle, 0, 0.3f, 143, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 1, 0.3f, 143, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 2, 0.6f, 143, -1.0f, -1.0f); @@ -875,7 +941,7 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { } break; case Z2BGM_BOSS_SNOWWOMAN_1: - if (param_0 == 1) { + if (status == 1) { setChildTrackVolume(&mMainBgmHandle, 9, 0.0f, 60, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 10, 1.0f, 60, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 11, 1.0f, 60, -1.0f, -1.0f); @@ -887,73 +953,67 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { } break; case Z2BGM_DUNGEON_LV8: - if (param_0 == mBgmStatus) { + if (status == mBgmStatus) { return; } + if (mBgmStatus != 0xff) { - count = 45; + moveTime = 45; } - if (param_0 == 0 || param_0 == 0xb) { + + if (status == 0 || status == 0xb) { volume1 = 1.0f; volume2 = 0.0f; volume3 = 0.0f; volume4 = 0.0f; - } else if (param_0 >= 100) { + } else if (status >= 100) { volume1 = 0.0f; volume2 = 1.0f; - f32 volume; - if (param_0 < 200) { - volume = 1.0f; - } else if (param_0 > 3100) { - volume = 0.0f; - } else { - volume = Z2Calc::getParamByExp(param_0, 3100.0f, 200.0f, 0.3f, 0.0f, 1.0f, - Z2Calc::CURVE_SIGN_1); - } - volume3 = volume; - if (param_0 < 200) { - volume = 1.0f; - } else if (param_0 > 1600) { - volume = 0.0f; - } else { - volume = Z2Calc::getParamByExp(param_0, 1600.0f, 200.0f, 0.3f, 0.0f, 1.0f, - Z2Calc::CURVE_SIGN_1); - } - volume4 = volume; + + volume3 = status < 200 ? 1.0f : + status > 3100 ? 0.0f : + Z2Calc::getParamByExp(status, 3100.0f, 200.0f, 0.3f, 0.0f, 1.0f, + Z2Calc::CURVE_POSITIVE); + + volume4 = status < 200 ? 1.0f : + status > 1600 ? 0.0f : + Z2Calc::getParamByExp(status, 1600.0f, 200.0f, 0.3f, 0.0f, 1.0f, + Z2Calc::CURVE_POSITIVE); } else { volume1 = 0.0f; volume2 = 1.0f; volume3 = 0.0f; volume4 = 0.0f; } - setChildTrackVolume(&mMainBgmHandle, 2, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 3, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 4, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 5, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 6, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 7, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 8, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 9, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 10, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 11, volume3, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 12, volume3, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 13, volume4, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 14, volume4, count, -1.0f, -1.0f); + + setChildTrackVolume(&mMainBgmHandle, 2, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 3, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 4, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 5, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 6, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 7, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 8, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 9, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 10, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 11, volume3, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 12, volume3, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 13, volume4, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 14, volume4, moveTime, -1.0f, -1.0f); break; case Z2BGM_BOSS_ZANT: - if (param_0 == 0xd) { + if (status == 0xd) { mSceneBgm.move(0.3f, 134); } else { mSceneBgm.forceIn(); - if (param_0 > 6) { - param_0 = (param_0 - 7) * 2; + if (status > 6) { + status = (status - 7) * 2; } else { - param_0 = param_0 * 2 - 1; + status = status * 2 - 1; } } break; case Z2BGM_FORTUNE: - if (param_0 == 1) { + if (status == 1) { muteSceneBgm(45, 0.5f); } else { unMuteSceneBgm(45); @@ -961,201 +1021,214 @@ void Z2SeqMgr::changeBgmStatus(s32 param_0) { break; case Z2BGM_DUNGEON_LV9_02: if (mBgmStatus != 0xff) { - count = 30; + moveTime = 30; } - if (param_0 == 0xc) { + + if (status == 0xc) { volume4 = 1.0f; volume1 = 0.0f; volume2 = 0.5f; volume3 = 0.0f; - } else if (param_0 == 8) { + } else if (status == 8) { volume4 = 0.0f; volume1 = 0.5f; volume2 = 1.0f; volume3 = 0.8f; - } else if (param_0 > 3000) { - volume4 = Z2Calc::linearTransform(param_0, 3150.0f, 6150.0f, 1.0f, 0.0f, false); - volume1 = Z2Calc::linearTransform(param_0, 3150.0f, 6150.0f, 0.0f, 1.0f, false); - volume2 = Z2Calc::linearTransform(param_0, 3150.0f, 6150.0f, 0.5f, 1.0f, false); - volume3 = Z2Calc::linearTransform(param_0, 3150.0f, 6150.0f, 0.0f, 1.0f, false); - } - setChildTrackVolume(&mMainBgmHandle, 0, volume4, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 1, volume4, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 2, volume4, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 3, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 4, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 5, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 6, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 7, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 8, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 9, volume3, count, -1.0f, -1.0f); + } else if (status > 3000) { + volume4 = Z2Calc::linearTransform(status, 3150.0f, 6150.0f, 1.0f, 0.0f, false); + volume1 = Z2Calc::linearTransform(status, 3150.0f, 6150.0f, 0.0f, 1.0f, false); + volume2 = Z2Calc::linearTransform(status, 3150.0f, 6150.0f, 0.5f, 1.0f, false); + volume3 = Z2Calc::linearTransform(status, 3150.0f, 6150.0f, 0.0f, 1.0f, false); + } + + setChildTrackVolume(&mMainBgmHandle, 0, volume4, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 1, volume4, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 2, volume4, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 3, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 4, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 5, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 6, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 7, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 8, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 9, volume3, moveTime, -1.0f, -1.0f); break; case Z2BGM_VS_GANON_02: - if (param_0 == mBgmStatus) { + if (status == mBgmStatus) { return; } + if (mBgmStatus != 0xff) { - count = 45; + moveTime = 45; } - if (param_0 == 1) { + + if (status == 1) { volume1 = 0.0f; volume2 = 1.0f; } else { volume1 = 1.0f; volume2 = 0.0f; } - setChildTrackVolume(&mMainBgmHandle, 0, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 1, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 2, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 3, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 4, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 5, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 6, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 7, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 10, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 11, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 12, volume2, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 13, volume2, count, -1.0f, -1.0f); + + setChildTrackVolume(&mMainBgmHandle, 0, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 1, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 2, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 3, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 4, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 5, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 6, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 7, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 10, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 11, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 12, volume2, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 13, volume2, moveTime, -1.0f, -1.0f); break; case Z2BGM_TOAL_NIGHT: case Z2BGM_FILONE_FOREST: - if (param_0 == 1) { + if (status == 1) { muteSceneBgm(45, 0.5f); - } else if (param_0 == 2) { + } else if (status == 2) { muteSceneBgm(0, 0.5f); } else { unMuteSceneBgm(45); } break; case Z2BGM_VS_GANON_04: - if (param_0 == mBgmStatus) { + if (status == mBgmStatus) { return; } - if (param_0 >= 4) { - count = 50; - if (param_0 == 4) { + + if (status >= 4) { + moveTime = 50; + if (status == 4) { volume4 = 1.0f; volume1 = 0.0f; - } else if (param_0 == 5) { + } else if (status == 5) { volume4 = 0.0f; volume1 = 1.0f; - } else if (param_0 == 6) { + } else if (status == 6) { volume4 = 0.0f; volume1 = 0.0f; - } else if (param_0 == 7) { + } else if (status == 7) { volume4 = 0.0f; volume1 = 0.0f; - count = 0; - } else if (param_0 == 8) { + moveTime = 0; + } else if (status == 8) { volume4 = 1.0f; volume1 = 1.0f; - count = 0; + moveTime = 0; } - setChildTrackVolume(&mMainBgmHandle, 12, volume4, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 13, volume4, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 14, volume1, count, -1.0f, -1.0f); - setChildTrackVolume(&mMainBgmHandle, 15, volume1, count, -1.0f, -1.0f); + + setChildTrackVolume(&mMainBgmHandle, 12, volume4, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 13, volume4, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 14, volume1, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mMainBgmHandle, 15, volume1, moveTime, -1.0f, -1.0f); } break; } - Z2GetSoundStarter()->setPortData(&mMainBgmHandle, 9, param_0, -1); - mBgmStatus = param_0 & 0xff; + Z2GetSoundStarter()->setPortData(&mMainBgmHandle, 9, status, -1); + mBgmStatus = status & 0xff; } /* 802B1DF4-802B299C 2AC734 0BA8+00 2/2 3/3 31/31 .text changeSubBgmStatus__8Z2SeqMgrFl */ -void Z2SeqMgr::changeSubBgmStatus(s32 param_0) { +void Z2SeqMgr::changeSubBgmStatus(s32 status) { if (!mSubBgmHandle) { return; } - u32 count = 0; + u32 moveTime = 0; bool bvar2 = true; + switch (getSubBgmID()) { case Z2BGM_DEKUTOAD: - if (param_0 == 1 && mSubBgmStatus == 2) { + if (status == 1 && mSubBgmStatus == 2) { mSubBgmMaster.forceOut(); mDekuToadCount = 100; - } else if (param_0 == 3) { + } else if (status == 3) { mSubBgmMaster.forceOut(); mDekuToadCount = 30; } break; case Z2BGM_HORSE_BATTLE: - if (param_0 == mSubBgmStatus) { + if (status == mSubBgmStatus) { return; } - if (param_0 != 2) { + + if (status != 2) { bvar2 = false; if (mSubBgmStatus != 0xff) { - count = 40; + moveTime = 40; } } - if (param_0 == 1) { + + if (status == 1) { setChildTrackVolume(&mSubBgmHandle, 0, 0.0f, 60, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 1, 0.0f, 60, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 11, 1.0f, 60, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 12, 1.0f, 60, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 13, 1.0f, 60, -1.0f, -1.0f); } else { - setChildTrackVolume(&mSubBgmHandle, 0, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 1, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 11, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 13, 0.0f, count, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 0, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 1, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 11, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 13, 0.0f, moveTime, -1.0f, -1.0f); } break; case Z2BGM_FACE_OFF_BATTLE2: - if (param_0 == mSubBgmStatus) { + if (status == mSubBgmStatus) { return; } + bvar2 = false; if (mSubBgmStatus != 0xff) { - count = 30; + moveTime = 30; } - if (param_0 == 1) { + + if (status == 1) { setChildTrackVolume(&mSubBgmHandle, 0, 0.0f, 10, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 10, 0.0f, 10, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 11, 1.0f, 10, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 12, 1.0f, 10, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 13, 1.0f, 10, -1.0f, -1.0f); } else { - setChildTrackVolume(&mSubBgmHandle, 0, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 10, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 11, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 13, 0.0f, count, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 0, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 10, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 11, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 13, 0.0f, moveTime, -1.0f, -1.0f); } break; case Z2BGM_RODEO: - if (param_0 == mSubBgmStatus) { + if (status == mSubBgmStatus) { break; } - if (param_0 == 1) { + + if (status == 1) { if (mSubBgmStatus != 0xff) { - count = 60; + moveTime = 60; } - setChildTrackVolume(&mSubBgmHandle, 9, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 10, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 11, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 13, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 14, 0.0f, count, -1.0f, -1.0f); - } else if (param_0 == 2) { + setChildTrackVolume(&mSubBgmHandle, 9, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 10, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 11, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 13, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 14, 0.0f, moveTime, -1.0f, -1.0f); + } else if (status == 2) { if (mSubBgmStatus != 0xff) { - count = 20; + moveTime = 20; } - setChildTrackVolume(&mSubBgmHandle, 9, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 10, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 11, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 12, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 13, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 14, 1.0f, count, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 9, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 10, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 11, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 12, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 13, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 14, 1.0f, moveTime, -1.0f, -1.0f); } break; case Z2BGM_VARIANT: - switch (param_0) { + switch (status) { case 1: switch (mSubBgmStatus) { case 2: @@ -1178,26 +1251,28 @@ void Z2SeqMgr::changeSubBgmStatus(s32 param_0) { } break; case Z2BGM_BATTLE_TWILIGHT: - if (mSubBgmStatus == param_0) { + if (mSubBgmStatus == status) { return; } + if (mSubBgmStatus != 0xff) { - count = 25; + moveTime = 25; } + bvar2 = false; - if (param_0 == 2) { - setChildTrackVolume(&mSubBgmHandle, 2, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 3, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 4, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 5, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 6, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 7, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 8, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 9, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 10, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 11, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, count, -1.0f, -1.0f); - } else if (param_0 == 3) { + if (status == 2) { + setChildTrackVolume(&mSubBgmHandle, 2, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 3, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 4, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 5, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 6, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 7, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 8, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 9, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 10, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 11, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, moveTime, -1.0f, -1.0f); + } else if (status == 3) { setChildTrackVolume(&mSubBgmHandle, 2, 0.0f, 0, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 3, 0.0f, 0, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 4, 0.0f, 0, -1.0f, -1.0f); @@ -1210,17 +1285,17 @@ void Z2SeqMgr::changeSubBgmStatus(s32 param_0) { setChildTrackVolume(&mSubBgmHandle, 11, 1.0f, 0, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 12, 1.0f, 0, -1.0f, -1.0f); } else { - setChildTrackVolume(&mSubBgmHandle, 2, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 3, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 4, 1.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 5, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 6, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 7, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 8, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 9, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 10, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 11, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, count, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 2, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 3, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 4, 1.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 5, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 6, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 7, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 8, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 9, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 10, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 11, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, moveTime, -1.0f, -1.0f); } break; case Z2BGM_BATTLE_NORMAL: @@ -1228,25 +1303,27 @@ void Z2SeqMgr::changeSubBgmStatus(s32 param_0) { } if (bvar2) { - Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, param_0, -1); + Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, status, -1); } - mSubBgmStatus = param_0 & 0xff; + + mSubBgmStatus = status & 0xff; } /* 802B299C-802B2A88 2AD2DC 00EC+00 0/0 1/1 0/0 .text onVariantBgmJumpEnd__8Z2SeqMgrFb */ void Z2SeqMgr::onVariantBgmJumpEnd(bool param_0) { if (param_0) { - u32 count = 0; + u32 moveTime = 0; if (mSubBgmStatus == 3) { - count = 45; + moveTime = 45; mSubBgmStatus = 1; } - setChildTrackVolume(&mSubBgmHandle, 8, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 9, 0.0f, count, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 10, 0.0f, count, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 8, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 9, 0.0f, moveTime, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 10, 0.0f, moveTime, -1.0f, -1.0f); } else { setChildTrackVolume(&mSubBgmHandle, 0, 1.0f, 0, -1.0f, -1.0f); } + Z2GetSoundMgr()->getSeqMgr()->calc(); Z2GetSoundMgr()->getSeqMgr()->mixOut(); } @@ -1258,7 +1335,7 @@ void Z2SeqMgr::changeFishingBgm(s32 param_0) { if (getSubBgmID() == Z2BGM_FISHING_HIT) { subBgmStop(); } - unMuteSceneBgm(struct_80450862); + unMuteSceneBgm(Z2Param::BGM_CROSS_FADEOUT_TIME); break; case 1: if (getSubBgmID() == Z2BGM_FISHING_HIT) { @@ -1281,11 +1358,10 @@ void Z2SeqMgr::changeFishingBgm(s32 param_0) { /* 802B2CA4-802B2D64 2AD5E4 00C0+00 0/0 1/1 0/0 .text talkInBgm__8Z2SeqMgrFv */ void Z2SeqMgr::talkInBgm() { - if (getStreamBgmID() == 0x2000038 || getStreamBgmID() == 0x200007c - || getMainBgmID() == Z2BGM_WCS_D01) - { + if (getStreamBgmID() == 0x2000038 || getStreamBgmID() == 0x200007c || getMainBgmID() == Z2BGM_WCS_D01) { return; } + mBgmPause.move(Z2Param::VOL_BGM_TALKING, 2); } @@ -1371,7 +1447,7 @@ void Z2SeqMgr::fanfareFramework() { } if (!isItemGetDemo() && mFanfareMute.getDest() != 1.0f) { - mFanfareMute.fadeIn(struct_80450861); + mFanfareMute.fadeIn(Z2Param::BGM_CROSS_FADEIN_TIME); } if (mFanfareCount != 0) { mFanfareCount--; @@ -1424,16 +1500,16 @@ void Z2SeqMgr::stopWolfHowlSong() { } /* 802B3318-802B3398 2ADC58 0080+00 0/0 1/1 0/0 .text setHeightVolMod__8Z2SeqMgrFbUl */ -void Z2SeqMgr::setHeightVolMod(bool i_value, u32 i_count) { - mFlags.mHeightVolMod = i_value; - if (!i_value) { - field_0x84.fadeIn(i_count); +void Z2SeqMgr::setHeightVolMod(bool isVolMod, u32 fadeTime) { + mFlags.mHeightVolMod = isVolMod; + if (!isVolMod) { + field_0x84.fadeIn(fadeTime); } } /* 802B3398-802B33A8 2ADCD8 0010+00 0/0 1/1 0/0 .text setTimeProcVolMod__8Z2SeqMgrFbUl */ -void Z2SeqMgr::setTimeProcVolMod(bool i_value, u32 i_count) { - mFlags.mTimeProcVolMod = i_value; +void Z2SeqMgr::setTimeProcVolMod(bool isVolMod, u32 fadeTime) { + mFlags.mTimeProcVolMod = isVolMod; } /* 80450870-80450874 0002F0 0004+00 1/1 0/0 0/0 .sdata sDeathMtBottom */ @@ -1453,7 +1529,7 @@ void Z2SeqMgr::processBgmFramework() { fieldBgmFramework(); if (!mStreamBgmHandle && mStreamBgmMaster.getDest() != 1.0f) { - mStreamBgmMaster.fadeIn(struct_80450861); + mStreamBgmMaster.fadeIn(Z2Param::BGM_CROSS_FADEIN_TIME); } if (field_0xb8 != -1) { @@ -1464,7 +1540,7 @@ void Z2SeqMgr::processBgmFramework() { field_0xb8 = -1; } } else if (!mSubBgmHandle && mMainBgmMaster.getDest() != 1.0f) { - mMainBgmMaster.fadeIn(struct_80450861); + mMainBgmMaster.fadeIn(Z2Param::BGM_CROSS_FADEIN_TIME); } if (mFlags.mTimeProcVolMod) { @@ -1483,7 +1559,7 @@ void Z2SeqMgr::processBgmFramework() { switch (getMainBgmID()) { case Z2BGM_DEATH_MOUNTAIN01: volume = Z2Calc::getParamByExp(link_y, sDeathMtTop, sDeathMtBottom, 0.3f, 0.0f, 1.0f, - Z2Calc::CURVE_SIGN_0); + Z2Calc::CURVE_NEGATIVE); field_0x84.move(volume, 0); break; case Z2BGM_RAKKA_HOUSE: @@ -1492,7 +1568,7 @@ void Z2SeqMgr::processBgmFramework() { field_0x84.forceIn(); } else if (link_y < -7500.0f) { volume = Z2Calc::getParamByExp(link_y, -10500.0f, -7500.0f, 0.3f, 0.0f, 1.0f, - Z2Calc::CURVE_SIGN_1); + Z2Calc::CURVE_POSITIVE); field_0x84.move(volume, 0); } break; @@ -1506,7 +1582,7 @@ void Z2SeqMgr::processBgmFramework() { field_0x84.forceOut(); } else if (depth > 0.0f) { volume = Z2Calc::getParamByExp(depth, sUnderWaterDepthMax, 0.0f, 0.3f, 0.1f, 1.0f, - Z2Calc::CURVE_SIGN_1); + Z2Calc::CURVE_POSITIVE); field_0x84.move(volume, 0); } else if (field_0x84.getDest() != 1.0f) { field_0x84.fadeIn(30); @@ -1518,7 +1594,7 @@ void Z2SeqMgr::processBgmFramework() { field_0x84.move(0.3f, 0); } else if (link_y > -13000.0f) { volume = Z2Calc::getParamByExp(link_y, -1500.0f, -13000.0f, 0.3f, 0.3f, 1.0f, - Z2Calc::CURVE_SIGN_0); + Z2Calc::CURVE_NEGATIVE); field_0x84.move(volume, 0); } else { field_0x84.forceIn(); @@ -1528,7 +1604,7 @@ void Z2SeqMgr::processBgmFramework() { field_0x84.fadeOut(30); } else if (link_y > -45000.0f) { volume = Z2Calc::getParamByExp(link_y, -3000.0f, -45000.0f, 0.3f, 0.0f, 1.0f, - Z2Calc::CURVE_SIGN_0); + Z2Calc::CURVE_NEGATIVE); field_0x84.move(volume, 0); } else { field_0x84.forceIn(); @@ -1538,7 +1614,7 @@ void Z2SeqMgr::processBgmFramework() { field_0x84.forceOut(); } else if (link_y > -1500.0f) { volume = Z2Calc::getParamByExp(link_y, 900.0f, -1500.0f, 0.3f, 0.0f, 0.3f, - Z2Calc::CURVE_SIGN_0); + Z2Calc::CURVE_NEGATIVE); field_0x84.move(volume, 0); } else { field_0x84.move(0.3f, 0); @@ -1574,86 +1650,98 @@ void Z2SeqMgr::processBgmFramework() { mWindStone.calc(); field_0xa4.calc(); - f32 base_vol = mAllBgmMaster.get() * mBgmPause.get() * mFanfareMute.get() - * mWindStone.get() * mTwilightGateVol; + f32 base_vol = mAllBgmMaster.get() * mBgmPause.get() * mFanfareMute.get() * mWindStone.get() * mTwilightGateVol; + if (mMainBgmHandle) { f32 volume = 1.0f; if (getMainBgmID() != Z2BGM_GAME_OVER) { - volume = base_vol * mMainBgmMaster.get() * mSceneBgm.get() - * mStreamBgmMaster.get() * field_0x84.get() * field_0xa4.get(); + volume = base_vol * mMainBgmMaster.get() * mSceneBgm.get() * mStreamBgmMaster.get() * field_0x84.get() * field_0xa4.get(); } mMainBgmHandle->getAuxiliary().moveVolume(volume, 0); } + if (mSubBgmHandle) { f32 volume = base_vol * mSubBgmMaster.get() * mStreamBgmMaster.get(); mSubBgmHandle->getAuxiliary().moveVolume(volume, 0); } + if (mStreamBgmHandle) { f32 volume = base_vol * mMainBgmMaster.get() * mSceneBgm.get(); mStreamBgmHandle->getAuxiliary().moveVolume(volume, 0); } + setWindStoneVol(1.0f, 30); } /* 802B3EAC-802B3F40 2AE7EC 0094+00 0/0 2/2 0/0 .text checkBgmIDPlaying__8Z2SeqMgrFUl */ -bool Z2SeqMgr::checkBgmIDPlaying(u32 i_bgmID) { - if (getMainBgmID() == i_bgmID) { +bool Z2SeqMgr::checkBgmIDPlaying(u32 bgmID) { + if (getMainBgmID() == bgmID) { return true; } - if (getSubBgmID() == i_bgmID) { + + if (getSubBgmID() == bgmID) { return true; } - if (getStreamBgmID() == i_bgmID) { + + if (getStreamBgmID() == bgmID) { return true; } + return false; } /* 802B3F40-802B3FEC 2AE880 00AC+00 1/1 0/0 0/0 .text * getChildTrackVolume__8Z2SeqMgrFP14JAISoundHandlei */ -f32 Z2SeqMgr::getChildTrackVolume(JAISoundHandle* i_handle, int i_track) { +f32 Z2SeqMgr::getChildTrackVolume(JAISoundHandle* handle, int trackId) { f32 volume = 0.0f; - if (*i_handle) { - JAISeq* seq = i_handle->getSound()->asSeq(); - if (seq != NULL && seq->getChildTrack(i_track) != NULL) { - JAISoundChild* child = seq->getChild(i_track); + if (*handle) { + JAISeq* seq = handle->getSound()->asSeq(); + if (seq != NULL && seq->getChildTrack(trackId) != NULL) { + JAISoundChild* child = seq->getChild(trackId); if (child != NULL) { - volume = child->mMove.mParams.mVolume; + volume = child->mMove.params_.mVolume; } } } + return volume; } /* 802B3FEC-802B4128 2AE92C 013C+00 9/9 2/2 0/0 .text * setChildTrackVolume__8Z2SeqMgrFP14JAISoundHandleifUlff */ -void Z2SeqMgr::setChildTrackVolume(JAISoundHandle* i_handle, int i_track, f32 i_volume, - u32 i_count, f32 i_pan, f32 i_dolby) { - if (!*i_handle) { +void Z2SeqMgr::setChildTrackVolume(JAISoundHandle* handle, int trackId, f32 volume, + u32 moveTime, f32 pan, f32 dolby) { + if (!*handle) { return; } - JAISeq* seq = (*i_handle)->asSeq(); + + JAISeq* seq = (*handle)->asSeq(); if (seq == NULL) { return; } - if (seq->getChildTrack(i_track) == NULL) { + + if (seq->getChildTrack(trackId) == NULL) { return; } - JAISoundChild* child = seq->getChild(i_track); + + JAISoundChild* child = seq->getChild(trackId); if (child == NULL) { return; } - if (i_volume > 1.0f) { - i_volume = 1.0f; - } else if (i_volume < 0.0f) { - i_volume = 0.0f; + + if (volume > 1.0f) { + volume = 1.0f; + } else if (volume < 0.0f) { + volume = 0.0f; } - child->mMove.moveVolume(i_volume, i_count); - if (i_pan != -1.0f) { - child->mMove.movePan(i_pan, i_count); + + child->mMove.moveVolume(volume, moveTime); + if (pan != -1.0f) { + child->mMove.movePan(pan, moveTime); } - if (i_dolby != -1.0f) { - child->mMove.moveDolby(i_dolby, i_count); + + if (dolby != -1.0f) { + child->mMove.moveDolby(dolby, moveTime); } } @@ -1666,46 +1754,47 @@ void Z2SeqMgr::resetBattleBgmParams() { } /* 802B4164-802B421C 2AEAA4 00B8+00 4/4 3/3 10/10 .text setBattleBgmOff__8Z2SeqMgrFb */ -void Z2SeqMgr::setBattleBgmOff(bool i_value) { - if (mFlags.mBattleBgmOff != i_value && i_value && +void Z2SeqMgr::setBattleBgmOff(bool isBgmOff) { + if (mFlags.mBattleBgmOff != isBgmOff && isBgmOff && (getSubBgmID() == Z2BGM_BATTLE_NORMAL || getSubBgmID() == Z2BGM_BATTLE_TWILIGHT)) { - stopBattleBgm(struct_80450862, struct_80450861); + stopBattleBgm(Z2Param::BGM_CROSS_FADEOUT_TIME, Z2Param::BGM_CROSS_FADEIN_TIME); } - mFlags.mBattleBgmOff = i_value; + + mFlags.mBattleBgmOff = isBgmOff; } /* 802B421C-802B43D0 2AEB5C 01B4+00 0/0 1/1 0/0 .text setBattleSearched__8Z2SeqMgrFb */ -void Z2SeqMgr::setBattleSearched(bool i_value) { +void Z2SeqMgr::setBattleSearched(bool isBattleSearched) { if (!mFlags.mBattleBgmOff && Z2GetSceneMgr()->isSceneExist() - && mFlags.mBattleSearched != i_value && mBattleSeqState != 3) + && mFlags.mBattleSearched != isBattleSearched && mBattleSeqState != 3) { if (getSubBgmID() == Z2BGM_BATTLE_NORMAL && mBattleSeqState == 1) { - if (i_value) { - setChildTrackVolume(&mSubBgmHandle, 2, 1.0f, struct_80450864, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 3, 1.0f, struct_80450864, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 12, 1.0f, struct_80450864, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 14, 1.0f, struct_80450864, -1.0f, -1.0f); + if (isBattleSearched) { + setChildTrackVolume(&mSubBgmHandle, 2, 1.0f, Z2Param::FOUND_TRACK_FI_TIME, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 3, 1.0f, Z2Param::FOUND_TRACK_FI_TIME, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 12, 1.0f, Z2Param::FOUND_TRACK_FI_TIME, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 14, 1.0f, Z2Param::FOUND_TRACK_FI_TIME, -1.0f, -1.0f); } else { - setChildTrackVolume(&mSubBgmHandle, 2, 0.0f, struct_80450865, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 3, 0.0f, struct_80450865, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, struct_80450865, -1.0f, -1.0f); - setChildTrackVolume(&mSubBgmHandle, 14, 0.0f, struct_80450865, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 2, 0.0f, Z2Param::FOUND_TRACK_FO_TIME, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 3, 0.0f, Z2Param::FOUND_TRACK_FO_TIME, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, Z2Param::FOUND_TRACK_FO_TIME, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, 14, 0.0f, Z2Param::FOUND_TRACK_FO_TIME, -1.0f, -1.0f); } } - mFlags.mBattleSearched = i_value; + mFlags.mBattleSearched = isBattleSearched; } } /* 802B43D0-802B43E0 2AED10 0010+00 3/3 0/0 0/0 .text setBattleDistIgnore__8Z2SeqMgrFb */ -void Z2SeqMgr::setBattleDistIgnore(bool i_value) { - mFlags.mBattleDistIgnore = i_value; +void Z2SeqMgr::setBattleDistIgnore(bool isBattleDistIgnore) { + mFlags.mBattleDistIgnore = isBattleDistIgnore; } /* 802B43E0-802B4498 2AED20 00B8+00 0/0 2/2 0/0 .text setBattleGhostMute__8Z2SeqMgrFb */ -void Z2SeqMgr::setBattleGhostMute(bool i_value) { +void Z2SeqMgr::setBattleGhostMute(bool isBattleGhostMute) { if (getSubBgmID() == Z2BGM_BATTLE_NORMAL) { - if (i_value) { + if (isBattleGhostMute) { mSubBgmMaster.move(1.0f, 5); } else { mSubBgmMaster.move(0.4f, 5); @@ -1714,26 +1803,27 @@ void Z2SeqMgr::setBattleGhostMute(bool i_value) { } /* 802B4498-802B4844 2AEDD8 03AC+00 0/0 1/1 0/0 .text setBattleDistState__8Z2SeqMgrFUc */ -void Z2SeqMgr::setBattleDistState(u8 i_state) { +void Z2SeqMgr::setBattleDistState(u8 state) { if (!mFlags.mBattleBgmOff && Z2GetSceneMgr()->isSceneExist()) { if (!mFlags.mBattleDistIgnore) { - if (i_state < 2 && mBattleSeqCount != 0) { + if (state < 2 && mBattleSeqCount != 0) { mBattleSeqCount = 0; - if (getSubBgmID() == Z2BGM_BATTLE_TWILIGHT - || getSubBgmID() == Z2BGM_BATTLE_NORMAL) + if (getSubBgmID() == Z2BGM_BATTLE_TWILIGHT || getSubBgmID() == Z2BGM_BATTLE_NORMAL) { mSubBgmHandle->getFader().fadeIn(10); mMainBgmMaster.fadeOut(10); } } + if ((Z2GetSoundObjMgr()->isTwilightBattle() && getSubBgmID() == Z2BGM_BATTLE_NORMAL) || (!Z2GetSoundObjMgr()->isTwilightBattle() && getSubBgmID() == Z2BGM_BATTLE_TWILIGHT)) { mSubBgmHandle->stop(30); mSubBgmHandle->releaseHandle(); } + if (Z2GetSoundObjMgr()->isTwilightBattle() || getSubBgmID() == Z2BGM_BATTLE_TWILIGHT) { - switch (i_state) { + switch (state) { case 0: if (mBattleSeqState == 0) { startBattleBgm(true); @@ -1751,47 +1841,45 @@ void Z2SeqMgr::setBattleDistState(u8 i_state) { break; } } else if (getMainBgmID() != Z2BGM_FIELD_LINK_DAY) { - switch (i_state) { + switch (state) { case 0: if (mBattleSeqState == 0) { startBattleBgm(true); } else if (mBattleSeqState == 1) { - setChildTrackVolume(&mSubBgmHandle, data_8045086C, 1.0f, struct_80450866, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, data_8045086C, 1.0f, Z2Param::CLOSE_BATTLE_TRACK_FI_TIME, -1.0f, -1.0f); } break; case 1: if (mBattleSeqState == 0) { startBattleBgm(true); } else if (mBattleSeqState == 1) { - setChildTrackVolume(&mSubBgmHandle, data_8045086C, 0.0f, struct_80450867, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, data_8045086C, 0.0f, Z2Param::CLOSE_BATTLE_TRACK_FO_TIME, -1.0f, -1.0f); } break; case 2: if (mBattleSeqState == 1) { - setChildTrackVolume(&mSubBgmHandle, data_8045086C, 0.0f, struct_80450867, -1.0f, -1.0f); + setChildTrackVolume(&mSubBgmHandle, data_8045086C, 0.0f, Z2Param::CLOSE_BATTLE_TRACK_FO_TIME, -1.0f, -1.0f); } break; case 3: if (mBattleSeqState == 1 || mBattleSeqState == 2) { - stopBattleBgm(struct_80450862, struct_80450861); + stopBattleBgm(Z2Param::BGM_CROSS_FADEOUT_TIME, Z2Param::BGM_CROSS_FADEIN_TIME); } break; } } } - mBattleDistState = i_state; + mBattleDistState = state; } } /* 802B4844-802B4AFC 2AF184 02B8+00 1/1 3/3 1/1 .text setBattleSeqState__8Z2SeqMgrFUc */ -void Z2SeqMgr::setBattleSeqState(u8 i_state) { - if (!mFlags.mBattleBgmOff && Z2GetSceneMgr()->isSceneExist() && mBattleSeqState != i_state) { - if (i_state == 0) { - stopBattleBgm(struct_80450862, struct_80450861); - } else if (getSubBgmID() == Z2BGM_BATTLE_NORMAL && - !(getMainBgmID() == Z2BGM_FIELD_LINK_DAY && !Z2GetSoundObjMgr()->isTwilightBattle())) - { - switch (i_state) { +void Z2SeqMgr::setBattleSeqState(u8 state) { + if (!mFlags.mBattleBgmOff && Z2GetSceneMgr()->isSceneExist() && mBattleSeqState != state) { + if (state == 0) { + stopBattleBgm(Z2Param::BGM_CROSS_FADEOUT_TIME, Z2Param::BGM_CROSS_FADEIN_TIME); + } else if (getSubBgmID() == Z2BGM_BATTLE_NORMAL && !(getMainBgmID() == Z2BGM_FIELD_LINK_DAY && !Z2GetSoundObjMgr()->isTwilightBattle())) { + switch (state) { case 2: if (mBattleSeqState == 1) { Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, 1, -1); @@ -1801,6 +1889,7 @@ void Z2SeqMgr::setBattleSeqState(u8 i_state) { setChildTrackVolume(&mSubBgmHandle, 12, 1.0f, 0, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 14, 1.0f, 0, -1.0f, -1.0f); } + if (mBattleSeqCount != 0) { mBattleSeqCount = 0; mSubBgmHandle->getFader().fadeIn(10); @@ -1810,6 +1899,7 @@ void Z2SeqMgr::setBattleSeqState(u8 i_state) { case 3: mMainBgmMaster.forceOut(); mSubBgmMaster.forceIn(); + if (mBattleSeqState == 1) { Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, 3, -1); } else if (mBattleSeqState == 2) { @@ -1817,18 +1907,19 @@ void Z2SeqMgr::setBattleSeqState(u8 i_state) { } break; } - mBattleSeqState = i_state; + + mBattleSeqState = state; } } } /* 802B4AFC-802B4BD0 2AF43C 00D4+00 0/0 4/4 0/0 .text setBattleLastHit__8Z2SeqMgrFUc */ -void Z2SeqMgr::setBattleLastHit(u8 param_0) { +void Z2SeqMgr::setBattleLastHit(u8 lastHit) { if (getSubBgmID() == Z2BGM_BATTLE_NORMAL) { setBattleDistIgnore(true); - mSubBgmMaster.move(Z2Param::ENEMY_LASTHIT_MUTE_VOLUME, struct_80450868); - field_0xc1 = struct_8045086B; - mBattleLastHit = param_0; + mSubBgmMaster.move(Z2Param::ENEMY_LASTHIT_MUTE_VOLUME, Z2Param::ENDING_BLOW_VOL_DOWN_TIME); + field_0xc1 = Z2Param::ENDING_BLOW_MIN_FINISH_TIME; + mBattleLastHit = lastHit; } } @@ -1843,6 +1934,7 @@ void Z2SeqMgr::battleBgmFramework() { } } } + if (!mFlags.mBattleBgmOff && Z2GetSceneMgr()->isSceneExist()) { Z2GetSoundObjMgr()->searchEnemy(); switch (getSubBgmID()) { @@ -1852,17 +1944,19 @@ void Z2SeqMgr::battleBgmFramework() { if (getMainBgmID() == Z2BGM_FIELD_LINK_DAY && !Z2GetSoundObjMgr()->isTwilightBattle()) { return; } + if (field_0xc1 != 0) { field_0xc1--; if (field_0xc1 < mBattleLastHit && mSubBgmMaster.getDest() != 1.0f) { - mSubBgmMaster.fadeIn(struct_8045086A); + mSubBgmMaster.fadeIn(Z2Param::ENDING_BLOW_VOL_LOWER_RECOVER_TIME); } + if (field_0xc1 == 0) { setBattleDistIgnore(false); if (Z2GetSoundObjMgr()->checkBattleFinish()) { setBattleSeqState(3); } else if (mSubBgmMaster.getDest() != 1.0f) { - mSubBgmMaster.fadeIn(struct_8045086A); + mSubBgmMaster.fadeIn(Z2Param::ENDING_BLOW_VOL_LOWER_RECOVER_TIME); } } } @@ -1872,13 +1966,13 @@ void Z2SeqMgr::battleBgmFramework() { setBattleDistIgnore(false); mFlags.mBattleSearched = 0; field_0xc1 = 0; - mBattleLastHit = struct_80450869; + mBattleLastHit = Z2Param::ENDING_BLOW_VOL_LOWER_TIME; } } } /* 802B4EB0-802B5204 2AF7F0 0354+00 1/1 0/0 0/0 .text startBattleBgm__8Z2SeqMgrFb */ -void Z2SeqMgr::startBattleBgm(bool i_fade) { +void Z2SeqMgr::startBattleBgm(bool isFadeIn) { if (!mFlags.mBattleBgmOff && Z2GetSceneMgr()->isSceneExist() && mBattleSeqState == 0 && (mFlags.mBattleDistIgnore || mBattleDistState <= 1)) { @@ -1886,24 +1980,28 @@ void Z2SeqMgr::startBattleBgm(bool i_fade) { if (Z2GetSceneMgr()->isInDarkness() || Z2GetSoundObjMgr()->isTwilightBattle()) { bgm_id = Z2BGM_BATTLE_TWILIGHT; } + u32 subBgmID = getSubBgmID(); if (subBgmID != bgm_id) { mBattleSeqState = 1; if (Z2GetSoundMgr()->startSound(bgm_id, &mSubBgmHandle, NULL)) { Z2GetSoundObjMgr()->setBattleInit(); mSubBgmStatus = 0xff; + s16 ivar2 = Z2GetLink()->getMoveSpeed() - 23; if (ivar2 < 0) { ivar2 = 0; } - if (ivar2 > struct_80450861) { - ivar2 = struct_80450861; + + if (ivar2 > Z2Param::BGM_CROSS_FADEIN_TIME) { + ivar2 = Z2Param::BGM_CROSS_FADEIN_TIME; } - u8 count_in, count_out; + + u8 fadeinTime, fadeoutTime; switch (bgm_id) { case Z2BGM_BATTLE_NORMAL: - count_in = struct_80450861 - ivar2; - count_out = struct_80450862 - ivar2 / 2; + fadeinTime = Z2Param::BGM_CROSS_FADEIN_TIME - ivar2; + fadeoutTime = Z2Param::BGM_CROSS_FADEOUT_TIME - ivar2 / 2; if (!mFlags.mBattleSearched) { setChildTrackVolume(&mSubBgmHandle, 2, 0.0f, 0, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 3, 0.0f, 0, -1.0f, -1.0f); @@ -1916,51 +2014,58 @@ void Z2SeqMgr::startBattleBgm(bool i_fade) { break; case Z2BGM_BATTLE_TWILIGHT: changeSubBgmStatus(Z2GetSoundObjMgr()->isTwilightBattle()); - count_in = 25 - ivar2 / 4; - count_out = 25 - ivar2 / 4; + fadeinTime = 25 - ivar2 / 4; + fadeoutTime = 25 - ivar2 / 4; break; } - if (i_fade) { - mSubBgmMaster.fadeInFromOut(count_in); + + if (isFadeIn) { + mSubBgmMaster.fadeInFromOut(fadeinTime); } else { mSubBgmMaster.forceIn(); } - mMainBgmMaster.fadeOut(count_out); + + mMainBgmMaster.fadeOut(fadeoutTime); } } } } /* 802B5204-802B545C 2AFB44 0258+00 3/3 1/1 0/0 .text stopBattleBgm__8Z2SeqMgrFUcUc */ -void Z2SeqMgr::stopBattleBgm(u8 param_0, u8 param_1) { +void Z2SeqMgr::stopBattleBgm(u8 subFadeoutTime, u8 mainFadeinTime) { if (mBattleSeqCount == 0) { s16 ivar6 = 0; if (Z2GetLink() != NULL) { ivar6 = Z2GetLink()->getMoveSpeed() - 23; } + if (ivar6 < 0) { ivar6 = 0; } - if (ivar6 > struct_80450861) { - ivar6 = struct_80450861; + + if (ivar6 > Z2Param::BGM_CROSS_FADEIN_TIME) { + ivar6 = Z2Param::BGM_CROSS_FADEIN_TIME; } + if (getSubBgmID() == Z2BGM_BATTLE_NORMAL) { - param_0 = struct_80450861 + ivar6; - param_1 = struct_80450862 + ivar6 / 2; - mSubBgmHandle->fadeOut(param_0); - mBattleSeqCount = param_0; + subFadeoutTime = Z2Param::BGM_CROSS_FADEIN_TIME + ivar6; + mainFadeinTime = Z2Param::BGM_CROSS_FADEOUT_TIME + ivar6 / 2; + mSubBgmHandle->fadeOut(subFadeoutTime); + mBattleSeqCount = subFadeoutTime; } else if (getSubBgmID() == Z2BGM_BATTLE_TWILIGHT) { if (mSubBgmStatus > 1) { - param_0 = struct_80450861 + ivar6 / 4; - param_1 = struct_80450861 + ivar6 / 4; + subFadeoutTime = Z2Param::BGM_CROSS_FADEIN_TIME + ivar6 / 4; + mainFadeinTime = Z2Param::BGM_CROSS_FADEIN_TIME + ivar6 / 4; } else { - param_0 = 25 + ivar6 / 4; - param_1 = 25 + ivar6 / 4; + subFadeoutTime = 25 + ivar6 / 4; + mainFadeinTime = 25 + ivar6 / 4; } - mSubBgmHandle->fadeOut(param_0); - mBattleSeqCount = param_0; + + mSubBgmHandle->fadeOut(subFadeoutTime); + mBattleSeqCount = subFadeoutTime; } - mMainBgmMaster.fadeIn(param_1); + + mMainBgmMaster.fadeIn(mainFadeinTime); mBattleDistState = 3; setBattleDistIgnore(false); mFlags.mBattleSearched = false; @@ -1974,6 +2079,7 @@ void Z2SeqMgr::fieldBgmStart() { Z2GetSoundMgr()->startSound(Z2BGM_FIELD_LINK_DAY, &mMainBgmHandle, NULL); changeBgmStatus(0); field_0xc4 = 0; + if (Z2GetLink()->isRiding()) { mFlags.mRiding = true; mRideCount = 0; @@ -2001,6 +2107,7 @@ void Z2SeqMgr::fieldRidingMute() { volume1 = 0.0f; volume2 = 1.0f; } + setChildTrackVolume(&mMainBgmHandle, 5, volume1, mRideCount, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 6, volume1, mRideCount, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 7, volume1, mRideCount, -1.0f, -1.0f); @@ -2034,8 +2141,10 @@ void Z2SeqMgr::onFieldBgmJumpEnd() { setChildTrackVolume(&mMainBgmHandle, 13, field_0xcc, 0, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 14, field_0xcc, 0, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 15, field_0xcc, 0, -1.0f, -1.0f); + Z2GetSoundMgr()->getSeqMgr()->calc(); Z2GetSoundMgr()->getSeqMgr()->mixOut(); + if (mRideCount != 0) { fieldRidingMute(); } @@ -2044,13 +2153,13 @@ void Z2SeqMgr::onFieldBgmJumpEnd() { /* 802B594C-802B5E80 2B028C 0534+00 2/1 0/0 0/0 .text fieldBgmFramework__8Z2SeqMgrFv */ void Z2SeqMgr::fieldBgmFramework() { if (Z2GetSceneMgr()->isSceneExist() && !Z2GetSceneMgr()->isInDarkness() - && (Z2GetSceneMgr()->getCurrentSceneNum() == 0x1e - || Z2GetSceneMgr()->getCurrentSceneNum() == 0x1f) + && (Z2GetSceneMgr()->getCurrentSceneNum() == Z2SCENE_HYRULE_FIELD || Z2GetSceneMgr()->getCurrentSceneNum() == Z2SCENE_CASTLE_TOWN_GATES) && mFlags.mFieldBgmPlay) { if (mRideCount != 0) { mRideCount--; } + if (getMainBgmID() == Z2BGM_FIELD_LINK_DAY) { field_0xc4 = Z2GetSoundStarter()->getPortData(&mMainBgmHandle, 10, -1); if (Z2GetStatusMgr()->isPaused()) { @@ -2063,10 +2172,12 @@ void Z2SeqMgr::fieldBgmFramework() { fieldRidingMute(); } } + if (field_0xc4 == 0 || field_0xc4 == 21 || field_0xc4 == 22 || field_0xc4 == 23 || field_0xc4 == 24) { return; } + if (Z2GetStatusMgr()->getDemoStatus() == 10) { switch (field_0xc4) { case 7: @@ -2115,8 +2226,7 @@ void Z2SeqMgr::fieldBgmFramework() { if (Z2GetLink()->getMovingTime() < 150) { switch (field_0xc4) { case 3: - if (mFlags.mRiding - && Z2GetSoundObjMgr()->getEnemyNumVeryFar() == 0) { + if (mFlags.mRiding && Z2GetSoundObjMgr()->getEnemyNumVeryFar() == 0) { changeBgmStatus(3); } break; @@ -2151,8 +2261,7 @@ void Z2SeqMgr::fieldBgmFramework() { } } } else { - if (field_0xc4 >= 7 && field_0xc4 <= 15 - && Z2GetStatusMgr()->getHour() >= 20) { + if (field_0xc4 >= 7 && field_0xc4 <= 15 && Z2GetStatusMgr()->getHour() >= 20) { mMainBgmHandle->stop(60); mMainBgmHandle.releaseSound(); } else { @@ -2193,6 +2302,7 @@ void Z2SeqMgr::fieldBgmFramework() { changeBgmStatus(8); field_0xc4 = 23; } + if (Z2GetLink()->isRiding()) { mFlags.mRiding = true; mRideCount = 0; @@ -2210,19 +2320,13 @@ void Z2SeqMgr::fieldBgmFramework() { } /* 802B5E80-802B5E84 2B07C0 0004+00 1/1 0/0 0/0 .text mbossBgmMuteProcess__8Z2SeqMgrFv */ -void Z2SeqMgr::mbossBgmMuteProcess() { - /* empty function */ -} +void Z2SeqMgr::mbossBgmMuteProcess() {} /* 802B5E84-802B5E88 2B07C4 0004+00 0/0 2/2 0/0 .text bgmSetSwordUsing__8Z2SeqMgrFl */ -void Z2SeqMgr::bgmSetSwordUsing(s32 param_0) { - /* empty function */ -} +void Z2SeqMgr::bgmSetSwordUsing(s32 param_0) {} /* 802B5E88-802B5E8C 2B07C8 0004+00 0/0 1/1 0/0 .text bgmNowBattle__8Z2SeqMgrFf */ -void Z2SeqMgr::bgmNowBattle(f32 param_0) { - /* empty function */ -} +void Z2SeqMgr::bgmNowBattle(f32 param_0) {} /* 802B5E8C-802B5ED4 2B07CC 0048+00 0/0 1/1 0/0 .text taktModeMute__8Z2SeqMgrFv */ void Z2SeqMgr::taktModeMute() { -- cgit v1.2.3