summaryrefslogtreecommitdiff
path: root/src/Z2AudioLib/Z2SeqMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Z2AudioLib/Z2SeqMgr.cpp')
-rw-r--r--src/Z2AudioLib/Z2SeqMgr.cpp1194
1 files changed, 625 insertions, 569 deletions
diff --git a/src/Z2AudioLib/Z2SeqMgr.cpp b/src/Z2AudioLib/Z2SeqMgr.cpp
index cd90349a97..a9cad68b5e 100644
--- a/src/Z2AudioLib/Z2SeqMgr.cpp
+++ b/src/Z2AudioLib/Z2SeqMgr.cpp
@@ -143,15 +143,16 @@ void Z2SeqMgr::bgmStart(u32 bgmID, u32 fadeTime, s32 param_2) {
mMainBgmMaster.forceIn();
break;
case Z2BGM_GAME_OVER:
- if (getMainBgmID() != bgmID) {
- Z2GetSceneMgr()->setInGame(false);
- Z2GetSceneMgr()->setSceneExist(false);
- setBattleBgmOff(true);
- Z2GetSoundMgr()->getSeqMgr()->stop(0);
- Z2GetSoundMgr()->getStreamMgr()->stop(0);
- Z2GetSoundMgr()->startSound(bgmID, &mMainBgmHandle, NULL);
- mBgmStatus = 0xff;
+ if (getMainBgmID() == bgmID) {
+ return;
}
+ Z2GetSceneMgr()->setInGame(false);
+ Z2GetSceneMgr()->setSceneExist(false);
+ setBattleBgmOff(true);
+ Z2GetSoundMgr()->getSeqMgr()->stop(0);
+ Z2GetSoundMgr()->getStreamMgr()->stop(0);
+ Z2GetSoundMgr()->startSound(bgmID, &mMainBgmHandle, NULL);
+ mBgmStatus = 0xff;
return;
case Z2BGM_LAKE:
if (Z2GetLink() != NULL && Z2GetLink()->getCurrentPos() != NULL &&
@@ -245,10 +246,6 @@ void Z2SeqMgr::bgmStop(u32 fadeTime, s32 param_1) {
}
void Z2SeqMgr::subBgmStart(u32 bgmID) {
- #if DEBUG
- const char** spotName = sSpotName;
- #endif
-
if (bgmID == -1) {
return;
}
@@ -350,7 +347,7 @@ void Z2SeqMgr::subBgmStart(u32 bgmID) {
fadeoutTime = 1;
break;
case Z2BGM_COWBOY_GAME:
- mAllBgmMaster.forceIn();
+ bgmAllUnMute(0);
fadeinTime = 0;
fadeoutTime = 1;
break;
@@ -391,7 +388,11 @@ void Z2SeqMgr::subBgmStart(u32 bgmID) {
}
if (bgmID == getSubBgmID()) {
- if (bgmID == Z2BGM_SUMO || bgmID == Z2BGM_COWBOY_GAME) {
+ if (bgmID == Z2BGM_SUMO
+#if PLATFORM_GCN
+ || bgmID == Z2BGM_COWBOY_GAME
+#endif
+ ) {
mSubBgmHandle->stop(0);
mSubBgmHandle.releaseSound();
} else {
@@ -416,7 +417,7 @@ void Z2SeqMgr::subBgmStart(u32 bgmID) {
bgmStreamStop(0);
// fallthrough
case Z2BGM_TN_MBOSS_LV9:
- mStreamBgmMaster.forceIn();
+ mStreamBgmMaster.fadeIn(0);
// fallthrough
case Z2BGM_RODEO:
changeSubBgmStatus(1);
@@ -437,9 +438,9 @@ void Z2SeqMgr::subBgmStart(u32 bgmID) {
#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("[Z2SeqMgr::subBgmStart] HIDDEN_VIL_D01 start(%d)\n", mSubBgmHandle.isSoundAttached());
OS_REPORT(" subBgmMasterVol::%.2f \n", mSubBgmMaster.get());
+ OS_REPORT(" mainBgmMasterVol::%.2f \n", mMainBgmMaster.get());
OS_REPORT(" allBgmMasterVol::%.2f \n", mAllBgmMaster.get());
OS_REPORT(" bgmPauseVol::%.2f \n", mBgmPause.get());
OS_REPORT(" fanfareMuteVol::%.2f \n", mFanfareMute.get());
@@ -583,7 +584,13 @@ void Z2SeqMgr::subBgmStopInner() {
field_0xb8 = -1;
}
+static void dummy1() {
+ OS_REPORT("[Z2SeqMgr::bgmStreamPrepare] %08x\n");
+ OS_REPORT("[Z2SeqMgr::bgmStreamPlay] \n");
+}
+
void Z2SeqMgr::bgmStreamPrepare(u32 bgmID) {
+ u32 bgmID2 = bgmID;
if (mStreamBgmHandle) {
bgmStreamStop(0);
}
@@ -592,18 +599,21 @@ void Z2SeqMgr::bgmStreamPrepare(u32 bgmID) {
mStreamBgmHandle->lockWhenPrepared();
switch (bgmID) {
+#if PLATFORM_GCN
case 0x2000010:
mAllBgmMaster.forceIn();
// fallthrough
+#endif
case 0x200000f:
return;
case 0x2000014:
Z2GetSceneMgr()->setSceneExist(true);
return;
case 0x2000023:
- if (mMainBgmHandle) {
- mMainBgmHandle->stop(Z2Param::BGM_CROSS_FADEOUT_TIME);
+ if (!mMainBgmHandle) {
+ return;
}
+ mMainBgmHandle->stop(Z2Param::BGM_CROSS_FADEOUT_TIME);
return;
case 0x2000038:
if (mMainBgmHandle) {
@@ -613,7 +623,7 @@ void Z2SeqMgr::bgmStreamPrepare(u32 bgmID) {
case 0x2000003:
case 0x2000047:
case 0x200005f:
- mStreamBgmMaster.forceOut();
+ mStreamBgmMaster.fadeOut(0);
return;
case 0x200007c:
mStreamBgmMaster.fadeOut(45);
@@ -670,453 +680,450 @@ void Z2SeqMgr::bgmStreamStop(u32 fadeTime) {
}
void Z2SeqMgr::changeBgmStatus(s32 status) {
- if (!mMainBgmHandle) {
- return;
- }
-
- 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 (status == mBgmStatus) {
- return;
- }
+ if (mMainBgmHandle) {
+ u32 moveTime = 0;
+ bool mute;
- if (mBgmStatus != 0xff) {
- moveTime = 60;
- }
+ #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
- if (status == 1) {
- volume1 = 0.65f;
- volume2 = 0.0f;
- volume3 = 1.0f;
- moveTime = 30;
- } else {
- volume1 = 1.0f;
- volume2 = 1.0f;
- volume3 = 0.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, 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 (status) {
- case 4:
- case 0xc:
- muteSceneBgm(Z2Param::SCENE_CHANGE_BGM_FADEOUT_TIME, 0.0f);
- // fallthrough
- case 7:
- mute = true;
- break;
- case 2:
- Z2GetSoundObjMgr()->setForceBattleArea(true, 1500, 5000, 10000);
- break;
- }
-
- if (!mute) {
- unMuteSceneBgm(Z2Param::SCENE_CHANGE_BGM_FADEOUT_TIME);
- }
- break;
- case Z2BGM_DUNGEON_LV2:
- switch (status) {
- case 0xe:
- case 0x10:
- case 0x11:
- subBgmStart(Z2BGM_DEATH_MOUNTAIN02);
- return;
- default:
- if (getSubBgmID() == Z2BGM_DEATH_MOUNTAIN02) {
- subBgmStop();
+ switch (getMainBgmID()) {
+ case Z2BGM_TOAL_VILLEGE:
+ if (status == mBgmStatus) {
+ return;
}
- return;
- }
- break;
- case Z2BGM_DUNGEON_LV5:
- if (mBgmStatus != 0xff) {
- moveTime = 45;
- }
- if (status == 2 || status == 1) {
- volume1 = 0.0f;
- volume2 = 1.0f;
- } else {
- volume1 = 1.0f;
- volume2 = 0.0f;
- }
+ if (mBgmStatus != 0xff) {
+ moveTime = 60;
+ }
- 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);
- }
- break;
- case Z2BGM_CASTLE_TOWN:
- if (mBgmStatus != 0xff) {
- moveTime = 45;
- }
+ if (status == 1) {
+ volume1 = 0.65f;
+ volume2 = 0.0f;
+ volume3 = 1.0f;
+ moveTime = 30;
+ } else {
+ volume1 = 1.0f;
+ volume2 = 1.0f;
+ volume3 = 0.0f;
+ }
- switch (status) {
- case 0:
- case 1:
- case 5:
- 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);
+ 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 2:
- 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);
+ case Z2BGM_HORSE_BATTLE:
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 3:
- 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, 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);
+ case Z2BGM_DUNGEON_FOREST:
+ mute = false;
+ switch (status) {
+ case 4:
+ case 0xc:
+ muteSceneBgm(Z2Param::SCENE_CHANGE_BGM_FADEOUT_TIME, 0.0f);
+ // fallthrough
+ case 7:
+ mute = true;
+ break;
+ case 2:
+ Z2GetSoundObjMgr()->setForceBattleArea(true, 1500, 5000, 10000);
+ break;
+ }
+
+ if (!mute) {
+ unMuteSceneBgm(Z2Param::SCENE_CHANGE_BGM_FADEOUT_TIME);
+ }
break;
- }
+ case Z2BGM_DUNGEON_LV2:
+ switch (status) {
+ case 0xe:
+ case 0x10:
+ case 0x11:
+ subBgmStart(Z2BGM_DEATH_MOUNTAIN02);
+ break;
+ default:
+ if (getSubBgmID() == Z2BGM_DEATH_MOUNTAIN02) {
+ subBgmStop();
+ }
+ }
+ return;
+ case Z2BGM_DUNGEON_LV5:
+ if (mBgmStatus != 0xff) {
+ moveTime = 45;
+ }
- if (status == 5) {
- muteSceneBgm(moveTime, 0.35f);
- mFlags.mHeightVolMod = false;
- } else {
- unMuteSceneBgm(moveTime);
- if (status < 2) {
- mFlags.mHeightVolMod = false;
+ if (status == 2 || status == 1) {
+ volume1 = 0.0f;
+ volume2 = 1.0f;
} else {
- mFlags.mHeightVolMod = true;
+ volume1 = 1.0f;
+ volume2 = 0.0f;
}
- }
- break;
- case Z2BGM_HOLY_FOREST:
- if (mBgmStatus != 0xff) {
- moveTime = 45;
- setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, 5, -1.0f, -1.0f);
- } else {
- setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, 0, -1.0f, -1.0f);
- }
-
- if (status == 1) {
- volume1 = 0.6f;
- volume2 = 1.0f;
- } else {
- volume1 = 1.0f;
- volume2 = 0.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 (status == 0) {
- muteSceneBgm(0, 0.5f);
- } else if (status == 1) {
- unMuteSceneBgm(80);
- }
- break;
- case Z2BGM_DEMO08:
- if (status == 1) {
- setChildTrackVolume(&mMainBgmHandle, 4, 1.0f, 90, -1.0f, -1.0f);
- } else if (status == 2) {
- bgmStop(90, 0);
- } else {
- setChildTrackVolume(&mMainBgmHandle, 4, 0.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mMainBgmHandle, 5, 0.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mMainBgmHandle, 6, 0.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, 0, -1.0f, -1.0f);
- }
- break;
- case Z2BGM_DEMO10:
- 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);
- setChildTrackVolume(&mMainBgmHandle, 3, 0.6f, 143, -1.0f, -1.0f);
- setChildTrackVolume(&mMainBgmHandle, 4, 0.0f, 143, -1.0f, -1.0f);
- setChildTrackVolume(&mMainBgmHandle, 5, 1.0f, 143, -1.0f, -1.0f);
- setChildTrackVolume(&mMainBgmHandle, 6, 1.0f, 143, -1.0f, -1.0f);
- setChildTrackVolume(&mMainBgmHandle, 7, 1.0f, 143, -1.0f, -1.0f);
- } else {
- setChildTrackVolume(&mMainBgmHandle, 5, 0.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mMainBgmHandle, 6, 0.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, 0, -1.0f, -1.0f);
- }
- break;
- case Z2BGM_BOSS_SNOWWOMAN_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);
- setChildTrackVolume(&mMainBgmHandle, 12, 1.0f, 60, -1.0f, -1.0f);
- } else {
- setChildTrackVolume(&mMainBgmHandle, 10, 0.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mMainBgmHandle, 11, 0.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mMainBgmHandle, 12, 0.0f, 0, -1.0f, -1.0f);
- }
- break;
- case Z2BGM_DUNGEON_LV8:
- if (status == mBgmStatus) {
- return;
- }
+ 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 (mBgmStatus != 0xff) {
- moveTime = 45;
- }
+ if (status == 4) {
+ muteSceneBgm(60, 0.29f);
+ } else {
+ unMuteSceneBgm(60);
+ }
+ break;
+ case Z2BGM_CASTLE_TOWN:
+ if (mBgmStatus != 0xff) {
+ moveTime = 45;
+ }
- if (status == 0 || status == 0xb) {
- volume1 = 1.0f;
- volume2 = 0.0f;
- volume3 = 0.0f;
- volume4 = 0.0f;
- } else if (status >= 100) {
- volume1 = 0.0f;
- volume2 = 1.0f;
+ switch (status) {
+ case 0:
+ case 1:
+ case 5:
+ 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, 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, 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, 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;
+ }
- 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);
+ if (status == 5) {
+ muteSceneBgm(moveTime, 0.35f);
+ mFlags.mHeightVolMod = false;
+ } else {
+ unMuteSceneBgm(moveTime);
+ if (status < 2) {
+ mFlags.mHeightVolMod = false;
+ } else {
+ mFlags.mHeightVolMod = true;
+ }
+ }
+ break;
+ case Z2BGM_HOLY_FOREST:
+ if (mBgmStatus != 0xff) {
+ moveTime = 45;
+ setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, 5, -1.0f, -1.0f);
+ } else {
+ setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, 0, -1.0f, -1.0f);
+ }
- 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;
- }
+ if (status == 1) {
+ volume1 = 0.6f;
+ volume2 = 1.0f;
+ } else {
+ volume1 = 1.0f;
+ volume2 = 0.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 (status == 0xd) {
- mSceneBgm.move(0.3f, 134);
- } else {
- mSceneBgm.forceIn();
- if (status > 6) {
- status = (status - 7) * 2;
+ 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 (status == 0) {
+ muteSceneBgm(0, 0.5f);
+ } else if (status == 1) {
+ unMuteSceneBgm(80);
+ }
+ break;
+ case Z2BGM_DEMO08:
+ if (status == 1) {
+ setChildTrackVolume(&mMainBgmHandle, 4, 1.0f, 90, -1.0f, -1.0f);
+ } else if (status == 2) {
+ bgmStop(90, 0);
} else {
- status = status * 2 - 1;
+ setChildTrackVolume(&mMainBgmHandle, 4, 0.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mMainBgmHandle, 5, 0.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mMainBgmHandle, 6, 0.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, 0, -1.0f, -1.0f);
+ }
+ break;
+ case Z2BGM_DEMO10:
+ 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);
+ setChildTrackVolume(&mMainBgmHandle, 3, 0.6f, 143, -1.0f, -1.0f);
+ setChildTrackVolume(&mMainBgmHandle, 4, 0.0f, 143, -1.0f, -1.0f);
+ setChildTrackVolume(&mMainBgmHandle, 5, 1.0f, 143, -1.0f, -1.0f);
+ setChildTrackVolume(&mMainBgmHandle, 6, 1.0f, 143, -1.0f, -1.0f);
+ setChildTrackVolume(&mMainBgmHandle, 7, 1.0f, 143, -1.0f, -1.0f);
+ } else {
+ setChildTrackVolume(&mMainBgmHandle, 5, 0.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mMainBgmHandle, 6, 0.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mMainBgmHandle, 7, 0.0f, 0, -1.0f, -1.0f);
+ }
+ break;
+ case Z2BGM_BOSS_SNOWWOMAN_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);
+ setChildTrackVolume(&mMainBgmHandle, 12, 1.0f, 60, -1.0f, -1.0f);
+ } else {
+ setChildTrackVolume(&mMainBgmHandle, 10, 0.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mMainBgmHandle, 11, 0.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mMainBgmHandle, 12, 0.0f, 0, -1.0f, -1.0f);
+ }
+ break;
+ case Z2BGM_DUNGEON_LV8:
+ if (status == mBgmStatus) {
+ return;
}
- }
- break;
- case Z2BGM_FORTUNE:
- if (status == 1) {
- muteSceneBgm(45, 0.5f);
- } else {
- unMuteSceneBgm(45);
- }
- break;
- case Z2BGM_DUNGEON_LV9_02:
- if (mBgmStatus != 0xff) {
- moveTime = 30;
- }
- if (status == 0xc) {
- volume4 = 1.0f;
- volume1 = 0.0f;
- volume2 = 0.5f;
- volume3 = 0.0f;
- } else if (status == 8) {
- volume4 = 0.0f;
- volume1 = 0.5f;
- volume2 = 1.0f;
- volume3 = 0.8f;
- } 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);
- }
+ if (mBgmStatus != 0xff) {
+ moveTime = 45;
+ }
- 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 (status == mBgmStatus) {
- return;
- }
+ if (status == 0 || status == 0xb) {
+ volume1 = 1.0f;
+ volume2 = 0.0f;
+ volume3 = 0.0f;
+ volume4 = 0.0f;
+ } else if (status >= 100) {
+ volume1 = 0.0f;
+ volume2 = 1.0f;
- if (mBgmStatus != 0xff) {
- moveTime = 45;
- }
+ 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);
- if (status == 1) {
- volume1 = 0.0f;
- volume2 = 1.0f;
- } else {
- volume1 = 1.0f;
- volume2 = 0.0f;
- }
+ 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, 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 (status == 1) {
- muteSceneBgm(45, 0.5f);
- } else if (status == 2) {
- muteSceneBgm(0, 0.5f);
- } else {
- unMuteSceneBgm(45);
- }
- break;
- case Z2BGM_VS_GANON_04:
- if (status == mBgmStatus) {
- return;
- }
+ 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 (status == 0xd) {
+ mSceneBgm.move(0.3f, 134);
+ } else {
+ mSceneBgm.forceIn();
+ if (status > 6) {
+ status = (status - 7) * 2;
+ } else {
+ status = status * 2 - 1;
+ }
+ }
+ break;
+ case Z2BGM_FORTUNE:
+ if (status == 1) {
+ muteSceneBgm(45, 0.5f);
+ } else {
+ unMuteSceneBgm(45);
+ }
+ break;
+ case Z2BGM_DUNGEON_LV9_02:
+ if (mBgmStatus != 0xff) {
+ moveTime = 30;
+ }
- if (status >= 4) {
- moveTime = 50;
- if (status == 4) {
+ if (status == 0xc) {
volume4 = 1.0f;
volume1 = 0.0f;
- } else if (status == 5) {
- volume4 = 0.0f;
- volume1 = 1.0f;
- } else if (status == 6) {
- volume4 = 0.0f;
- volume1 = 0.0f;
- } else if (status == 7) {
+ volume2 = 0.5f;
+ volume3 = 0.0f;
+ } else if (status == 8) {
volume4 = 0.0f;
+ volume1 = 0.5f;
+ volume2 = 1.0f;
+ volume3 = 0.8f;
+ } 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 (status == mBgmStatus) {
+ return;
+ }
+
+ if (mBgmStatus != 0xff) {
+ moveTime = 45;
+ }
+
+ if (status == 1) {
volume1 = 0.0f;
- moveTime = 0;
- } else if (status == 8) {
- volume4 = 1.0f;
+ volume2 = 1.0f;
+ } else {
volume1 = 1.0f;
- moveTime = 0;
+ volume2 = 0.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);
+ 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 (status == 1) {
+ muteSceneBgm(45, 0.5f);
+ } else if (status == 2) {
+ muteSceneBgm(0, 0.5f);
+ } else {
+ unMuteSceneBgm(45);
+ }
+ break;
+ case Z2BGM_VS_GANON_04:
+ if (status == mBgmStatus) {
+ return;
+ }
+
+ if (status >= 4) {
+ moveTime = 50;
+ if (status == 4) {
+ volume4 = 1.0f;
+ volume1 = 0.0f;
+ } else if (status == 5) {
+ volume4 = 0.0f;
+ volume1 = 1.0f;
+ } else if (status == 6) {
+ volume4 = 0.0f;
+ volume1 = 0.0f;
+ } else if (status == 7) {
+ volume4 = 0.0f;
+ volume1 = 0.0f;
+ moveTime = 0;
+ } else if (status == 8) {
+ volume4 = 1.0f;
+ volume1 = 1.0f;
+ moveTime = 0;
+ }
+
+ 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;
}
- break;
- }
- Z2GetSoundStarter()->setPortData(&mMainBgmHandle, 9, status, -1);
- mBgmStatus = status & 0xff;
+ Z2GetSoundStarter()->setPortData(&mMainBgmHandle, 9, status, -1);
+ mBgmStatus = status & 0xff;
+ }
}
void Z2SeqMgr::changeSubBgmStatus(s32 status) {
@@ -1284,9 +1291,11 @@ void Z2SeqMgr::changeSubBgmStatus(s32 status) {
setChildTrackVolume(&mSubBgmHandle, 11, 0.0f, moveTime, -1.0f, -1.0f);
setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, moveTime, -1.0f, -1.0f);
}
+#if PLATFORM_GCN
break;
case Z2BGM_BATTLE_NORMAL:
return;
+#endif
}
if (bvar2) {
@@ -1341,6 +1350,14 @@ void Z2SeqMgr::changeFishingBgm(s32 param_0) {
}
}
+static void dummy2() {
+ OS_REPORT("[Z2SeqMgr::talkInBgm]\n");
+ OS_REPORT("[Z2SeqMgr::talkOutBgm]\n");
+ OS_REPORT("[Z2SeqMgr::menuInBgm]\n");
+ OS_REPORT("[Z2SeqMgr::menuOutBgm]\n");
+ OS_REPORT("[Z2SeqMgr::fanfareFramework] mOpenBoxWait = %d\n");
+}
+
void Z2SeqMgr::talkInBgm() {
if (getStreamBgmID() == 0x2000038 || getStreamBgmID() == 0x200007c || getMainBgmID() == Z2BGM_WCS_D01) {
return;
@@ -1362,6 +1379,7 @@ void Z2SeqMgr::menuOutBgm() {
}
void Z2SeqMgr::fanfareFramework() {
+ u8 r30;
switch (mFanfareID) {
case Z2BGM_OPEN_BOX:
mFanfareCount = 150;
@@ -1395,6 +1413,7 @@ void Z2SeqMgr::fanfareFramework() {
case Z2BGM_ITEM_GET_SMELL:
case Z2BGM_ITEM_GET_POU:
case Z2BGM_ITEM_GET_ME_S:
+ r30 = mFanfareCount;
if (mFanfareCount == 0) {
Z2GetSoundMgr()->startSound(mFanfareID, &mFanfareHandle, 0);
mFanfareMute.fadeOut(1);
@@ -1420,7 +1439,7 @@ void Z2SeqMgr::fanfareFramework() {
mFanfareCount = 50;
mFanfareMute.fadeOut(30);
} else if (mFanfareCount == 1) {
- Z2GetSoundMgr()->startSound((u32)mFanfareID, &mFanfareHandle, 0);
+ Z2GetSoundMgr()->startSound(mFanfareID, &mFanfareHandle, 0);
mFanfareID.setAnonymous();
}
break;
@@ -1528,21 +1547,17 @@ void Z2SeqMgr::processBgmFramework() {
&& Z2GetLink() != NULL && Z2GetLink()->getCurrentPos() != NULL)
{
f32 link_y = Z2GetLink()->getCurrentPos()->y;
- f32 volume, depth;
+ f32 depth;
switch (getMainBgmID()) {
case Z2BGM_DEATH_MOUNTAIN01:
- volume = Z2Calc::getParamByExp(link_y, sDeathMtTop, sDeathMtBottom, 0.3f, 0.0f, 1.0f,
- Z2Calc::CURVE_NEGATIVE);
- field_0x84.move(volume, 0);
+ field_0x84.move(Z2Calc::getParamByExp(link_y, sDeathMtTop, sDeathMtBottom, 0.3f, 0.0f, 1.0f, Z2Calc::CURVE_NEGATIVE), 0);
break;
case Z2BGM_RAKKA_HOUSE:
if (link_y < -10500.0f) {
bgmStart(Z2BGM_LAKE, 150, 0);
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_POSITIVE);
- field_0x84.move(volume, 0);
+ field_0x84.move(Z2Calc::getParamByExp(link_y, -10500.0f, -7500.0f, 0.3f, 0.0f, 1.0f, Z2Calc::CURVE_POSITIVE), 0);
}
break;
case Z2BGM_FIELD_LINK_DAY:
@@ -1554,9 +1569,7 @@ void Z2SeqMgr::processBgmFramework() {
if (depth > sUnderWaterDepthMax) {
field_0x84.forceOut();
} else if (depth > 0.0f) {
- volume = Z2Calc::getParamByExp(depth, sUnderWaterDepthMax, 0.0f, 0.3f, 0.1f, 1.0f,
- Z2Calc::CURVE_POSITIVE);
- field_0x84.move(volume, 0);
+ field_0x84.move(Z2Calc::getParamByExp(depth, sUnderWaterDepthMax, 0.0f, 0.3f, 0.1f, 1.0f, Z2Calc::CURVE_POSITIVE), 0);
} else if (field_0x84.getDest() != 1.0f) {
field_0x84.fadeIn(30);
}
@@ -1566,9 +1579,7 @@ void Z2SeqMgr::processBgmFramework() {
if (link_y > -1500.0f) {
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_NEGATIVE);
- field_0x84.move(volume, 0);
+ field_0x84.move(Z2Calc::getParamByExp(link_y, -1500.0f, -13000.0f, 0.3f, 0.3f, 1.0f, Z2Calc::CURVE_NEGATIVE), 0);
} else {
field_0x84.forceIn();
}
@@ -1576,9 +1587,7 @@ void Z2SeqMgr::processBgmFramework() {
if (link_y > -4500.0f) {
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_NEGATIVE);
- field_0x84.move(volume, 0);
+ field_0x84.move(Z2Calc::getParamByExp(link_y, -3000.0f, -45000.0f, 0.3f, 0.0f, 1.0f, Z2Calc::CURVE_NEGATIVE), 0);
} else {
field_0x84.forceIn();
}
@@ -1586,9 +1595,7 @@ void Z2SeqMgr::processBgmFramework() {
if (link_y > 900.0f) {
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_NEGATIVE);
- field_0x84.move(volume, 0);
+ field_0x84.move(Z2Calc::getParamByExp(link_y, 900.0f, -1500.0f, 0.3f, 0.0f, 0.3f, Z2Calc::CURVE_NEGATIVE), 0);
} else {
field_0x84.move(0.3f, 0);
}
@@ -1624,7 +1631,11 @@ void Z2SeqMgr::processBgmFramework() {
field_0xa4.calc();
f32 base_vol = mAllBgmMaster.get() * mBgmPause.get() * mFanfareMute.get() * mWindStone.get() * mTwilightGateVol;
-
+#if DEBUG
+ if (field_0x04_debug) {
+ base_vol *= field_0x00_debug;
+ }
+#endif
if (mMainBgmHandle) {
f32 volume = 1.0f;
if (getMainBgmID() != Z2BGM_GAME_OVER) {
@@ -1634,13 +1645,11 @@ void Z2SeqMgr::processBgmFramework() {
}
if (mSubBgmHandle) {
- f32 volume = base_vol * mSubBgmMaster.get() * mStreamBgmMaster.get();
- mSubBgmHandle->getAuxiliary().moveVolume(volume, 0);
+ mSubBgmHandle->getAuxiliary().moveVolume(base_vol * mSubBgmMaster.get() * mStreamBgmMaster.get(), 0);
}
if (mStreamBgmHandle) {
- f32 volume = base_vol * mMainBgmMaster.get() * mSceneBgm.get();
- mStreamBgmHandle->getAuxiliary().moveVolume(volume, 0);
+ mStreamBgmHandle->getAuxiliary().moveVolume(base_vol * mMainBgmMaster.get() * mSceneBgm.get(), 0);
}
setWindStoneVol(1.0f, 30);
@@ -1663,13 +1672,20 @@ bool Z2SeqMgr::checkBgmIDPlaying(u32 bgmID) {
}
f32 Z2SeqMgr::getChildTrackVolume(JAISoundHandle* handle, int trackId) {
+ JUT_ASSERT(2030, handle);
f32 volume = 0.0f;
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.params_.mVolume;
+ if (seq != NULL) {
+ JASTrack* track = seq->getChildTrack(trackId);
+ if (!track) {
+ int r24 = trackId;
+ } else {
+ JAISoundChild* child = seq->getChild(trackId);
+ if (child != NULL) {
+ volume = child->mMove.params_.mVolume;
+ f32 f30 = volume;
+ }
}
}
}
@@ -1677,18 +1693,31 @@ f32 Z2SeqMgr::getChildTrackVolume(JAISoundHandle* handle, int trackId) {
return volume;
}
+static void dummy3() {
+ OS_REPORT("[Z2SeqMgr::getChildTrackVolume]シーケンスがないですよ。\n");
+ OS_REPORT("[Z2SeqMgr::getChildTrackVolume]子トラック%dがオープンしてませんよ\n");
+ OS_REPORT("[Z2SeqMgr::getChildTrackVolume]子トラック%dのボリューム%.2f\n");
+ OS_REPORT("[Z2SeqMgr::setChildTrackVolume]シーケンスがないですよ。\n");
+ OS_REPORT("[Z2SeqMgr::setChildTrackVolume]子トラック%dがオープンしてませんよ\n");
+ OS_REPORT("[Z2SeqMgr::setChildTrackVolume]子トラック%dのボリューム%.2f → %.2f カウント %d\n");
+}
+
void Z2SeqMgr::setChildTrackVolume(JAISoundHandle* handle, int trackId, f32 volume,
u32 moveTime, f32 pan, f32 dolby) {
+ int r24;
+ JUT_ASSERT(2064, handle);
if (!*handle) {
return;
}
- JAISeq* seq = (*handle)->asSeq();
+ JAISeq* seq = handle->getSound()->asSeq();
if (seq == NULL) {
return;
}
- if (seq->getChildTrack(trackId) == NULL) {
+ JASTrack* track = seq->getChildTrack(trackId);
+ if (track == NULL) {
+ r24 = trackId;
return;
}
@@ -1704,6 +1733,7 @@ void Z2SeqMgr::setChildTrackVolume(JAISoundHandle* handle, int trackId, f32 volu
}
child->mMove.moveVolume(volume, moveTime);
+ u32 r23 = moveTime;
if (pan != -1.0f) {
child->mMove.movePan(pan, moveTime);
}
@@ -1771,17 +1801,20 @@ void Z2SeqMgr::setBattleDistState(u8 state) {
mBattleSeqCount = 0;
if (getSubBgmID() == Z2BGM_BATTLE_TWILIGHT || getSubBgmID() == Z2BGM_BATTLE_NORMAL)
{
- mSubBgmHandle->getFader().fadeIn(10);
+ JAISoundFader* fader = mSubBgmHandle->getFader();
+ fader->fadeIn(10);
mMainBgmMaster.fadeOut(10);
}
}
+#if !DEBUG
if ((Z2GetSoundObjMgr()->isTwilightBattle() && getSubBgmID() == Z2BGM_BATTLE_NORMAL) ||
(!Z2GetSoundObjMgr()->isTwilightBattle() && getSubBgmID() == Z2BGM_BATTLE_TWILIGHT))
{
mSubBgmHandle->stop(30);
mSubBgmHandle->releaseHandle();
}
+#endif
if (Z2GetSoundObjMgr()->isTwilightBattle() || getSubBgmID() == Z2BGM_BATTLE_TWILIGHT) {
switch (state) {
@@ -1835,41 +1868,52 @@ void Z2SeqMgr::setBattleDistState(u8 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);
- setChildTrackVolume(&mSubBgmHandle, data_8045086C, 1.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mSubBgmHandle, 2, 1.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mSubBgmHandle, 3, 1.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mSubBgmHandle, 12, 1.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mSubBgmHandle, 14, 1.0f, 0, -1.0f, -1.0f);
- }
+ if (mFlags.mBattleBgmOff) {
+ return;
+ }
+ if (!Z2GetSceneMgr()->isSceneExist()) {
+ return;
+ }
+ if (mBattleSeqState == state) {
+ return;
+ }
- if (mBattleSeqCount != 0) {
- mBattleSeqCount = 0;
- mSubBgmHandle->getFader().fadeIn(10);
- mMainBgmMaster.fadeOut(10);
- }
- break;
- case 3:
- mMainBgmMaster.forceOut();
- mSubBgmMaster.forceIn();
+ if (state == 0) {
+ stopBattleBgm(Z2Param::BGM_CROSS_FADEOUT_TIME, Z2Param::BGM_CROSS_FADEIN_TIME);
+ return;
+ }
+ 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);
+ setChildTrackVolume(&mSubBgmHandle, data_8045086C, 1.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mSubBgmHandle, 2, 1.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mSubBgmHandle, 3, 1.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mSubBgmHandle, 12, 1.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mSubBgmHandle, 14, 1.0f, 0, -1.0f, -1.0f);
+ }
- if (mBattleSeqState == 1) {
- Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, 3, -1);
- } else if (mBattleSeqState == 2) {
- Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, 2, -1);
- }
- break;
+ if (mBattleSeqCount != 0) {
+ mBattleSeqCount = 0;
+ JAISoundFader* fader = mSubBgmHandle->getFader();
+ fader->fadeIn(10);
+ mMainBgmMaster.fadeOut(10);
}
+ break;
+ case 3:
+ mMainBgmMaster.forceOut();
+ mSubBgmMaster.forceIn();
- mBattleSeqState = state;
+ if (mBattleSeqState == 1) {
+ Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, 3, -1);
+ } else if (mBattleSeqState == 2) {
+ Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, 2, -1);
+ }
+ break;
}
+
+ mBattleSeqState = state;
}
}
@@ -1930,102 +1974,114 @@ void Z2SeqMgr::battleBgmFramework() {
}
void Z2SeqMgr::startBattleBgm(bool isFadeIn) {
- if (!mFlags.mBattleBgmOff && Z2GetSceneMgr()->isSceneExist()
- && mBattleSeqState == 0 && (mFlags.mBattleDistIgnore || mBattleDistState <= 1))
- {
- JAISoundID bgm_id = Z2BGM_BATTLE_NORMAL;
- if (Z2GetSceneMgr()->isInDarkness() || Z2GetSoundObjMgr()->isTwilightBattle()) {
- bgm_id = Z2BGM_BATTLE_TWILIGHT;
- }
+ if (mFlags.mBattleBgmOff) {
+ return;
+ }
+ if (!Z2GetSceneMgr()->isSceneExist()) {
+ return;
+ }
+ if (mBattleSeqState) {
+ return;
+ }
+ if (!mFlags.mBattleDistIgnore && mBattleDistState > 1) {
+ return;
+ }
- u32 subBgmID = getSubBgmID();
- if (subBgmID != bgm_id) {
- mBattleSeqState = 1;
- if (Z2GetSoundMgr()->startSound(bgm_id, &mSubBgmHandle, NULL)) {
- Z2GetSoundObjMgr()->setBattleInit();
- mSubBgmStatus = 0xff;
+ JAISoundID bgm_id = Z2BGM_BATTLE_NORMAL;
+ if (Z2GetSceneMgr()->isInDarkness() || Z2GetSoundObjMgr()->isTwilightBattle()) {
+ bgm_id = Z2BGM_BATTLE_TWILIGHT;
+ }
- s16 ivar2 = Z2GetLink()->getMoveSpeed() - 23;
- if (ivar2 < 0) {
- ivar2 = 0;
- }
+ u32 subBgmID = getSubBgmID();
+ s16 ivar2;
+ u8 fadeinTime, fadeoutTime;
+ if (subBgmID != bgm_id) {
+ mBattleSeqState = 1;
+ if (Z2GetSoundMgr()->startSound(bgm_id, &mSubBgmHandle, NULL)) {
+ Z2GetSoundObjMgr()->setBattleInit();
+ mSubBgmStatus = 0xff;
- if (ivar2 > Z2Param::BGM_CROSS_FADEIN_TIME) {
- ivar2 = Z2Param::BGM_CROSS_FADEIN_TIME;
- }
+ ivar2 = Z2GetLink()->getMoveSpeed() - 23;
+ if (ivar2 < 0) {
+ ivar2 = 0;
+ }
- u8 fadeinTime, fadeoutTime;
- switch (bgm_id) {
- case Z2BGM_BATTLE_NORMAL:
- 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);
- setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, 0, -1.0f, -1.0f);
- setChildTrackVolume(&mSubBgmHandle, 14, 0.0f, 0, -1.0f, -1.0f);
- }
- if (mBattleDistState != 0) {
- setChildTrackVolume(&mSubBgmHandle, data_8045086C, 0.0f, 0, -1.0f, -1.0f);
- }
- break;
- case Z2BGM_BATTLE_TWILIGHT:
- changeSubBgmStatus(Z2GetSoundObjMgr()->isTwilightBattle());
- fadeinTime = 25 - ivar2 / 4;
- fadeoutTime = 25 - ivar2 / 4;
- break;
- }
+ if (ivar2 > Z2Param::BGM_CROSS_FADEIN_TIME) {
+ ivar2 = Z2Param::BGM_CROSS_FADEIN_TIME;
+ }
- if (isFadeIn) {
- mSubBgmMaster.fadeInFromOut(fadeinTime);
- } else {
- mSubBgmMaster.forceIn();
+ switch (bgm_id) {
+ case Z2BGM_BATTLE_NORMAL:
+ 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);
+ setChildTrackVolume(&mSubBgmHandle, 12, 0.0f, 0, -1.0f, -1.0f);
+ setChildTrackVolume(&mSubBgmHandle, 14, 0.0f, 0, -1.0f, -1.0f);
+ }
+ if (mBattleDistState != 0) {
+ setChildTrackVolume(&mSubBgmHandle, data_8045086C, 0.0f, 0, -1.0f, -1.0f);
}
+ break;
+ case Z2BGM_BATTLE_TWILIGHT:
+ changeSubBgmStatus(Z2GetSoundObjMgr()->isTwilightBattle());
+ fadeinTime = 25 - ivar2 / 4;
+ fadeoutTime = 25 - ivar2 / 4;
+ break;
+ }
- mMainBgmMaster.fadeOut(fadeoutTime);
+ if (isFadeIn) {
+ mSubBgmMaster.fadeInFromOut(fadeinTime);
+ } else {
+ mSubBgmMaster.forceIn();
}
+
+ mMainBgmMaster.fadeOut(fadeoutTime);
}
}
}
void Z2SeqMgr::stopBattleBgm(u8 subFadeoutTime, u8 mainFadeinTime) {
- if (mBattleSeqCount == 0) {
- s16 ivar6 = 0;
- if (Z2GetLink() != NULL) {
- ivar6 = Z2GetLink()->getMoveSpeed() - 23;
- }
+ if (mBattleSeqCount) {
+ return;
+ }
- if (ivar6 < 0) {
- ivar6 = 0;
- }
+ s16 ivar6 = 0;
+ if (Z2GetLink() != NULL) {
+ ivar6 = Z2GetLink()->getMoveSpeed() - 23;
+ }
- if (ivar6 > Z2Param::BGM_CROSS_FADEIN_TIME) {
- ivar6 = Z2Param::BGM_CROSS_FADEIN_TIME;
- }
+ if (ivar6 < 0) {
+ ivar6 = 0;
+ }
- if (getSubBgmID() == Z2BGM_BATTLE_NORMAL) {
- 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) {
- subFadeoutTime = Z2Param::BGM_CROSS_FADEIN_TIME + ivar6 / 4;
- mainFadeinTime = Z2Param::BGM_CROSS_FADEIN_TIME + ivar6 / 4;
- } else {
- subFadeoutTime = 25 + ivar6 / 4;
- mainFadeinTime = 25 + ivar6 / 4;
- }
+ if (ivar6 > Z2Param::BGM_CROSS_FADEIN_TIME) {
+ ivar6 = Z2Param::BGM_CROSS_FADEIN_TIME;
+ }
- mSubBgmHandle->fadeOut(subFadeoutTime);
- mBattleSeqCount = subFadeoutTime;
+ if (getSubBgmID() == Z2BGM_BATTLE_NORMAL) {
+ 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) {
+ subFadeoutTime = Z2Param::BGM_CROSS_FADEIN_TIME + ivar6 / 4;
+ mainFadeinTime = Z2Param::BGM_CROSS_FADEIN_TIME + ivar6 / 4;
+ } else {
+ subFadeoutTime = 25 + ivar6 / 4;
+ mainFadeinTime = 25 + ivar6 / 4;
}
- mMainBgmMaster.fadeIn(mainFadeinTime);
- mBattleDistState = 3;
- setBattleDistIgnore(false);
- mFlags.mBattleSearched = false;
+ mSubBgmHandle->fadeOut(subFadeoutTime);
+ mBattleSeqCount = subFadeoutTime;
}
+
+ mMainBgmMaster.fadeIn(mainFadeinTime);
+ mBattleDistState = 3;
+ setBattleDistIgnore(false);
+ mFlags.mBattleSearched = false;
}
void Z2SeqMgr::fieldBgmStart() {
@@ -2052,8 +2108,8 @@ void Z2SeqMgr::fieldBgmStart() {
}
void Z2SeqMgr::fieldRidingMute() {
+ f32 volume1, volume2;
if (Z2GetSceneMgr()->isSceneExist() && mMainBgmHandle) {
- f32 volume1, volume2;
if (mFlags.mRiding) {
volume1 = 1.0f;
volume2 = 0.0f;