mirror of https://github.com/zeldaret/tp.git
641 lines
22 KiB
C++
641 lines
22 KiB
C++
//
|
|
// 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<JAISe>* 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<JAISe>* 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<JAISe>* 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<JAISe>* 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<Z2SoundMgr>(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<f> */
|
|
#ifdef NONMATCHING
|
|
// matches with literals
|
|
bool Z2SoundMgr::startSound(JAISoundID i_soundID, JAISoundHandle* i_handle,
|
|
JGeometry::TVec3<f32> 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<JAUSectionHeap>::getInstance();
|
|
JAUSeqDataBlocks const& loaded_blocks =
|
|
heap->getSectionHeapData().seqDataBlocks.getLoadedBlocks();
|
|
JSULink<JAUSeqDataBlock>* 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<f32> 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<JAISe>* link = category->getSeList()->getFirst();
|
|
link != NULL && se_count > 0 && !link->getObject()->isFarAway();
|
|
link = link->getNext(), se_count--)
|
|
{
|
|
setFilterOff(link->getObject());
|
|
}
|
|
} else {
|
|
for (JSULink<JAISe>* 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<JAISe>* 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<JAISe>* 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<JAISe>* list =
|
|
mSeMgr.getCategory(Z2GetSoundInfo()->getCategory(i_soundID))->getSeList();
|
|
for (JSULink<JAISe>* 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<JAISe>* list =
|
|
mSeMgr.getCategory(Z2GetSoundInfo()->getCategory(i_soundID))->getSeList();
|
|
for (JSULink<JAISe>* 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 */
|