// // Generated By: dol2asm // Translation Unit: Z2SoundMgr // #include "Z2AudioLib/Z2SoundMgr.h" #include "Z2AudioLib/Z2Param.h" #include "Z2AudioLib/Z2SceneMgr.h" #include "JSystem/JAudio2/JASCalc.h" #include "JSystem/JAudio2/JASDriverIF.h" #include "JSystem/JAudio2/JAUSectionHeap.h" #include "dol2asm.h" // // Forward References: // extern "C" void seqCallback__FP8JASTrackUs(); extern "C" void __ct__10Z2SoundMgrFv(); extern "C" void func_802A9EE8(); extern "C" void calc__10Z2SoundMgrFv(); extern "C" void setIIR__10Z2SoundMgrFP8JAISoundPCs(); extern "C" void setFilterOff__10Z2SoundMgrFP8JAISound(); extern "C" void resetFilterAll__10Z2SoundMgrFv(); extern "C" void mixOut__10Z2SoundMgrFv(); extern "C" void framework__10Z2SoundMgrFv(); extern "C" void pauseAllGameSound__10Z2SoundMgrFb(); extern "C" void stopSoundID__10Z2SoundMgrF10JAISoundID(); extern "C" void stopSync__10Z2SoundMgrFv(); extern "C" void stop__10Z2SoundMgrFv(); extern "C" void initParams__10Z2SoundMgrFv(); extern "C" void multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf(); extern "C" void isPlayingSoundID__10Z2SoundMgrF10JAISoundID(); extern "C" extern char const* const Z2SoundMgr__stringBase0; void dComIfGs_staffroll_next_go(); // // External References: // extern "C" void dComIfGs_staffroll_next_go__Fv(); extern "C" void setFIR__8JASTrackFPCs(); extern "C" void setIIR__8JASTrackFPCs(); extern "C" void writePort__8JASTrackFUlUs(); extern "C" void waitSubFrame__9JASDriverFv(); extern "C" void pause__16JAISeCategoryMgrFb(); extern "C" void __ct__8JAISeMgrFb(); extern "C" void stop__8JAISeMgrFv(); extern "C" void stopSoundID__8JAISeMgrF10JAISoundID(); extern "C" void initParams__8JAISeMgrFv(); extern "C" void calc__8JAISeMgrFv(); extern "C" void mixOut__8JAISeMgrFv(); extern "C" void func_802A0768(); extern "C" void getNumActiveSe__8JAISeMgrCFv(); extern "C" void __ct__9JAISeqMgrFb(); extern "C" void func_802A1B48(); extern "C" void calc__9JAISeqMgrFv(); extern "C" void stop__9JAISeqMgrFv(); extern "C" void stopSoundID__9JAISeqMgrF10JAISoundID(); extern "C" void mixOut__9JAISeqMgrFv(); extern "C" void moveVolume__18JAISoundParamsMoveFfUl(); extern "C" void __ct__12JAIStreamMgrFb(); extern "C" void func_802A3C3C(); extern "C" void calc__12JAIStreamMgrFv(); extern "C" void stop__12JAIStreamMgrFv(); extern "C" void stop__12JAIStreamMgrFUl(); extern "C" void stopSoundID__12JAIStreamMgrF10JAISoundID(); extern "C" void mixOut__12JAIStreamMgrFv(); extern "C" void loadDynamicSeq__14JAUSectionHeapF10JAISoundIDb(); extern "C" void releaseIdleDynamicSeqDataBlock__14JAUSectionHeapFv(); extern "C" void seMoveVolumeAll__7Z2SeMgrFfUl(); extern "C" void bgmStart__8Z2SeqMgrFUlUll(); extern "C" void changeBgmStatus__8Z2SeqMgrFl(); extern "C" void onVariantBgmJumpEnd__8Z2SeqMgrFb(); extern "C" void setChildTrackVolume__8Z2SeqMgrFP14JAISoundHandleifUlff(); extern "C" void onFieldBgmJumpStart__8Z2SeqMgrFv(); extern "C" void onFieldBgmJumpEnd__8Z2SeqMgrFv(); extern "C" void getSwBit__11Z2SoundInfoCF10JAISoundID(); extern "C" void speakOneWord__12Z2SpeechMgr2Fb(); extern "C" void _savegpr_24(); extern "C" void _savegpr_25(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _restgpr_24(); extern "C" void _restgpr_25(); extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" u8 const CUTOFF_TO_IIR_TABLE__7JASCalc[1024]; extern "C" extern u8 data_80450B4C[4]; extern "C" extern u8 data_80450B70[4]; extern "C" extern u8 data_80450B80[4]; extern "C" extern u8 data_80450B84[4]; extern "C" extern u8 data_80450B88[4]; extern "C" extern u8 data_80450CC0[4 + 4 /* padding */]; extern "C" extern u8 __OSReport_disable; // // Declarations: // /* ############################################################################################## */ /* 803C9D18-803C9D70 -00001 0058+00 1/1 0/0 0/0 .data @3690 */ SECTION_DATA static void* lit_3690[22] = { (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x40), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x7C), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x88), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x94), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0xA4), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0xB4), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0xC4), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1AC), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1BC), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1CC), (void*)(((char*)seqCallback__FP8JASTrackUs) + 0x148), }; /* 80455838-8045583C 003E38 0004+00 5/5 0/0 0/0 .sdata2 @3688 */ SECTION_SDATA2 static f32 lit_3688 = 1.0f; /* 8045583C-80455840 003E3C 0004+00 1/1 0/0 0/0 .sdata2 @3689 */ SECTION_SDATA2 static f32 lit_3689 = -1.0f; /* 802A9BC8-802A9E80 2A4508 02B8+00 1/0 1/1 0/0 .text seqCallback__FP8JASTrackUs */ #ifdef NONMATCHING // matches with literals u16 seqCallback(JASTrack* i_track, u16 param_1) { JSUList* list; switch (param_1) { case 0x1000: Z2GetSeqMgr()->setChildTrackVolume(Z2GetSeqMgr()->getSubBgmHandle(), 3, 1.0f, 0, -1.0f, -1.0f); Z2GetSoundMgr()->getSeqMgr()->calc(); Z2GetSoundMgr()->getSeqMgr()->mixOut(); break; case 0x1001: Z2GetSeqMgr()->onFieldBgmJumpStart(); break; case 0x1002: Z2GetSeqMgr()->onFieldBgmJumpEnd(); break; case 0x1003: Z2GetSpeechMgr2()->speakOneWord(true); break; case 0x1004: Z2GetSeqMgr()->onVariantBgmJumpEnd(true); break; case 0x1005: Z2GetSeqMgr()->onVariantBgmJumpEnd(false); break; case 0x1006: list = Z2GetSoundMgr()->getSeMgr()->getCategory(5)->getSeList(); for (JSULink* link = list->getFirst(); link != NULL; link = link->getNext()) { switch (link->getObject()->getID()) { case Z2SE_GRO_MV_SINGING: case Z2SE_GRR_MV_SINGING: case Z2SE_CLERK_MV_SONG_HO: case Z2SE_WAD_A_MV_DANCE: case Z2SE_MCN_A_V_DANCE: case Z2SE_WCN_A_V_DANCE: link->getObject()->getTrack()->writePort(14, 1); break; } } break; case 0x1015: list = Z2GetSoundMgr()->getSeMgr()->getCategory(5)->getSeList(); for (JSULink* link = list->getFirst(); link != NULL; link = link->getNext()) { switch (link->getObject()->getID()) { case Z2SE_MCN_A_V_DANCE: case Z2SE_WCN_A_V_DANCE: link->getObject()->getTrack()->writePort(14, 1); break; } } break; case 0x1007: Z2GetSeqMgr()->changeBgmStatus(7); break; case 0x1008: Z2GetSeqMgr()->changeBgmStatus(8); break; case 0x1014: dComIfGs_staffroll_next_go(); break; } if (param_1 >= 0x1009 && param_1 <= 0x1013) { JAISoundID sound_id = Z2SE_CSL_TOWN_BAND_VOCAL; if (param_1 <= 0x100a) { sound_id = Z2SE_CSL_TOWN_BAND_GT_1; } else if (param_1 <= 0x100c) { sound_id = Z2SE_CSL_TOWN_BAND_GT_2; } else if (param_1 <= 0x100f) { sound_id = Z2SE_CSL_TOWN_BAND_GT_3; } else if (param_1 <= 0x1011) { sound_id = Z2SE_CSL_TOWN_BAND_FLUTE; } list = Z2GetSoundMgr()->getSeMgr()->getCategory(6)->getSeList(); for (JSULink* link = list->getFirst(); link != NULL; link = link->getNext()) { if (link->getObject()->getID() == sound_id) { link->getObject()->getTrack()->writePort(14, param_1); break; } } } return 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u16 seqCallback(JASTrack* param_0, u16 param_1) { nofralloc #include "asm/Z2AudioLib/Z2SoundMgr/seqCallback__FP8JASTrackUs.s" } #pragma pop #endif /* ############################################################################################## */ /* 803C9D70-803C9D80 026E90 000C+04 1/1 1/1 0/0 .data __vt__10Z2SoundMgr */ SECTION_DATA extern void* __vt__10Z2SoundMgr[3 + 1 /* padding */] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)func_802A9EE8, /* padding */ NULL, }; /* 802A9E80-802A9EE8 2A47C0 0068+00 0/0 1/1 0/0 .text __ct__10Z2SoundMgrFv */ #ifdef NONMATCHING // matches but generates an extra weak function Z2SoundMgr::Z2SoundMgr() : JASGlobalInstance(this), mSeMgr(true), mSeqMgr(true), mStreamMgr(true) { mSoundID.setAnonymous(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm Z2SoundMgr::Z2SoundMgr() { nofralloc #include "asm/Z2AudioLib/Z2SoundMgr/__ct__10Z2SoundMgrFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 8039B9D0-8039B9D0 028030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039B9D0 = "Unknown Sound-Type id :%08x\n"; /* @stringBase0 padding */ SECTION_DEAD static char const* const pad_8039B9ED = "\0\0"; #pragma pop /* 80455840-80455844 003E40 0004+00 1/1 0/0 0/0 .sdata2 @3904 */ SECTION_SDATA2 static f32 lit_3904 = 3.0f / 10.0f; /* 80455844-80455848 003E44 0004+00 3/3 0/0 0/0 .sdata2 @3905 */ SECTION_SDATA2 static u8 lit_3905[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 80455848-80455850 003E48 0008+00 2/2 0/0 0/0 .sdata2 @3909 */ SECTION_SDATA2 static f64 lit_3909 = 4503599627370496.0 /* cast u32 to float */; /* 802A9EE8-802AA1B0 2A4828 02C8+00 1/0 0/0 0/0 .text * startSound__10Z2SoundMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3 */ #ifdef NONMATCHING // matches with literals bool Z2SoundMgr::startSound(JAISoundID i_soundID, JAISoundHandle* i_handle, JGeometry::TVec3 const* i_pos) { switch (Z2GetSoundInfo()->getSoundType(i_soundID)) { case 0: if (Z2GetSoundInfo()->getSwBit(i_soundID) & 8) { Z2GetSeqMgr()->bgmAllMute(3, 0.3f); mSoundID = i_soundID; } return mSeMgr.startSound(i_soundID, i_handle, i_pos); case 1: if (i_soundID == Z2BGM_LUTERA_DEMO) { Z2GetSeqMgr()->bgmStart(Z2BGM_LUTERA2, 0, 0); Z2GetSeqMgr()->i_unMuteSceneBgm(0); Z2GetSeqMgr()->changeBgmStatus(0); return mSeMgr.startSound(Z2SE_NO_SOUND, i_handle, i_pos); } else { bool loaded = false; JAUSectionHeap* heap = JASGlobalInstance::getInstance(); JAUSeqDataBlocks const& loaded_blocks = heap->getSectionHeapData().seqDataBlocks.getLoadedBlocks(); JSULink* link; for (link = loaded_blocks.getFirst(); link != NULL; link = link->getNext()) { if (link->getObject()->field_0x10 == i_soundID) { loaded = true; break; } } if (!loaded) { heap->releaseIdleDynamicSeqDataBlock(); if (!heap->loadDynamicSeq(i_soundID, true)) { JAUSeqDataBlocks const& free_blocks = heap->getSectionHeapData().seqDataBlocks.getFreeBlocks(); for (link = free_blocks.getFirst(); link != NULL; link = link->getNext()) { } } } return mSeqMgr.startSound(i_soundID, i_handle, i_pos); } case 2: if (i_soundID == 0x2000001 || i_soundID == 0x200004d) { mStreamMgr.stop(180); return mSeMgr.startSound(Z2SE_NO_SOUND, i_handle, i_pos); } if (i_soundID == 0x2000005) { mSeMgr.getCategory(9)->pause(false); mSeMgr.getCategory(9)->getParams()->moveVolume(1.0f, 45); } return mStreamMgr.startSound(i_soundID, i_handle, i_pos); default: char error[32]; sprintf(error, "Unknown Sound-Type id :%08x\n", (u32)i_soundID); return false; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2SoundMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1, JGeometry::TVec3 const* param_2) { nofralloc #include "asm/Z2AudioLib/Z2SoundMgr/func_802A9EE8.s" } #pragma pop #endif /* 802AA1B0-802AA270 2A4AF0 00C0+00 2/2 0/0 0/0 .text calc__10Z2SoundMgrFv */ #ifdef NONMATCHING void Z2SoundMgr::calc() { mSeMgr.calc(); if (!mSoundID.isAnonymous() && !isPlayingSoundID(mSoundID)) { if (Z2GetSceneMgr()->isSceneExist()) { Z2GetSeqMgr()->bgmAllUnMute(3); } mSoundID.setAnonymous(); } mSeqMgr.calc(); mStreamMgr.calc(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SoundMgr::calc() { nofralloc #include "asm/Z2AudioLib/Z2SoundMgr/calc__10Z2SoundMgrFv.s" } #pragma pop #endif /* 802AA270-802AA33C 2A4BB0 00CC+00 1/1 2/2 0/0 .text setIIR__10Z2SoundMgrFP8JAISoundPCs */ void Z2SoundMgr::setIIR(JAISound* param_0, s16 const* param_1) { if (param_0 != NULL) { JASTrack* track = param_0->getTrack(); for (u32 i = 0; i < 4; i++) { JASTrack* child = track->getChild(i); if (child != NULL && child->getStatus() == 1) { child->setIIR(param_1); for (u32 j = 0; j < 4; j++) { JASTrack* child2 = child->getChild(j); if (child2 != NULL && child2->getStatus() == 1) { child2->setIIR(param_1); } } } } } } /* 8039B9C0-8039B9D0 028020 0010+00 1/1 0/0 0/0 .rodata cResetFilterTable */ static s16 const cResetFilterTable[8] = { 0x7FFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, }; /* 802AA33C-802AA430 2A4C7C 00F4+00 1/1 0/0 0/0 .text setFilterOff__10Z2SoundMgrFP8JAISound */ void Z2SoundMgr::setFilterOff(JAISound* param_0) { if (param_0 != NULL) { JASTrack* track = param_0->getTrack(); for (u32 i = 0; i < 4; i++) { JASTrack* child = track->getChild(i); if (child != NULL && child->getStatus() == 1) { child->setIIR(cResetFilterTable); child->setFIR(cResetFilterTable); for (u32 j = 0; j < 4; j++) { JASTrack* child2 = child->getChild(j); if (child2 != NULL && child2->getStatus() == 1) { child2->setIIR(cResetFilterTable); child2->setFIR(cResetFilterTable); } } } } } } /* 802AA430-802AA528 2A4D70 00F8+00 0/0 1/1 0/0 .text resetFilterAll__10Z2SoundMgrFv */ void Z2SoundMgr::resetFilterAll() { int i = 1; if (struct_80451342 != 0) { i = 0; } for (; i < 9; i++) { JAISeCategoryMgr* category = mSeMgr.getCategory(i); int se_count = category->getMaxActiveSe(); if (se_count > 0) { for (JSULink* link = category->getSeList()->getFirst(); link != NULL && se_count > 0 && !link->getObject()->isFarAway(); link = link->getNext(), se_count--) { setFilterOff(link->getObject()); } } else { for (JSULink* link = category->getSeList()->getFirst(); link != NULL && !link->getObject()->isFarAway(); link = link->getNext()) { setFilterOff(link->getObject()); } } } } /* 802AA528-802AA67C 2A4E68 0154+00 2/2 0/0 0/0 .text mixOut__10Z2SoundMgrFv */ void Z2SoundMgr::mixOut() { if (struct_80451340 != 0 && Z2GetSceneMgr()->isInDarkness()) { int i = 1; if (struct_80451342 != 0) { i = 0; } for (; i < 9; i++) { JAISeCategoryMgr* category = mSeMgr.getCategory(i); int se_count = category->getMaxActiveSe(); if (se_count > 0) { for (JSULink* link = category->getSeList()->getFirst(); link != NULL && se_count > 0 && !link->getObject()->isFarAway(); link = link->getNext(), se_count--) { setIIR(link->getObject(), JASCalc::CUTOFF_TO_IIR_TABLE[struct_80451341]); } } else { for (JSULink* link = category->getSeList()->getFirst(); link != NULL && !link->getObject()->isFarAway(); link = link->getNext()) { setIIR(link->getObject(), JASCalc::CUTOFF_TO_IIR_TABLE[struct_80451341]); } } } } mSeMgr.mixOut(); mSeqMgr.mixOut(); mStreamMgr.mixOut(); } /* 802AA67C-802AA6B0 2A4FBC 0034+00 0/0 1/1 0/0 .text framework__10Z2SoundMgrFv */ void Z2SoundMgr::framework() { calc(); mixOut(); } /* 802AA6B0-802AA7DC 2A4FF0 012C+00 0/0 1/1 0/0 .text pauseAllGameSound__10Z2SoundMgrFb */ #ifdef NONMATCHING // matches with literals void Z2SoundMgr::pauseAllGameSound(bool i_pause) { mSeMgr.getCategory(0)->pause(i_pause); mSeMgr.getCategory(1)->pause(i_pause); mSeMgr.getCategory(2)->pause(i_pause); mSeMgr.getCategory(3)->pause(i_pause); mSeMgr.getCategory(4)->pause(i_pause); mSeMgr.getCategory(5)->pause(i_pause); mSeMgr.getCategory(6)->pause(i_pause); mSeMgr.getCategory(7)->pause(i_pause); mSeMgr.getCategory(8)->pause(i_pause); mSeMgr.getCategory(9)->pause(i_pause); mSeqMgr.pause(i_pause); mStreamMgr.pause(i_pause); if (i_pause) { Z2GetSeMgr()->seMoveVolumeAll(0.0f, 10); mSeqMgr.getParams()->moveVolume(0.0f, 10); mStreamMgr.getParams()->moveVolume(0.0f, 10); } else { Z2GetSeMgr()->seMoveVolumeAll(1.0f, 10); mSeqMgr.getParams()->moveVolume(1.0f, 10); mStreamMgr.getParams()->moveVolume(1.0f, 10); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SoundMgr::pauseAllGameSound(bool param_0) { nofralloc #include "asm/Z2AudioLib/Z2SoundMgr/pauseAllGameSound__10Z2SoundMgrFb.s" } #pragma pop #endif /* 802AA7DC-802AA84C 2A511C 0070+00 0/0 1/1 0/0 .text stopSoundID__10Z2SoundMgrF10JAISoundID */ void Z2SoundMgr::stopSoundID(JAISoundID i_soundID) { mSeMgr.stopSoundID(i_soundID); mSeqMgr.stopSoundID(i_soundID); mStreamMgr.stopSoundID(i_soundID); } /* 802AA84C-802AA8C8 2A518C 007C+00 0/0 1/1 0/0 .text stopSync__10Z2SoundMgrFv */ void Z2SoundMgr::stopSync() { stop(); while (mSeMgr.getNumActiveSe() > 0 || mSeqMgr.getNumActiveSeqs() > 0) { calc(); if (mSeMgr.getNumActiveSe() == 0 && mSeqMgr.getNumActiveSeqs() == 0) { break; } mixOut(); JASDriver::waitSubFrame(); } } /* 802AA8C8-802AA908 2A5208 0040+00 1/1 0/0 0/0 .text stop__10Z2SoundMgrFv */ void Z2SoundMgr::stop() { mSeMgr.stop(); mSeqMgr.stop(); mStreamMgr.stop(); } /* ############################################################################################## */ /* 80455850-80455858 003E50 0004+04 1/1 0/0 0/0 .sdata2 @4313 */ SECTION_SDATA2 static f32 lit_4313[1 + 1 /* padding */] = { 0.5f, /* padding */ 0.0f, }; /* 802AA908-802AA9E8 2A5248 00E0+00 0/0 1/1 0/0 .text initParams__10Z2SoundMgrFv */ #ifdef NONMATCHING // matches with literals void Z2SoundMgr::initParams() { mSeMgr.initParams(); mSeqMgr.getParams()->init(); mStreamMgr.getParams()->init(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SoundMgr::initParams() { nofralloc #include "asm/Z2AudioLib/Z2SoundMgr/initParams__10Z2SoundMgrFv.s" } #pragma pop #endif /* 802AA9E8-802AAAC4 2A5328 00DC+00 0/0 1/1 0/0 .text * multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf */ #ifdef NONMATCHING void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) { if (!i_soundID.isAnonymous() && Z2GetSoundInfo()->getSoundType(i_soundID) == 0) { JSUList* list = mSeMgr.getCategory(Z2GetSoundInfo()->getCategory(i_soundID))->getSeList(); for (JSULink* link = list->getFirst(); link != NULL; link = link->getNext()) { if (link->getObject()->getID() == i_soundID) { link->getObject()->getAuxiliary().mParams.mVolume *= i_multi; } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void Z2SoundMgr::multiVolumeSoundID(JAISoundID param_0, f32 param_1) { nofralloc #include "asm/Z2AudioLib/Z2SoundMgr/multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf.s" } #pragma pop #endif /* 802AAAC4-802AAB94 2A5404 00D0+00 1/1 0/0 0/0 .text isPlayingSoundID__10Z2SoundMgrF10JAISoundID */ #ifdef NONMATCHING bool Z2SoundMgr::isPlayingSoundID(JAISoundID i_soundID) { if (i_soundID.isAnonymous()) { return 0; } if (Z2GetSoundInfo()->getSoundType(i_soundID) == 0) { JSUList* list = mSeMgr.getCategory(Z2GetSoundInfo()->getCategory(i_soundID))->getSeList(); for (JSULink* link = list->getFirst(); link != NULL; link = link->getNext()) { if (link->getObject()->getID() == i_soundID) { return true; } } } return false; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool Z2SoundMgr::isPlayingSoundID(JAISoundID param_0) { nofralloc #include "asm/Z2AudioLib/Z2SoundMgr/isPlayingSoundID__10Z2SoundMgrF10JAISoundID.s" } #pragma pop #endif /* 8039B9D0-8039B9D0 028030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */