// // Generated By: dol2asm // Translation Unit: Z2SeqMgr // #include "Z2AudioLib/Z2SeqMgr.h" #include "Z2AudioLib/Z2Creature.h" #include "Z2AudioLib/Z2Param.h" #include "Z2AudioLib/Z2SceneMgr.h" #include "Z2AudioLib/Z2SoundMgr.h" #include "Z2AudioLib/Z2SoundObjMgr.h" #include "Z2AudioLib/Z2StatusMgr.h" #include "JSystem/JAudio2/JAISoundChild.h" #include "dol2asm.h" // // Forward References: // extern "C" void __ct__8Z2SeqMgrFv(); extern "C" void bgmStart__8Z2SeqMgrFUlUll(); extern "C" void bgmStop__8Z2SeqMgrFUll(); extern "C" void subBgmStart__8Z2SeqMgrFUl(); extern "C" void subBgmStop__8Z2SeqMgrFv(); extern "C" void subBgmStopInner__8Z2SeqMgrFv(); extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl(); extern "C" void bgmStreamCheckReady__8Z2SeqMgrFv(); extern "C" void bgmStreamPlay__8Z2SeqMgrFv(); extern "C" void bgmStreamStop__8Z2SeqMgrFUl(); extern "C" void changeBgmStatus__8Z2SeqMgrFl(); extern "C" void changeSubBgmStatus__8Z2SeqMgrFl(); extern "C" void onVariantBgmJumpEnd__8Z2SeqMgrFb(); extern "C" void changeFishingBgm__8Z2SeqMgrFl(); extern "C" void talkInBgm__8Z2SeqMgrFv(); extern "C" void talkOutBgm__8Z2SeqMgrFv(); extern "C" void menuInBgm__8Z2SeqMgrFv(); extern "C" void menuOutBgm__8Z2SeqMgrFv(); extern "C" void fanfareFramework__8Z2SeqMgrFv(); extern "C" void stopWolfHowlSong__8Z2SeqMgrFv(); extern "C" void setHeightVolMod__8Z2SeqMgrFbUl(); extern "C" void setTimeProcVolMod__8Z2SeqMgrFbUl(); extern "C" void processBgmFramework__8Z2SeqMgrFv(); extern "C" void checkBgmIDPlaying__8Z2SeqMgrFUl(); extern "C" void getChildTrackVolume__8Z2SeqMgrFP14JAISoundHandlei(); extern "C" void setChildTrackVolume__8Z2SeqMgrFP14JAISoundHandleifUlff(); extern "C" void resetBattleBgmParams__8Z2SeqMgrFv(); extern "C" void setBattleBgmOff__8Z2SeqMgrFb(); extern "C" void setBattleSearched__8Z2SeqMgrFb(); extern "C" void setBattleDistIgnore__8Z2SeqMgrFb(); extern "C" void setBattleGhostMute__8Z2SeqMgrFb(); extern "C" void setBattleDistState__8Z2SeqMgrFUc(); extern "C" void setBattleSeqState__8Z2SeqMgrFUc(); extern "C" void setBattleLastHit__8Z2SeqMgrFUc(); extern "C" void battleBgmFramework__8Z2SeqMgrFv(); extern "C" void startBattleBgm__8Z2SeqMgrFb(); extern "C" void stopBattleBgm__8Z2SeqMgrFUcUc(); extern "C" void fieldBgmStart__8Z2SeqMgrFv(); extern "C" void fieldRidingMute__8Z2SeqMgrFv(); extern "C" void onFieldBgmJumpStart__8Z2SeqMgrFv(); extern "C" void onFieldBgmJumpEnd__8Z2SeqMgrFv(); extern "C" void fieldBgmFramework__8Z2SeqMgrFv(); extern "C" void mbossBgmMuteProcess__8Z2SeqMgrFv(); extern "C" void bgmSetSwordUsing__8Z2SeqMgrFl(); extern "C" void bgmNowBattle__8Z2SeqMgrFf(); extern "C" void taktModeMute__8Z2SeqMgrFv(); extern "C" void taktModeMuteOff__8Z2SeqMgrFv(); extern "C" extern char const* const Z2SeqMgr__stringBase0; // // External References: // extern "C" void calc__9JAISeqMgrFv(); extern "C" void stop__9JAISeqMgrFUl(); extern "C" void mixOut__9JAISeqMgrFv(); extern "C" void releaseSound__14JAISoundHandleFv(); extern "C" void releaseHandle__8JAISoundFv(); extern "C" void lockWhenPrepared__15JAISoundStatus_Fv(); extern "C" void unlockIfLocked__15JAISoundStatus_Fv(); extern "C" void stop__8JAISoundFUl(); extern "C" void stop__8JAISoundFv(); extern "C" void moveVolume__18JAISoundParamsMoveFfUl(); extern "C" void movePan__18JAISoundParamsMoveFfUl(); extern "C" void moveDolby__18JAISoundParamsMoveFfUl(); extern "C" void stop__12JAIStreamMgrFUl(); extern "C" void linearTransform__6Z2CalcFfffffb(); extern "C" void getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign(); extern "C" void setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc(); extern "C" void getPortData__14Z2SoundStarterFP14JAISoundHandleUlSc(); extern "C" void setDemoName__11Z2StatusMgrFPc(); extern "C" void checkDayTime__11Z2StatusMgrFv(); extern "C" void setSceneExist__10Z2SceneMgrFb(); extern "C" void setForceBattleArea__13Z2SoundObjMgrFbUsUsUs(); extern "C" void searchEnemy__13Z2SoundObjMgrFv(); extern "C" void setBattleInit__13Z2SoundObjMgrFv(); extern "C" void checkBattleFinish__13Z2SoundObjMgrFv(); extern "C" void isTwilightBattle__13Z2SoundObjMgrFv(); extern "C" void _savegpr_26(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_26(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" f32 VOL_BGM_DEFAULT__7Z2Param; extern "C" f32 VOL_BGM_TALKING__7Z2Param; extern "C" f32 VOL_BGM_PAUSING__7Z2Param; extern "C" extern u8 data_80450B48[4]; extern "C" extern u8 data_80450B60[4]; extern "C" extern u8 data_80450B74[4]; extern "C" extern u8 data_80450B7C[4]; extern "C" extern u8 data_80450B80[4]; extern "C" f32 ENEMY_LASTHIT_MUTE_VOLUME__7Z2Param; extern "C" u8 mLinkPtr__14Z2CreatureLink[4 + 4 /* padding */]; extern "C" extern u8 __OSReport_disable; // // Declarations: // /* ############################################################################################## */ /* 80455998-8045599C 003F98 0004+00 23/23 0/0 0/0 .sdata2 @3372 */ SECTION_SDATA2 static f32 lit_3372 = 1.0f; /* 8045599C-804559A0 003F9C 0004+00 23/23 0/0 0/0 .sdata2 @3373 */ SECTION_SDATA2 static u8 lit_3373[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 802AEEA0-802AF010 2A97E0 0170+00 0/0 1/1 0/0 .text __ct__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals Z2SeqMgr::Z2SeqMgr() : JASGlobalInstance(this) { mMainBgmMaster.forceIn(); mSubBgmMaster.forceIn(); mBgmPause.forceIn(); mSceneBgm.forceIn(); mFanfareMute.forceIn(); mStreamBgmMaster.forceIn(); field_0x84.forceIn(); mWindStone.forceIn(); mTwilightGateVol = 1.0f; mAllBgmMaster.forceIn(); field_0xa4.forceIn(); field_0xb8 = -1; resetBattleBgmParams(); mBgmStatus = 0xff; mSubBgmStatus = 0xff; mFanfareCount = 0; mDekuToadCount = 0; mFanfareID.setAnonymous(); field_0xc4 = 0; mFlags.mRiding = false; field_0xc8 = 1.0f; field_0xcc = 1.0f; mRideCount = 0; mFlags.flag5 = false; mFlags.mBattleBgmOff = true; mFlags.flag6 = false; mFlags.flag7 = false; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm Z2SeqMgr::Z2SeqMgr() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/__ct__8Z2SeqMgrFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 804559A0-804559A8 003FA0 0004+04 1/1 0/0 0/0 .sdata2 @3559 */ SECTION_SDATA2 static f32 lit_3559[1 + 1 /* padding */] = { -10000.0f, /* padding */ 0.0f, }; /* 804559A8-804559B0 003FA8 0008+00 22/22 0/0 0/0 .sdata2 @3561 */ SECTION_SDATA2 static f64 lit_3561 = 4503599627370496.0 /* cast u32 to float */; /* 802AF010-802AF408 2A9950 03F8+00 3/3 5/5 38/38 .text bgmStart__8Z2SeqMgrFUlUll */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::bgmStart(u32 i_bgmID, u32 i_count, s32 param_2) { switch (i_bgmID) { case -1: return; case 0x200005D: bgmAllUnMute(0x21); bgmStreamPrepare(0x200005d); bgmStreamPlay(); return; case Z2BGM_BOSSBABA_1: param_2 = 1; mMainBgmMaster.forceIn(); break; case Z2BGM_GAME_OVER: if (getMainBgmID() != i_bgmID) { Z2GetSceneMgr()->setInGame(false); Z2GetSceneMgr()->setSceneExist(false); setBattleBgmOff(true); Z2GetSoundMgr()->getSeqMgr()->stop(0); Z2GetSoundMgr()->getStreamMgr()->stop(0); Z2GetSoundMgr()->startSound(i_bgmID, &mMainBgmHandle, NULL); mBgmStatus = 0xff; } return; case Z2BGM_LAKE: if (Z2GetLink() != NULL && Z2GetLink()->getCurrentPos() != NULL && Z2GetLink()->getCurrentPos()->y > -10000.0f) { i_bgmID = Z2BGM_RAKKA_HOUSE; } break; case Z2BGM_VS_GANON_01: bgmAllUnMute(0); // no break case Z2BGM_VS_GANON_02: case Z2BGM_VS_GANON_04: case Z2BGM_GOMA_BTL02: if (mStreamBgmHandle) { mStreamBgmHandle->stop(0); } mStreamBgmMaster.forceIn(); } if (Z2GetStatusMgr()->getDemoStatus() == 9) { if (mMainBgmHandle) { mMainBgmHandle->stop(0); } if (param_2 == 0) { if (mSubBgmHandle) { mSubBgmHandle->stop(0); } mMainBgmMaster.forceIn(); } } else { bgmStop(0, param_2); } if (i_bgmID == Z2BGM_FIELD_LINK_DAY || i_bgmID == Z2BGM_FIELD_LINK_NIGHT) { fieldBgmStart(); } else { Z2GetSoundMgr()->startSound(i_bgmID, &mMainBgmHandle, NULL); mBgmStatus = 0xff; } if (param_2 == 0 && i_count != 0) { mMainBgmMaster.fadeInFromOut(i_count); } if (i_bgmID == Z2BGM_BOSS_SNOWWOMAN_1 || i_bgmID == Z2BGM_HORSE_BATTLE || i_bgmID == Z2BGM_VS_GANON_02 || i_bgmID == Z2BGM_TOAL_VILLEGE) { changeBgmStatus(0); } if (mFlags.flag7 && !Z2GetStatusMgr()->checkDayTime()) { field_0xa4.forceOut(); } else { field_0xa4.forceIn(); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::bgmStart(u32 param_0, u32 param_1, s32 param_2) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/bgmStart__8Z2SeqMgrFUlUll.s" } #pragma pop #endif /* 802AF408-802AF49C 2A9D48 0094+00 3/3 5/5 30/30 .text bgmStop__8Z2SeqMgrFUll */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::bgmStop(u32 i_count, s32 param_1) { if (mMainBgmHandle) { mMainBgmHandle->stop(i_count); } if (mStreamBgmHandle) { mStreamBgmHandle->stop(i_count); } if (param_1 == 0) { if (mSubBgmHandle) { mSubBgmHandle->stop(i_count); } mMainBgmMaster.forceIn(); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::bgmStop(u32 param_0, s32 param_1) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/bgmStop__8Z2SeqMgrFUll.s" } #pragma pop #endif /* ############################################################################################## */ /* 8039BA08-8039BA08 028068 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039BA08 = "F_SP00"; SECTION_DEAD static char const* const stringBase_8039BA0F = "F_SP103"; SECTION_DEAD static char const* const stringBase_8039BA17 = "R_SP01"; SECTION_DEAD static char const* const stringBase_8039BA1E = "F_SP104"; SECTION_DEAD static char const* const stringBase_8039BA26 = "R_SP107"; SECTION_DEAD static char const* const stringBase_8039BA2E = "F_SP108"; SECTION_DEAD static char const* const stringBase_8039BA36 = "R_SP108"; SECTION_DEAD static char const* const stringBase_8039BA3E = "F_SP117"; SECTION_DEAD static char const* const stringBase_8039BA46 = "F_SP109"; SECTION_DEAD static char const* const stringBase_8039BA4E = "R_SP109"; SECTION_DEAD static char const* const stringBase_8039BA56 = "R_SP209"; SECTION_DEAD static char const* const stringBase_8039BA5E = "F_SP110"; SECTION_DEAD static char const* const stringBase_8039BA66 = "R_SP110"; SECTION_DEAD static char const* const stringBase_8039BA6E = "F_SP111"; SECTION_DEAD static char const* const stringBase_8039BA76 = "F_SP128"; SECTION_DEAD static char const* const stringBase_8039BA7E = "R_SP128"; SECTION_DEAD static char const* const stringBase_8039BA86 = "F_SP115"; SECTION_DEAD static char const* const stringBase_8039BA8E = "F_SP112"; SECTION_DEAD static char const* const stringBase_8039BA96 = "F_SP126"; SECTION_DEAD static char const* const stringBase_8039BA9E = "F_SP127"; SECTION_DEAD static char const* const stringBase_8039BAA6 = "R_SP127"; SECTION_DEAD static char const* const stringBase_8039BAAE = "F_SP113"; SECTION_DEAD static char const* const stringBase_8039BAB6 = "F_SP116"; SECTION_DEAD static char const* const stringBase_8039BABE = "R_SP116"; SECTION_DEAD static char const* const stringBase_8039BAC6 = "R_SP160"; SECTION_DEAD static char const* const stringBase_8039BACE = "R_SP161"; SECTION_DEAD static char const* const stringBase_8039BAD6 = "F_SP114"; SECTION_DEAD static char const* const stringBase_8039BADE = "F_SP118"; SECTION_DEAD static char const* const stringBase_8039BAE6 = "F_SP124"; SECTION_DEAD static char const* const stringBase_8039BAEE = "F_SP125"; SECTION_DEAD static char const* const stringBase_8039BAF6 = "F_SP121"; SECTION_DEAD static char const* const stringBase_8039BAFE = "F_SP122"; SECTION_DEAD static char const* const stringBase_8039BB06 = "F_SP123"; SECTION_DEAD static char const* const stringBase_8039BB0E = "F_SP200"; SECTION_DEAD static char const* const stringBase_8039BB16 = "F_SP102"; SECTION_DEAD static char const* const stringBase_8039BB1E = ""; SECTION_DEAD static char const* const stringBase_8039BB1F = "R_SP300"; SECTION_DEAD static char const* const stringBase_8039BB27 = "R_SP301"; SECTION_DEAD static char const* const stringBase_8039BB2F = "T_ENEMY"; SECTION_DEAD static char const* const stringBase_8039BB37 = "D_MN54"; SECTION_DEAD static char const* const stringBase_8039BB3E = "D_MN05"; SECTION_DEAD static char const* const stringBase_8039BB45 = "D_MN05B"; SECTION_DEAD static char const* const stringBase_8039BB4D = "D_MN05A"; SECTION_DEAD static char const* const stringBase_8039BB55 = "D_MN04"; SECTION_DEAD static char const* const stringBase_8039BB5C = "D_MN04B"; SECTION_DEAD static char const* const stringBase_8039BB64 = "D_MN04A"; SECTION_DEAD static char const* const stringBase_8039BB6C = "D_MN01"; SECTION_DEAD static char const* const stringBase_8039BB73 = "D_MN01B"; SECTION_DEAD static char const* const stringBase_8039BB7B = "D_MN01A"; SECTION_DEAD static char const* const stringBase_8039BB83 = "D_MN10"; SECTION_DEAD static char const* const stringBase_8039BB8A = "D_MN10B"; SECTION_DEAD static char const* const stringBase_8039BB92 = "D_MN10A"; SECTION_DEAD static char const* const stringBase_8039BB9A = "D_MN11"; SECTION_DEAD static char const* const stringBase_8039BBA1 = "D_MN11B"; SECTION_DEAD static char const* const stringBase_8039BBA9 = "D_MN11A"; SECTION_DEAD static char const* const stringBase_8039BBB1 = "D_MN06"; SECTION_DEAD static char const* const stringBase_8039BBB8 = "D_MN06B"; SECTION_DEAD static char const* const stringBase_8039BBC0 = "D_MN06A"; SECTION_DEAD static char const* const stringBase_8039BBC8 = "D_MN07"; SECTION_DEAD static char const* const stringBase_8039BBCF = "D_MN07B"; SECTION_DEAD static char const* const stringBase_8039BBD7 = "D_MN07A"; SECTION_DEAD static char const* const stringBase_8039BBDF = "D_MN08"; SECTION_DEAD static char const* const stringBase_8039BBE6 = "D_MN08B"; SECTION_DEAD static char const* const stringBase_8039BBEE = "D_MN08C"; SECTION_DEAD static char const* const stringBase_8039BBF6 = "D_MN08A"; SECTION_DEAD static char const* const stringBase_8039BBFE = "D_MN08D"; SECTION_DEAD static char const* const stringBase_8039BC06 = "D_MN09"; SECTION_DEAD static char const* const stringBase_8039BC0D = "D_MN09A"; SECTION_DEAD static char const* const stringBase_8039BC15 = "D_MN09B"; SECTION_DEAD static char const* const stringBase_8039BC1D = "D_MN09C"; SECTION_DEAD static char const* const stringBase_8039BC25 = "D_SB00"; SECTION_DEAD static char const* const stringBase_8039BC2C = "D_SB01"; SECTION_DEAD static char const* const stringBase_8039BC33 = "D_SB02"; SECTION_DEAD static char const* const stringBase_8039BC3A = "D_SB03"; SECTION_DEAD static char const* const stringBase_8039BC41 = "D_SB04"; SECTION_DEAD static char const* const stringBase_8039BC48 = "D_SB05"; SECTION_DEAD static char const* const stringBase_8039BC4F = "D_SB06"; SECTION_DEAD static char const* const stringBase_8039BC56 = "D_SB07"; SECTION_DEAD static char const* const stringBase_8039BC5D = "D_SB08"; SECTION_DEAD static char const* const stringBase_8039BC64 = "D_SB09"; SECTION_DEAD static char const* const stringBase_8039BC6B = "D_SB10"; SECTION_DEAD static char const* const stringBase_8039BC72 = "force_start"; #pragma pop /* 803C9DF8-803CA08C -00001 0294+00 1/1 0/0 0/0 .data @3900 */ SECTION_DATA static void* lit_3900[165] = { (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x14C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xFC), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x8C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x138), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x174), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x174), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x8C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x138), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x98), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xE4), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xE4), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x98), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x180), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x138), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xD0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xE4), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x180), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x138), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x8C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x8C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x8C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x124), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x124), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xF0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xD0), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xB8), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x50), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0xE4), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x18C), (void*)(((char*)subBgmStart__8Z2SeqMgrFUl) + 0x14C), }; /* 802AF49C-802AF884 2A9DDC 03E8+00 3/2 6/6 65/65 .text subBgmStart__8Z2SeqMgrFUl */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::subBgmStart(u32 i_bgmID) { if (i_bgmID == -1) { return; } int count_in, count_out; switch (i_bgmID) { 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_HOWL_TOBIKUSA: case Z2BGM_HOWL_UMAKUSA: case Z2BGM_HOWL_ZELDASONG: case Z2BGM_HOWL_LIGHT_PRLD: case Z2BGM_LIGHT_PRLD_DUO: case Z2BGM_SOUL_REQ_HOWL: case Z2BGM_SOUL_REQ_DUO: case Z2BGM_HEALING_HOWL: case Z2BGM_HEALING_DUO: case Z2BGM_NEW_01_HOWL: case Z2BGM_NEW_01_DUO: case Z2BGM_NEW_02_HOWL: case Z2BGM_NEW_02_DUO: case Z2BGM_NEW_03_HOWL: case Z2BGM_NEW_03_DUO: case Z2BGM_ITEM_GET_INSECT: case Z2BGM_ITEM_GET_SMELL: case Z2BGM_ITEM_GET_POU: case Z2BGM_ITEM_GET_ME_S: case Z2BGM_KOMONJO_GET_INTRO: if (getSubBgmID() == Z2BGM_OBACHAN) { subBgmStop(); } mFanfareID = i_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; break; case Z2BGM_LUTERA1: case Z2BGM_BOSS_SNOWWOMAN_D1: Z2GetStatusMgr()->setDemoName("force_start"); count_in = 0; count_out = struct_80450862; break; case Z2BGM_TARO_RESCUE: count_in = 0; count_out = 120; bgmStop(0, 0); break; case Z2BGM_OBACHAN: case Z2BGM_POSTMAN: if (mSubBgmHandle) { mSubBgmHandle->stop(0); } // no break case Z2BGM_FISHING_HIT: case Z2BGM_SNOW_BOARD: case Z2BGM_RIVER_GAME: case Z2BGM_RIVER_GAME_00: setBattleBgmOff(true); // no break case Z2BGM_BOSSBABA_0: case Z2BGM_WILD_GOAT: case Z2BGM_EVENT01: case Z2BGM_MAGNE_GORON: case Z2BGM_MAGNE_GORON_D02: case Z2BGM_SUMO: case Z2BGM_DEKUTOAD: case Z2BGM_RODEO: case Z2BGM_BOSSFIREMAN_1: case Z2BGM_SUMO_D1: case Z2BGM_STATUE_GAME: case Z2BGM_BOSS_OCTAEEL_D01: case Z2BGM_HIDDEN_VIL_D1: case Z2BGM_IB_MBOSS: case Z2BGM_GG_MBOSS: case Z2BGM_WCS_GAME: case Z2BGM_HARAGIGANT_D01: case Z2BGM_HARAGIGANT_D02: case Z2BGM_DRAGON_D01: case Z2BGM_KOROKORO_GAME: case Z2BGM_YAMIMUSHI_B_D01: case Z2BGM_GOMA_D01: case Z2BGM_MINIGAME_WIN01: case Z2BGM_MINIGAME_WIN02: count_in = 0; count_out = 1; break; case Z2BGM_COWBOY_GAME: mAllBgmMaster.forceIn(); count_in = 0; count_out = 1; break; case Z2BGM_SNOWBOARD_WIN: case Z2BGM_SNOWBOARD_LOSE: if (mSubBgmHandle) { mSubBgmHandle->stop(0); } // no break case Z2BGM_BOOMERAMG_MONKEY: case Z2BGM_VARIANT: case Z2BGM_TN_MBOSS: case Z2BGM_P_ZANT: if (mStreamBgmHandle) { mStreamBgmHandle->stop(0); } // no break case Z2BGM_HORSE_BATTLE: case Z2BGM_TN_MBOSS_LV9: mStreamBgmMaster.forceIn(); count_in = 0; count_out = 1; break; case Z2BGM_MAGNE_GORON_D01: case Z2BGM_DEKUTOAD_D01: count_in = 0; count_out = 20; break; case Z2BGM_IB_MBOSS_D01: case Z2BGM_GG_MBOSS_D01: count_in = 0; count_out = struct_80450862; break; default: count_in = struct_80450861; count_out = struct_80450862; break; } if (i_bgmID == getSubBgmID()) { if (i_bgmID == Z2BGM_SUMO || i_bgmID == Z2BGM_COWBOY_GAME) { mSubBgmHandle->stop(0); mSubBgmHandle.releaseSound(); } else { field_0xb8 = -1; return; } } else if (mSubBgmHandle) { subBgmStop(); subBgmStopInner(); } Z2GetSoundMgr()->startSound(i_bgmID, &mSubBgmHandle, NULL); mSubBgmStatus = 0xff; switch (i_bgmID) { case Z2BGM_HORSE_BATTLE: case Z2BGM_FACE_OFF_BATTLE2: changeSubBgmStatus(0); break; case Z2BGM_VARIANT: case Z2BGM_TN_MBOSS: bgmStreamStop(0); // no break case Z2BGM_TN_MBOSS_LV9: mStreamBgmMaster.forceIn(); // no break case Z2BGM_RODEO: changeSubBgmStatus(1); break; } if (count_in != 0) { mSubBgmMaster.fadeInFromOut(count_in); } else { mSubBgmMaster.forceIn(); } if (count_out >= 0) { mMainBgmMaster.fadeOut(count_out); } field_0xb8 = -1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::subBgmStart(u32 param_0) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/subBgmStart__8Z2SeqMgrFUl.s" } #pragma pop #endif /* ############################################################################################## */ /* 8039BA08-8039BA08 028068 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039BC7E = "force_end"; #pragma pop /* 803CA08C-803CA308 -00001 027C+00 1/1 0/0 0/0 .data @3988 */ SECTION_DATA static void* lit_3988[159] = { (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x5C), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0xA0), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x7C), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x5C), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0xC4), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0xDC), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x124), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x10C), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x10C), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x124), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x58), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x94), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0x130), (void*)(((char*)subBgmStop__8Z2SeqMgrFv) + 0xF4), }; /* 802AF884-802AF9D0 2AA1C4 014C+00 4/3 4/4 42/42 .text subBgmStop__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals 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); // no break 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); // no break default: field_0xb8 = 15; break; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::subBgmStop() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/subBgmStop__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802AF9D0-802AFB94 2AA310 01C4+00 2/2 0/0 0/0 .text subBgmStopInner__8Z2SeqMgrFv */ #ifdef NONMATCHING // regalloc void Z2SeqMgr::subBgmStopInner() { if (field_0xb8 == -1) { return; } if (!mSubBgmHandle) { return; } int count = struct_80450862; switch (getSubBgmID()) { case Z2BGM_MAGNE_GORON: case Z2BGM_MAGNE_GORON_D01: case Z2BGM_DEKUTOAD: case Z2BGM_DEKUTOAD_D01: case Z2BGM_SUMO_D1: case Z2BGM_VARIANT: case Z2BGM_IB_MBOSS_D01: count = 10; break; case Z2BGM_LUTERA1: count = 50; break; case Z2BGM_RIVER_GAME: case Z2BGM_RIVER_GAME_00: count = 33; setBattleBgmOff(false); break; case Z2BGM_SNOW_BOARD: count = 90; setBattleBgmOff(false); break; } mSubBgmHandle->stop(count); mSubBgmHandle.releaseSound(); mMainBgmMaster.fadeIn(struct_80450862); field_0xb8 = -1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::subBgmStopInner() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/subBgmStopInner__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802AFB94-802AFDEC 2AA4D4 0258+00 1/1 3/3 46/46 .text bgmStreamPrepare__8Z2SeqMgrFUl */ // Matches with literals #ifdef NONMATCHING void Z2SeqMgr::bgmStreamPrepare(u32 i_bgmID) { if (mStreamBgmHandle) { bgmStreamStop(0); } Z2GetSoundMgr()->startSound(i_bgmID, &mStreamBgmHandle, NULL); mStreamBgmHandle->lockWhenPrepared(); switch (i_bgmID) { case 0x2000010: mAllBgmMaster.forceIn(); // no break case 0x200000f: return; case 0x2000014: Z2GetSceneMgr()->setSceneExist(true); return; case 0x2000023: if (mMainBgmHandle) { mMainBgmHandle->stop(struct_80450862); } return; case 0x2000038: if (mMainBgmHandle) { mMainBgmHandle->stop(0); } // no break case 0x2000003: case 0x2000047: case 0x200005f: mStreamBgmMaster.forceOut(); return; case 0x200007c: mStreamBgmMaster.fadeOut(45); return; case 0x200003f: case 0x200005c: Z2GetStatusMgr()->setDemoName("force_start"); break; } mStreamBgmMaster.fadeOut(struct_80450862); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::bgmStreamPrepare(u32 param_0) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/bgmStreamPrepare__8Z2SeqMgrFUl.s" } #pragma pop #endif /* 802AFDEC-802AFE18 2AA72C 002C+00 0/0 1/1 0/0 .text bgmStreamCheckReady__8Z2SeqMgrFv */ bool Z2SeqMgr::bgmStreamCheckReady() { if (mStreamBgmHandle) { return mStreamBgmHandle->isPrepared(); } else { return false; } } /* 802AFE18-802AFEDC 2AA758 00C4+00 1/1 4/4 46/46 .text bgmStreamPlay__8Z2SeqMgrFv */ void Z2SeqMgr::bgmStreamPlay() { if (mStreamBgmHandle) { mStreamBgmHandle->unlockIfLocked(); } if (getStreamBgmID() == -1) { if (mMainBgmHandle) { mMainBgmHandle->stop(30); } } else if (getStreamBgmID() == 0x2000000) { if (mStreamBgmHandle) { mStreamBgmHandle->stop(); } bgmStart(Z2BGM_MENU_SELECT, 0, 0); } } /* 802AFEDC-802AFF8C 2AA81C 00B0+00 2/2 1/1 27/27 .text bgmStreamStop__8Z2SeqMgrFUl */ void Z2SeqMgr::bgmStreamStop(u32 i_count) { if (getStreamBgmID() == 0x200003f || getStreamBgmID() == 0x200005c) { Z2GetStatusMgr()->setDemoName("force_end"); } if (mStreamBgmHandle) { mStreamBgmHandle->stop(i_count); } mStreamBgmHandle.releaseSound(); } /* ############################################################################################## */ /* 803CA308-803CA33C -00001 0034+00 1/1 0/0 0/0 .data @4739 */ SECTION_DATA static void* lit_4739[13] = { (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x440), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x440), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x428), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x440), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x3C0), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x440), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x440), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x420), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x440), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x440), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x440), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x440), (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0x3C0), }; /* 804559B0-804559B4 003FB0 0004+00 1/1 0/0 0/0 .sdata2 @4726 */ SECTION_SDATA2 static f32 lit_4726 = 13.0f / 20.0f; /* 804559B4-804559B8 003FB4 0004+00 10/10 0/0 0/0 .sdata2 @4727 */ SECTION_SDATA2 static f32 lit_4727 = -1.0f; /* 804559B8-804559BC 003FB8 0004+00 1/1 0/0 0/0 .sdata2 @4728 */ SECTION_SDATA2 static f32 lit_4728 = 29.0f / 100.0f; /* 804559BC-804559C0 003FBC 0004+00 1/1 0/0 0/0 .sdata2 @4729 */ SECTION_SDATA2 static f32 lit_4729 = 7.0f / 20.0f; /* 804559C0-804559C4 003FC0 0004+00 1/1 0/0 0/0 .sdata2 @4730 */ SECTION_SDATA2 static f32 lit_4730 = 3.0f / 5.0f; /* 804559C4-804559C8 003FC4 0004+00 2/2 0/0 0/0 .sdata2 @4731 */ SECTION_SDATA2 static f32 lit_4731 = 0.5f; /* 804559C8-804559CC 003FC8 0004+00 3/3 0/0 0/0 .sdata2 @4732 */ SECTION_SDATA2 static f32 lit_4732 = 3.0f / 10.0f; /* 804559CC-804559D0 003FCC 0004+00 1/1 0/0 0/0 .sdata2 @4733 */ SECTION_SDATA2 static f32 lit_4733 = 3100.0f; /* 804559D0-804559D4 003FD0 0004+00 1/1 0/0 0/0 .sdata2 @4734 */ SECTION_SDATA2 static f32 lit_4734 = 200.0f; /* 804559D4-804559D8 003FD4 0004+00 1/1 0/0 0/0 .sdata2 @4735 */ SECTION_SDATA2 static f32 lit_4735 = 1600.0f; /* 804559D8-804559DC 003FD8 0004+00 1/1 0/0 0/0 .sdata2 @4736 */ SECTION_SDATA2 static f32 lit_4736 = 4.0f / 5.0f; /* 804559DC-804559E0 003FDC 0004+00 1/1 0/0 0/0 .sdata2 @4737 */ SECTION_SDATA2 static f32 lit_4737 = 3150.0f; /* 804559E0-804559E8 003FE0 0004+04 1/1 0/0 0/0 .sdata2 @4738 */ SECTION_SDATA2 static f32 lit_4738[1 + 1 /* padding */] = { 6150.0f, /* padding */ 0.0f, }; /* 804559E8-804559F0 003FE8 0008+00 1/1 0/0 0/0 .sdata2 @4741 */ SECTION_SDATA2 static f64 lit_4741 = 4503601774854144.0 /* cast s32 to float */; /* 802AFF8C-802B1DF4 2AA8CC 1E68+00 5/4 8/7 26/26 .text changeBgmStatus__8Z2SeqMgrFl */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::changeBgmStatus(s32 param_0) { if (!mMainBgmHandle) { return; } u32 count = 0; f32 volume1, volume2, volume3, volume4; switch (getMainBgmID()) { case Z2BGM_TOAL_VILLEGE: if (param_0 == mBgmStatus) { return; } if (mBgmStatus != 0xff) { count = 60; } if (param_0 == 1) { volume1 = 0.65f; volume2 = 1.0f; volume3 = 0.0f; count = 30; } else { volume1 = 0.0f; volume2 = 0.0f; volume3 = 1.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, volume3, count, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 9, volume2, count, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 10, volume2, count, -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); break; case Z2BGM_DUNGEON_FOREST: bool mute = false; switch (param_0) { case 4: case 0xc: i_muteSceneBgm(struct_80450860, 0.0f); // no break case 7: mute = true; break; case 2: Z2GetSoundObjMgr()->setForceBattleArea(true, 1500, 5000, 10000); break; } if (!mute) { i_unMuteSceneBgm(struct_80450860); } break; case Z2BGM_DUNGEON_LV2: switch (param_0) { case 0xe: case 0x10: case 0x11: subBgmStart(Z2BGM_DEATH_MOUNTAIN02); return; default: if (getSubBgmID() == Z2BGM_DEATH_MOUNTAIN02) { subBgmStop(); } return; } break; case Z2BGM_DUNGEON_LV5: if (mBgmStatus != 0xff) { count = 45; } if (param_0 == 2 || param_0 == 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) { i_muteSceneBgm(60, 0.29f); } else { i_unMuteSceneBgm(60); } break; case Z2BGM_CASTLE_TOWN: if (mBgmStatus != 0xff) { count = 45; } switch (param_0) { 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); 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); 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); 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); break; } if (param_0 == 5) { i_muteSceneBgm(count, 0.35f); mFlags.flag6 = false; } else { i_unMuteSceneBgm(count); if (param_0 < 2) { mFlags.flag6 = false; } else { mFlags.flag6 = true; } } break; case Z2BGM_HOLY_FOREST: if (mBgmStatus != 0xff) { count = 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) { 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); break; case Z2BGM_LUTERA2: if (param_0 == 0) { i_muteSceneBgm(0, 0.5f); } else if (param_0 == 1) { i_unMuteSceneBgm(80); } break; case Z2BGM_DEMO08: if (param_0 == 1) { setChildTrackVolume(&mMainBgmHandle, 4, 1.0f, 90, -1.0f, -1.0f); } else if (param_0 == 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 (param_0 == 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.6f, 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 (param_0 == 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 (param_0 == mBgmStatus) { return; } if (mBgmStatus != 0xff) { count = 45; } if (param_0 == 0 || param_0 == 0xb) { volume1 = 1.0f; volume2 = 0.0f; volume3 = 0.0f; volume4 = 0.0f; } else if (param_0 >= 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; } 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); break; case Z2BGM_BOSS_ZANT: if (param_0 == 0xd) { mSceneBgm.move(0.3f, 134); } else { mSceneBgm.forceIn(); if (param_0 > 6) { param_0 = (param_0 - 7) * 2; } else { param_0 = param_0 * 2 - 1; } } break; case Z2BGM_FORTUNE: if (param_0 == 1) { i_muteSceneBgm(45, 0.5f); } else { i_unMuteSceneBgm(45); } break; case Z2BGM_DUNGEON_LV9_02: if (mBgmStatus != 0xff) { count = 30; } if (param_0 == 0xc) { volume4 = 1.0f; volume1 = 0.0f; volume2 = 0.5f; volume3 = 0.0f; } else if (param_0 == 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); break; case Z2BGM_VS_GANON_02: if (param_0 == mBgmStatus) { return; } if (mBgmStatus != 0xff) { count = 45; } if (param_0 == 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); break; case Z2BGM_TOAL_NIGHT: case Z2BGM_FILONE_FOREST: if (param_0 == 1) { i_muteSceneBgm(45, 0.5f); } else if (param_0 == 2) { i_muteSceneBgm(0, 0.5f); } else { i_unMuteSceneBgm(45); } break; case Z2BGM_VS_GANON_04: if (param_0 == mBgmStatus) { return; } if (param_0 >= 4) { count = 50; if (param_0 == 4) { volume4 = 1.0f; volume1 = 0.0f; } else if (param_0 == 5) { volume4 = 0.0f; volume1 = 1.0f; } else if (param_0 == 6) { volume4 = 0.0f; volume1 = 0.0f; } else if (param_0 == 7) { volume4 = 0.0f; volume1 = 0.0f; count = 0; } else if (param_0 == 8) { volume4 = 1.0f; volume1 = 1.0f; count = 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); } break; } Z2GetSoundStarter()->setPortData(&mMainBgmHandle, 9, param_0, -1); mBgmStatus = param_0 & 0xff; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::changeBgmStatus(s32 param_0) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/changeBgmStatus__8Z2SeqMgrFl.s" } #pragma pop #endif /* 802B1DF4-802B299C 2AC734 0BA8+00 2/2 3/3 31/31 .text changeSubBgmStatus__8Z2SeqMgrFl */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::changeSubBgmStatus(s32 param_0) { if (!mSubBgmHandle) { return; } u32 count = 0; bool bvar2 = true; switch (getSubBgmID()) { case Z2BGM_DEKUTOAD: if (param_0 == 1 && mSubBgmStatus == 2) { mSubBgmMaster.forceOut(); mDekuToadCount = 100; } else if (param_0 == 3) { mSubBgmMaster.forceOut(); mDekuToadCount = 30; } break; case Z2BGM_HORSE_BATTLE: if (param_0 == mSubBgmStatus) { return; } if (param_0 != 2) { bvar2 = false; if (mSubBgmStatus != 0xff) { count = 40; } } if (param_0 == 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); } break; case Z2BGM_FACE_OFF_BATTLE2: if (param_0 == mSubBgmStatus) { return; } bvar2 = false; if (mSubBgmStatus != 0xff) { count = 30; } if (param_0 == 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); } break; case Z2BGM_RODEO: if (param_0 == mSubBgmStatus) { break; } if (param_0 == 1) { if (mSubBgmStatus != 0xff) { count = 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) { if (mSubBgmStatus != 0xff) { count = 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); } break; case Z2BGM_VARIANT: switch (param_0) { case 1: switch (mSubBgmStatus) { case 2: setChildTrackVolume(&mSubBgmHandle, 0, 1.0f, 15, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 8, 0.0f, 15, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 9, 0.0f, 15, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 10, 0.0f, 15, -1.0f, -1.0f); break; case 3: Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, 1, -1); return; } break; case 2: setChildTrackVolume(&mSubBgmHandle, 0, 0.0f, 10, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 8, 1.0f, 10, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 9, 1.0f, 10, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 10, 1.0f, 10, -1.0f, -1.0f); break; } break; case Z2BGM_BATTLE_TWILIGHT: if (mSubBgmStatus == param_0) { return; } if (mSubBgmStatus != 0xff) { count = 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) { 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); setChildTrackVolume(&mSubBgmHandle, 5, 1.0f, 0, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 6, 1.0f, 0, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 7, 1.0f, 0, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 8, 1.0f, 0, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 9, 1.0f, 0, -1.0f, -1.0f); setChildTrackVolume(&mSubBgmHandle, 10, 1.0f, 0, -1.0f, -1.0f); 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); } break; case Z2BGM_BATTLE_NORMAL: return; } if (bvar2) { Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, param_0, -1); } mSubBgmStatus = param_0 & 0xff; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::changeSubBgmStatus(s32 param_0) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/changeSubBgmStatus__8Z2SeqMgrFl.s" } #pragma pop #endif /* 802B299C-802B2A88 2AD2DC 00EC+00 0/0 1/1 0/0 .text onVariantBgmJumpEnd__8Z2SeqMgrFb */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::onVariantBgmJumpEnd(bool param_0) { if (param_0) { u32 count = 0; if (mSubBgmStatus == 3) { count = 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); } else { setChildTrackVolume(&mSubBgmHandle, 0, 1.0f, 0, -1.0f, -1.0f); } Z2GetSoundMgr()->getSeqMgr()->calc(); Z2GetSoundMgr()->getSeqMgr()->mixOut(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::onVariantBgmJumpEnd(bool param_0) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/onVariantBgmJumpEnd__8Z2SeqMgrFb.s" } #pragma pop #endif /* 802B2A88-802B2CA4 2AD3C8 021C+00 1/1 0/0 9/9 .text changeFishingBgm__8Z2SeqMgrFl */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::changeFishingBgm(s32 param_0) { switch (param_0) { case 0: if (getSubBgmID() == Z2BGM_FISHING_HIT) { subBgmStop(); } i_unMuteSceneBgm(struct_80450862); break; case 1: if (getSubBgmID() == Z2BGM_FISHING_HIT) { subBgmStop(); } i_muteSceneBgm(2, 0.5f); break; case 2: subBgmStart(Z2BGM_FISHING_HIT); i_muteSceneBgm(1, 0.0f); break; case 4: if (getSubBgmID() == Z2BGM_FISHING_HIT) { subBgmStop(); } i_muteSceneBgm(1, 0.0f); break; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::changeFishingBgm(s32 param_0) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/changeFishingBgm__8Z2SeqMgrFl.s" } #pragma pop #endif /* 802B2CA4-802B2D64 2AD5E4 00C0+00 0/0 1/1 0/0 .text talkInBgm__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::talkInBgm() { if (getStreamBgmID() == 0x2000038 || getStreamBgmID() == 0x200007c || getMainBgmID() == Z2BGM_WCS_D01) { return; } mBgmPause.move(Z2Param::VOL_BGM_TALKING, 2); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::talkInBgm() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/talkInBgm__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802B2D64-802B2DAC 2AD6A4 0048+00 0/0 1/1 0/0 .text talkOutBgm__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::talkOutBgm() { mBgmPause.move(Z2Param::VOL_BGM_DEFAULT, 2); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::talkOutBgm() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/talkOutBgm__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802B2DAC-802B2DF4 2AD6EC 0048+00 0/0 1/1 0/0 .text menuInBgm__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::menuInBgm() { mBgmPause.move(Z2Param::VOL_BGM_PAUSING, 2); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::menuInBgm() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/menuInBgm__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802B2DF4-802B2E3C 2AD734 0048+00 0/0 1/1 0/0 .text menuOutBgm__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::menuOutBgm() { mBgmPause.move(Z2Param::VOL_BGM_DEFAULT, 2); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::menuOutBgm() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/menuOutBgm__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802B2E3C-802B327C 2AD77C 0440+00 1/1 0/0 0/0 .text fanfareFramework__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::fanfareFramework() { switch (mFanfareID) { case Z2BGM_OPEN_BOX: mFanfareCount = 150; // no break case Z2BGM_KOMONJO_GET_INTRO: Z2GetSoundMgr()->startSound(mFanfareID, &mFanfareHandle, 0); mFanfareMute.fadeOut(1); mFanfareID.setAnonymous(); break; case Z2BGM_ITEM_GET_ME: if (mFanfareCount == 0) { Z2GetSoundMgr()->startSound(mFanfareID, &mFanfareHandle, 0); mFanfareCount = 25; } if (mFanfareCount == 1) { mFanfareMute.fadeOut(1); mFanfareID.setAnonymous(); mFanfareCount = 0; } break; case Z2BGM_FISHING_BARE: case Z2BGM_FISHING_GET1: case Z2BGM_FISHING_GET2: case Z2BGM_FISHING_GET3: changeFishingBgm(0); // no break case Z2BGM_ITEM_GET: case Z2BGM_ITEM_GET_MINI: case Z2BGM_HEART_GET: case Z2BGM_ITEM_GET_INSECT: case Z2BGM_ITEM_GET_SMELL: case Z2BGM_ITEM_GET_POU: case Z2BGM_ITEM_GET_ME_S: if (mFanfareCount == 0) { Z2GetSoundMgr()->startSound(mFanfareID, &mFanfareHandle, 0); mFanfareMute.fadeOut(1); mFanfareID.setAnonymous(); } break; case Z2BGM_HOWL_TOBIKUSA: case Z2BGM_HOWL_UMAKUSA: case Z2BGM_HOWL_ZELDASONG: case Z2BGM_HOWL_LIGHT_PRLD: case Z2BGM_LIGHT_PRLD_DUO: case Z2BGM_SOUL_REQ_HOWL: case Z2BGM_SOUL_REQ_DUO: case Z2BGM_HEALING_HOWL: case Z2BGM_HEALING_DUO: case Z2BGM_NEW_01_HOWL: case Z2BGM_NEW_01_DUO: case Z2BGM_NEW_02_HOWL: case Z2BGM_NEW_02_DUO: case Z2BGM_NEW_03_HOWL: case Z2BGM_NEW_03_DUO: if (mFanfareCount == 0) { mFanfareCount = 50; mFanfareMute.fadeOut(30); } else if (mFanfareCount == 1) { Z2GetSoundMgr()->startSound(mFanfareID, &mFanfareHandle, 0); mFanfareID.setAnonymous(); } break; } if (!isItemGetDemo() && mFanfareMute.getDest() != 1.0f) { mFanfareMute.fadeIn(struct_80450861); } if (mFanfareCount != 0) { mFanfareCount--; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::fanfareFramework() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/fanfareFramework__8Z2SeqMgrFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 803CA33C-803CA3F8 -00001 00BC+00 1/1 0/0 0/0 .data @5219 */ SECTION_DATA static void* lit_5219[47] = { (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x8C), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x84), }; /* 803CA3F8-803CA4B4 -00001 00BC+00 1/1 0/0 0/0 .data @5218 */ SECTION_DATA static void* lit_5218[47] = { (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x48), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), (void*)(((char*)stopWolfHowlSong__8Z2SeqMgrFv) + 0x38), }; /* 802B327C-802B3318 2ADBBC 009C+00 2/0 1/1 0/0 .text stopWolfHowlSong__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::stopWolfHowlSong() { switch (mFanfareID) { case Z2BGM_HOWL_TOBIKUSA: case Z2BGM_HOWL_UMAKUSA: case Z2BGM_HOWL_ZELDASONG: case Z2BGM_HOWL_LIGHT_PRLD: case Z2BGM_LIGHT_PRLD_DUO: case Z2BGM_SOUL_REQ_HOWL: case Z2BGM_SOUL_REQ_DUO: case Z2BGM_HEALING_HOWL: case Z2BGM_HEALING_DUO: case Z2BGM_NEW_01_HOWL: case Z2BGM_NEW_01_DUO: case Z2BGM_NEW_02_HOWL: case Z2BGM_NEW_02_DUO: case Z2BGM_NEW_03_HOWL: case Z2BGM_NEW_03_DUO: mFanfareID.setAnonymous(); mFanfareCount = 0; break; } if (mFanfareHandle) { switch (mFanfareHandle->getID()) { case Z2BGM_HOWL_TOBIKUSA: case Z2BGM_HOWL_UMAKUSA: case Z2BGM_HOWL_ZELDASONG: case Z2BGM_HOWL_LIGHT_PRLD: case Z2BGM_LIGHT_PRLD_DUO: case Z2BGM_SOUL_REQ_HOWL: case Z2BGM_SOUL_REQ_DUO: case Z2BGM_HEALING_HOWL: case Z2BGM_HEALING_DUO: case Z2BGM_NEW_01_HOWL: case Z2BGM_NEW_01_DUO: case Z2BGM_NEW_02_HOWL: case Z2BGM_NEW_02_DUO: case Z2BGM_NEW_03_HOWL: case Z2BGM_NEW_03_DUO: mFanfareHandle->stop(30); } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::stopWolfHowlSong() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/stopWolfHowlSong__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802B3318-802B3398 2ADC58 0080+00 0/0 1/1 0/0 .text setHeightVolMod__8Z2SeqMgrFbUl */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::setHeightVolMod(bool param_0, u32 i_count) { mFlags.flag6 = param_0; if (!param_0) { field_0x84.fadeIn(i_count); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::setHeightVolMod(bool param_0, u32 param_1) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/setHeightVolMod__8Z2SeqMgrFbUl.s" } #pragma pop #endif /* 802B3398-802B33A8 2ADCD8 0010+00 0/0 1/1 0/0 .text setTimeProcVolMod__8Z2SeqMgrFbUl */ void Z2SeqMgr::setTimeProcVolMod(bool param_0, u32 i_count) { mFlags.flag7 = param_0; } /* ############################################################################################## */ /* 80450870-80450874 0002F0 0004+00 1/1 0/0 0/0 .sdata sDeathMtBottom */ SECTION_SDATA static f32 sDeathMtBottom = -1000.0f; /* 80450874-80450878 0002F4 0004+00 1/1 0/0 0/0 .sdata sDeathMtTop */ SECTION_SDATA static f32 sDeathMtTop = 3650.0f; /* 80450878-80450880 0002F8 0004+04 1/1 0/0 0/0 .sdata sUnderWaterDepthMax */ SECTION_SDATA static f32 sUnderWaterDepthMax = 3500.0f; SECTION_SDATA static f32 pad = 0.0f; /* 804559F0-804559F4 003FF0 0004+00 1/1 0/0 0/0 .sdata2 @5673 */ SECTION_SDATA2 static f32 lit_5673 = -10500.0f; /* 804559F4-804559F8 003FF4 0004+00 1/1 0/0 0/0 .sdata2 @5674 */ SECTION_SDATA2 static f32 lit_5674 = -7500.0f; /* 804559F8-804559FC 003FF8 0004+00 1/1 0/0 0/0 .sdata2 @5675 */ SECTION_SDATA2 static f32 lit_5675 = 1.0f / 10.0f; /* 804559FC-80455A00 003FFC 0004+00 1/1 0/0 0/0 .sdata2 @5676 */ SECTION_SDATA2 static f32 lit_5676 = -1500.0f; /* 80455A00-80455A04 004000 0004+00 1/1 0/0 0/0 .sdata2 @5677 */ SECTION_SDATA2 static f32 lit_5677 = -13000.0f; /* 80455A04-80455A08 004004 0004+00 1/1 0/0 0/0 .sdata2 @5678 */ SECTION_SDATA2 static f32 lit_5678 = -4500.0f; /* 80455A08-80455A0C 004008 0004+00 1/1 0/0 0/0 .sdata2 @5679 */ SECTION_SDATA2 static f32 lit_5679 = -45000.0f; /* 80455A0C-80455A10 00400C 0004+00 1/1 0/0 0/0 .sdata2 @5680 */ SECTION_SDATA2 static f32 lit_5680 = -3000.0f; /* 80455A10-80455A14 004010 0004+00 1/1 0/0 0/0 .sdata2 @5681 */ SECTION_SDATA2 static f32 lit_5681 = 900.0f; /* 802B33A8-802B3EAC 2ADCE8 0B04+00 0/0 1/1 0/0 .text processBgmFramework__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::processBgmFramework() { fanfareFramework(); battleBgmFramework(); mbossBgmMuteProcess(); fieldBgmFramework(); if (!mStreamBgmHandle && mStreamBgmMaster.getDest() != 1.0f) { mStreamBgmMaster.fadeIn(struct_80450861); } if (field_0xb8 != -1) { if (field_0xb8 > 0) { field_0xb8--; } else { subBgmStopInner(); field_0xb8 = -1; } } else if (!mSubBgmHandle && mMainBgmMaster.getDest() != 1.0f) { mMainBgmMaster.fadeIn(struct_80450861); } if (mFlags.flag7) { if (Z2GetStatusMgr()->checkDayTime() && field_0xa4.getDest() != 1.0f) { field_0xa4.fadeIn(600); } else if (!Z2GetStatusMgr()->checkDayTime() && field_0xa4.getDest() != 0.0f) { field_0xa4.fadeOut(600); } } if (mFlags.flag6 && Z2GetSceneMgr()->isSceneExist() && Z2GetLink() != NULL && Z2GetLink()->getCurrentPos() != NULL) { f32 link_y = Z2GetLink()->getCurrentPos()->y; f32 volume; switch (getMainBgmID()) { case Z2BGM_DEATH_MOUNTAIN01: volume = Z2Calc::getParamByExp(link_y, sDeathMtTop, sDeathMtBottom, 0.3f, 0.0f, 1.0f, Z2Calc::CURVE_SIGN_0); field_0x84.move(volume, 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_SIGN_0); field_0x84.move(volume, 0); } break; case Z2BGM_FIELD_LINK_DAY: case Z2BGM_FIELD_LINK_NIGHT: case Z2BGM_ZORA_VILLAGE: case Z2BGM_FISHING: case Z2BGM_LAKE: f32 depth = Z2GetStatusMgr()->getCameraInWaterDepth(); 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_SIGN_0); field_0x84.move(volume, 0); } else if (field_0x84.getDest() != 1.0f) { field_0x84.fadeIn(30); } break; case Z2BGM_SNOW_MOUNTAIN: if (Z2GetSceneMgr()->getCurrentRoomNum() == 0) { 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_SIGN_0); field_0x84.move(volume, 0); } else { field_0x84.forceIn(); } } else if (Z2GetSceneMgr()->getCurrentRoomNum() == 1) { 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_SIGN_0); field_0x84.move(volume, 0); } else { field_0x84.forceIn(); } } else if (Z2GetSceneMgr()->getCurrentRoomNum() == 2) { 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_SIGN_0); field_0x84.move(volume, 0); } else { field_0x84.move(0.3f, 0); } } break; case Z2BGM_DUNGEON_LV9_02: changeBgmStatus(link_y); break; } } if (mDekuToadCount != 0) { mDekuToadCount--; if (getSubBgmID() == Z2BGM_DEKUTOAD) { if (mDekuToadCount == 60) { mSubBgmMaster.fadeIn(60); mDekuToadCount = 0; } else if (mDekuToadCount == 0) { mSubBgmMaster.fadeIn(30); } } } mAllBgmMaster.calc(); mBgmPause.calc(); mFanfareMute.calc(); mSceneBgm.calc(); mMainBgmMaster.calc(); mSubBgmMaster.calc(); mStreamBgmMaster.calc(); field_0x84.calc(); mWindStone.calc(); field_0xa4.calc(); 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(); } 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); } i_setWindStoneVol(1.0f, 30); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::processBgmFramework() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/processBgmFramework__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802B3EAC-802B3F40 2AE7EC 0094+00 0/0 2/2 0/0 .text checkBgmIDPlaying__8Z2SeqMgrFUl */ bool Z2SeqMgr::checkBgmIDPlaying(u32 i_bgmID) { if (getMainBgmID() == i_bgmID) { return true; } if (getSubBgmID() == i_bgmID) { return true; } if (getStreamBgmID() == i_bgmID) { return true; } return false; } /* 802B3F40-802B3FEC 2AE880 00AC+00 1/1 0/0 0/0 .text * getChildTrackVolume__8Z2SeqMgrFP14JAISoundHandlei */ #ifdef NONMATCHING // matches with literals f32 Z2SeqMgr::getChildTrackVolume(JAISoundHandle* i_handle, int i_track) { 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 (child != NULL) { volume = child->mMove.mParams.mVolume; } } } return volume; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm f32 Z2SeqMgr::getChildTrackVolume(JAISoundHandle* param_0, int param_1) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/getChildTrackVolume__8Z2SeqMgrFP14JAISoundHandlei.s" } #pragma pop #endif /* 802B3FEC-802B4128 2AE92C 013C+00 9/9 2/2 0/0 .text * setChildTrackVolume__8Z2SeqMgrFP14JAISoundHandleifUlff */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::setChildTrackVolume(JAISoundHandle* i_handle, int i_track, f32 i_volume, u32 i_count, f32 i_pan, f32 i_dolby) { if (!*i_handle) { return; } JAISeq* seq = (*i_handle)->asSeq(); if (seq == NULL) { return; } if (seq->getChildTrack(i_track) == NULL) { return; } JAISoundChild* child = seq->getChild(i_track); if (child == NULL) { return; } if (i_volume > 1.0f) { i_volume = 1.0f; } else if (i_volume < 0.0f) { i_volume = 0.0f; } child->mMove.moveVolume(i_volume, i_count); if (i_pan != -1.0f) { child->mMove.movePan(i_pan, i_count); } if (i_dolby != -1.0f) { child->mMove.moveDolby(i_dolby, i_count); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::setChildTrackVolume(JAISoundHandle* i_handle, int param_1, f32 i_volume, u32 i_count, f32 i_pan, f32 i_dolby) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/setChildTrackVolume__8Z2SeqMgrFP14JAISoundHandleifUlff.s" } #pragma pop #endif /* 802B4128-802B4164 2AEA68 003C+00 1/1 1/1 0/0 .text resetBattleBgmParams__8Z2SeqMgrFv */ void Z2SeqMgr::resetBattleBgmParams() { if (Z2GetSoundObjMgr() != NULL) { Z2GetSoundObjMgr()->setForceBattleArea(false, 700, 1100, 1500); } } /* 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 && (getSubBgmID() == Z2BGM_BATTLE_NORMAL || getSubBgmID() == Z2BGM_BATTLE_TWILIGHT)) { stopBattleBgm(struct_80450862, struct_80450861); } mFlags.mBattleBgmOff = i_value; } /* 802B421C-802B43D0 2AEB5C 01B4+00 0/0 1/1 0/0 .text setBattleSearched__8Z2SeqMgrFb */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::setBattleSearched(bool i_value) { if (!mFlags.mBattleBgmOff && Z2GetSceneMgr()->isSceneExist() && mFlags.mBattleSearched != i_value && 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); } 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); } } mFlags.mBattleSearched = i_value; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::setBattleSearched(bool param_0) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/setBattleSearched__8Z2SeqMgrFb.s" } #pragma pop #endif /* 802B43D0-802B43E0 2AED10 0010+00 3/3 0/0 0/0 .text setBattleDistIgnore__8Z2SeqMgrFb */ void Z2SeqMgr::setBattleDistIgnore(bool i_value) { mFlags.mBattleDistIgnore = i_value; } /* ############################################################################################## */ /* 80455A14-80455A18 004014 0004+00 1/1 0/0 0/0 .sdata2 @5913 */ SECTION_SDATA2 static f32 lit_5913 = 2.0f / 5.0f; /* 802B43E0-802B4498 2AED20 00B8+00 0/0 2/2 0/0 .text setBattleGhostMute__8Z2SeqMgrFb */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::setBattleGhostMute(bool i_value) { if (getSubBgmID() == Z2BGM_BATTLE_NORMAL) { if (i_value) { mSubBgmMaster.move(1.0f, 5); } else { mSubBgmMaster.move(0.4f, 5); } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::setBattleGhostMute(bool param_0) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/setBattleGhostMute__8Z2SeqMgrFb.s" } #pragma pop #endif /* 802B4498-802B4844 2AEDD8 03AC+00 0/0 1/1 0/0 .text setBattleDistState__8Z2SeqMgrFUc */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::setBattleDistState(u8 i_state) { if (!mFlags.mBattleBgmOff && Z2GetSceneMgr()->isSceneExist()) { if (!mFlags.mBattleDistIgnore) { if (i_state < 2 && mBattleSeqCount != 0) { mBattleSeqCount = 0; 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) { case 0: if (mBattleSeqState == 0) { startBattleBgm(true); } break; case 1: if (mBattleSeqState == 0) { startBattleBgm(true); } break; case 3: if (mBattleSeqState != 0) { stopBattleBgm(25, 25); } break; } } else if (getMainBgmID() != Z2BGM_FIELD_LINK_DAY) { switch (i_state) { case 0: if (mBattleSeqState == 0) { startBattleBgm(true); } else if (mBattleSeqState == 1) { setChildTrackVolume(&mSubBgmHandle, data_8045086C, 1.0f, struct_80450866, -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); } break; case 2: if (mBattleSeqState == 1) { setChildTrackVolume(&mSubBgmHandle, data_8045086C, 0.0f, struct_80450867, -1.0f, -1.0f); } break; case 3: if (mBattleSeqState == 1 || mBattleSeqState == 2) { stopBattleBgm(struct_80450862, struct_80450861); } break; } } } mBattleDistState = i_state; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::setBattleDistState(u8 i_state) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/setBattleDistState__8Z2SeqMgrFUc.s" } #pragma pop #endif /* 802B4844-802B4AFC 2AF184 02B8+00 1/1 3/3 1/1 .text setBattleSeqState__8Z2SeqMgrFUc */ #ifdef NONMATCHING // matches with literals 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) { 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 (mBattleSeqCount != 0) { mBattleSeqCount = 0; mSubBgmHandle->getFader().fadeIn(10); mMainBgmMaster.fadeOut(10); } break; case 3: mMainBgmMaster.forceOut(); mSubBgmMaster.forceIn(); if (mBattleSeqState == 1) { Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, 3, -1); } else if (mBattleSeqState == 2) { Z2GetSoundStarter()->setPortData(&mSubBgmHandle, 9, 2, -1); } break; } mBattleSeqState = i_state; } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::setBattleSeqState(u8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/setBattleSeqState__8Z2SeqMgrFUc.s" } #pragma pop #endif /* 802B4AFC-802B4BD0 2AF43C 00D4+00 0/0 4/4 0/0 .text setBattleLastHit__8Z2SeqMgrFUc */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::setBattleLastHit(u8 param_0) { if (getSubBgmID() == Z2BGM_BATTLE_NORMAL) { setBattleDistIgnore(true); mSubBgmMaster.move(Z2Param::ENEMY_LASTHIT_MUTE_VOLUME, struct_80450868); field_0xc1 = struct_80450863; mBattleLastHit = param_0; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::setBattleLastHit(u8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/setBattleLastHit__8Z2SeqMgrFUc.s" } #pragma pop #endif /* 802B4BD0-802B4EB0 2AF510 02E0+00 1/1 0/0 0/0 .text battleBgmFramework__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::battleBgmFramework() { if (getSubBgmID() == Z2BGM_BATTLE_NORMAL || getSubBgmID() == Z2BGM_BATTLE_TWILIGHT) { if (mBattleSeqCount != 0) { mBattleSeqCount--; if (mBattleSeqCount == 0) { mSubBgmHandle->stop(); mBattleSeqState = 0; } } } if (!mFlags.mBattleBgmOff && Z2GetSceneMgr()->isSceneExist()) { Z2GetSoundObjMgr()->searchEnemy(); switch (getSubBgmID()) { case Z2BGM_BATTLE_TWILIGHT: break; case Z2BGM_BATTLE_NORMAL: 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); } if (field_0xc1 == 0) { setBattleDistIgnore(false); if (Z2GetSoundObjMgr()->checkBattleFinish()) { setBattleSeqState(3); } else if (mSubBgmMaster.getDest() != 1.0f) { mSubBgmMaster.fadeIn(struct_8045086A); } } } break; default: mBattleSeqState = 0; setBattleDistIgnore(false); mFlags.mBattleSearched = 0; field_0xc1 = 0; mBattleLastHit = struct_80450869; } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::battleBgmFramework() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/battleBgmFramework__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802B4EB0-802B5204 2AF7F0 0354+00 1/1 0/0 0/0 .text startBattleBgm__8Z2SeqMgrFb */ // Matches with literals #ifdef NONMATCHING void Z2SeqMgr::startBattleBgm(bool i_fade) { 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; } 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; } u8 count_in, count_out; switch (bgm_id) { case Z2BGM_BATTLE_NORMAL: count_in = struct_80450861 - ivar2; count_out = struct_80450862 - 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()); count_in = 25 - ivar2 / 4; count_out = 25 - ivar2 / 4; break; } if (i_fade) { mSubBgmMaster.fadeInFromOut(count_in); } else { mSubBgmMaster.forceIn(); } mMainBgmMaster.fadeOut(count_out); } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::startBattleBgm(bool param_0) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/startBattleBgm__8Z2SeqMgrFb.s" } #pragma pop #endif /* 802B5204-802B545C 2AFB44 0258+00 3/3 1/1 0/0 .text stopBattleBgm__8Z2SeqMgrFUcUc */ #ifdef NONMATCHING // regalloc void Z2SeqMgr::stopBattleBgm(u8 param_0, u8 param_1) { if (mBattleSeqCount == 0) { u8 count; s16 ivar6 = 0; if (Z2GetLink() != NULL) { ivar6 = Z2GetLink()->getMoveSpeed() - 23; } if (ivar6 < 0) { ivar6 = 0; } if (ivar6 > struct_80450861) { ivar6 = struct_80450861; } if (getSubBgmID() == Z2BGM_BATTLE_NORMAL) { u8 count_out = struct_80450861 + ivar6; count = struct_80450862 + ivar6 / 2; mSubBgmHandle->fadeOut(count_out); mBattleSeqCount = count_out; } else if (getSubBgmID() == Z2BGM_BATTLE_TWILIGHT) { if (mSubBgmStatus > 1) { count = struct_80450861 + ivar6 / 4; } else { count = 25 + ivar6 / 4; } mSubBgmHandle->fadeOut(count); mBattleSeqCount = count; } mMainBgmMaster.fadeIn(count); mBattleDistState = 3; setBattleDistIgnore(false); mFlags.mBattleSearched = false; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::stopBattleBgm(u8 param_0, u8 param_1) { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/stopBattleBgm__8Z2SeqMgrFUcUc.s" } #pragma pop #endif /* 802B545C-802B556C 2AFD9C 0110+00 1/1 0/0 0/0 .text fieldBgmStart__8Z2SeqMgrFv */ void Z2SeqMgr::fieldBgmStart() { if (Z2GetSceneMgr()->isSceneExist() && mFlags.flag5) { if (Z2GetStatusMgr()->checkDayTime()) { Z2GetSoundMgr()->startSound(Z2BGM_FIELD_LINK_DAY, &mMainBgmHandle, NULL); changeBgmStatus(0); field_0xc4 = 0; if (Z2GetLink()->isRiding()) { mFlags.mRiding = true; mRideCount = 0; fieldRidingMute(); } else { mFlags.mRiding = false; mRideCount = 0; fieldRidingMute(); } } else { Z2GetSoundMgr()->startSound(Z2BGM_FIELD_LINK_NIGHT, &mMainBgmHandle, NULL); mBgmStatus = 0; } } } /* 802B556C-802B5750 2AFEAC 01E4+00 3/3 0/0 0/0 .text fieldRidingMute__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::fieldRidingMute() { if (Z2GetSceneMgr()->isSceneExist() && mMainBgmHandle) { f32 volume1, volume2; if (mFlags.mRiding) { volume1 = 1.0f; volume2 = 0.0f; } else { 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); setChildTrackVolume(&mMainBgmHandle, 8, volume1, mRideCount, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 9, volume1, mRideCount, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 10, volume1, mRideCount, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 11, volume1, mRideCount, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 12, volume2, mRideCount, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 13, volume2, mRideCount, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 14, volume2, mRideCount, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 15, volume2, mRideCount, -1.0f, -1.0f); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::fieldRidingMute() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/fieldRidingMute__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802B5750-802B579C 2B0090 004C+00 0/0 1/1 0/0 .text onFieldBgmJumpStart__8Z2SeqMgrFv */ void Z2SeqMgr::onFieldBgmJumpStart() { field_0xc8 = getChildTrackVolume(&mMainBgmHandle, 5); field_0xcc = getChildTrackVolume(&mMainBgmHandle, 12); } /* 802B579C-802B594C 2B00DC 01B0+00 0/0 1/1 0/0 .text onFieldBgmJumpEnd__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::onFieldBgmJumpEnd() { setChildTrackVolume(&mMainBgmHandle, 5, field_0xc8, 0, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 6, field_0xc8, 0, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 7, field_0xc8, 0, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 8, field_0xc8, 0, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 9, field_0xc8, 0, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 10, field_0xc8, 0, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 11, field_0xc8, 0, -1.0f, -1.0f); setChildTrackVolume(&mMainBgmHandle, 12, field_0xcc, 0, -1.0f, -1.0f); 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(); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::onFieldBgmJumpEnd() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/onFieldBgmJumpEnd__8Z2SeqMgrFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 803CA4B4-803CA508 -00001 0054+00 1/1 0/0 0/0 .data @6877 */ SECTION_DATA static void* lit_6877[21] = { (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1C8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1D8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1E8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), (void*)(((char*)fieldBgmFramework__8Z2SeqMgrFv) + 0x1F8), }; /* 802B594C-802B5E80 2B028C 0534+00 2/1 0/0 0/0 .text fieldBgmFramework__8Z2SeqMgrFv */ // Switch table needs to be verified #ifdef NONMATCHING void Z2SeqMgr::fieldBgmFramework() { if (Z2GetSceneMgr()->isSceneExist() && !Z2GetSceneMgr()->isInDarkness() && (Z2GetSceneMgr()->getCurrentSceneNum() == 0x1e || Z2GetSceneMgr()->getCurrentSceneNum() == 0x1f) && mFlags.flag5) { if (mRideCount != 0) { mRideCount--; } if (getMainBgmID() == Z2BGM_FIELD_LINK_DAY) { field_0xc4 = Z2GetSoundStarter()->getPortData(&mMainBgmHandle, 10, -1); if (Z2GetStatusMgr()->isPaused()) { changeBgmStatus(13); } else { if (field_0xc4 != 16) { if (mFlags.mRiding != Z2GetLink()->isRiding()) { mFlags.mRiding = Z2GetLink()->isRiding(); mRideCount = 50; 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: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 17: case 18: case 19: case 20: changeBgmStatus(2); break; default: changeBgmStatus(13); break; } } else if (mBattleDistState <= 2) { if ((field_0xc4 < 7 || field_0xc4 > 15) && mBattleDistState <= 1) { switch (field_0xc4) { case 2: changeBgmStatus(7); break; case 3: changeBgmStatus(6); break; case 4: changeBgmStatus(5); break; case 0: case 1: case 5: case 7: case 19: case 20: default: changeBgmStatus(4); break; } } } else if (Z2GetStatusMgr()->checkDayTime()) { if (Z2GetLink()->getMovingTime() < 150) { switch (field_0xc4) { case 3: if (mFlags.mRiding && Z2GetSoundObjMgr()->getEnemyNumVeryFar() == 0) { changeBgmStatus(3); } break; case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 17: case 18: case 19: case 20: changeBgmStatus(2); break; default: changeBgmStatus(13); break; } } else { switch (field_0xc4) { case 2: case 3: changeBgmStatus(13); break; default: changeBgmStatus(12); break; } } } else { if (field_0xc4 >= 7 && field_0xc4 <= 15 && Z2GetStatusMgr()->getHour() >= 20) { mMainBgmHandle->stop(60); mMainBgmHandle.releaseSound(); } else { switch (field_0xc4) { case 2: case 3: break; case 17: case 18: case 19: case 20: changeBgmStatus(11); break; default: changeBgmStatus(10); break; } } } } } else if (getMainBgmID() == Z2BGM_FIELD_LINK_NIGHT) { if (!Z2GetStatusMgr()->isPaused()) { u8 hour = Z2GetStatusMgr()->getHour(); if (hour >= 5 && hour < 20) { mMainBgmHandle->stop(60); mMainBgmHandle.releaseSound(); } } } else if (getMainBgmID() == -1 && !Z2GetStatusMgr()->isPaused() && mBattleSeqState == 0) { u8 hour = Z2GetStatusMgr()->getHour(); if (hour >= 6 && hour < 19) { if (hour >= 8) { Z2GetSoundMgr()->startSound(Z2BGM_FIELD_LINK_DAY, &mMainBgmHandle, NULL); changeBgmStatus(9); field_0xc4 = 24; } else { Z2GetSoundMgr()->startSound(Z2BGM_FIELD_LINK_DAY, &mMainBgmHandle, NULL); changeBgmStatus(8); field_0xc4 = 23; } if (Z2GetLink()->isRiding()) { mFlags.mRiding = true; mRideCount = 0; fieldRidingMute(); } else { mFlags.mRiding = false; mRideCount = 0; fieldRidingMute(); } } else if (hour >= 20 || hour < 5) { Z2GetSoundMgr()->startSound(Z2BGM_FIELD_LINK_NIGHT, &mMainBgmHandle, NULL); } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::fieldBgmFramework() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/fieldBgmFramework__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802B5E80-802B5E84 2B07C0 0004+00 1/1 0/0 0/0 .text mbossBgmMuteProcess__8Z2SeqMgrFv */ void Z2SeqMgr::mbossBgmMuteProcess() { /* empty function */ } /* 802B5E84-802B5E88 2B07C4 0004+00 0/0 2/2 0/0 .text bgmSetSwordUsing__8Z2SeqMgrFl */ void Z2SeqMgr::bgmSetSwordUsing(s32 param_0) { /* empty function */ } /* 802B5E88-802B5E8C 2B07C8 0004+00 0/0 1/1 0/0 .text bgmNowBattle__8Z2SeqMgrFf */ void Z2SeqMgr::bgmNowBattle(f32 param_0) { /* empty function */ } /* 802B5E8C-802B5ED4 2B07CC 0048+00 0/0 1/1 0/0 .text taktModeMute__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::taktModeMute() { mBgmPause.move(0.3f, 10); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::taktModeMute() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/taktModeMute__8Z2SeqMgrFv.s" } #pragma pop #endif /* 802B5ED4-802B5F1C 2B0814 0048+00 0/0 1/1 0/0 .text taktModeMuteOff__8Z2SeqMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SeqMgr::taktModeMuteOff() { mBgmPause.fadeIn(10); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SeqMgr::taktModeMuteOff() { nofralloc #include "asm/Z2AudioLib/Z2SeqMgr/taktModeMuteOff__8Z2SeqMgrFv.s" } #pragma pop #endif /* 8039BA08-8039BA08 028068 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */