diff options
Diffstat (limited to 'libs/Z2AudioLib/Z2SoundStarter.cpp')
| -rw-r--r-- | libs/Z2AudioLib/Z2SoundStarter.cpp | 229 |
1 files changed, 90 insertions, 139 deletions
diff --git a/libs/Z2AudioLib/Z2SoundStarter.cpp b/libs/Z2AudioLib/Z2SoundStarter.cpp index c9c4416c99..5461fa21e5 100644 --- a/libs/Z2AudioLib/Z2SoundStarter.cpp +++ b/libs/Z2AudioLib/Z2SoundStarter.cpp @@ -1,163 +1,114 @@ // -// Generated By: dol2asm -// Translation Unit: Z2SoundStarter +// Z2SoundStarter // #include "Z2AudioLib/Z2SoundStarter.h" -#include "dol2asm.h" - -// -// Types: -// - -struct Z2EnvSeMgr { - /* 802C93E4 */ void getFogDensity(); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -// -// Forward References: -// - -extern "C" void __ct__14Z2SoundStarterFb(); -extern "C" void func_802AABF4(); -extern "C" void func_802AAC3C(); -extern "C" void setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc(); -extern "C" void getPortData__14Z2SoundStarterFP14JAISoundHandleUlSc(); -extern "C" void __dt__14Z2SoundStarterFv(); - -// -// External References: -// - -extern "C" void openChild__8JASTrackFUl(); -extern "C" void writePort__8JASTrackFUlUs(); -extern "C" void readPort__8JASTrackFUl(); -extern "C" void moveVolume__18JAISoundParamsMoveFfUl(); -extern "C" void movePitch__18JAISoundParamsMoveFfUl(); -extern "C" void moveFxMix__18JAISoundParamsMoveFfUl(); -extern "C" void movePan__18JAISoundParamsMoveFfUl(); -extern "C" void moveDolby__18JAISoundParamsMoveFfUl(); -extern "C" void __ct__15JAISoundStarterFb(); -extern "C" void __dt__15JAISoundStarterFv(); -extern "C" void getFogDensity__10Z2EnvSeMgrFv(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_29(); -extern "C" extern u8 data_80450B3C[4]; -extern "C" extern u8 data_80450B7C[4]; -extern "C" extern u8 data_80450B80[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" extern u8 __OSReport_disable; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803C9D80-803C9D98 026EA0 0014+04 2/2 6/6 0/0 .data __vt__14Z2SoundStarter */ -SECTION_DATA extern void* __vt__14Z2SoundStarter[5 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14Z2SoundStarterFv, - (void*)func_802AABF4, - (void*)func_802AAC3C, - /* padding */ - NULL, -}; +#include "Z2AudioLib/Z2EnvSeMgr.h" +#include "Z2AudioLib/Z2AudioMgr.h" +#include "JSystem/JUtility/JUTAssert.h" /* 802AAB94-802AABF4 2A54D4 0060+00 0/0 4/4 0/0 .text __ct__14Z2SoundStarterFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Z2SoundStarter::Z2SoundStarter(bool param_0) { - nofralloc -#include "asm/Z2AudioLib/Z2SoundStarter/__ct__14Z2SoundStarterFb.s" +Z2SoundStarter::Z2SoundStarter(bool param_0) : JAISoundStarter(param_0), JASGlobalInstance<Z2SoundStarter>(param_0) { } -#pragma pop - -/* ############################################################################################## */ -/* 80455858-8045585C 003E58 0004+00 2/2 0/0 0/0 .sdata2 @3597 */ -SECTION_SDATA2 static u8 lit_3597[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 8045585C-80455860 003E5C 0004+00 2/2 0/0 0/0 .sdata2 @3598 */ -SECTION_SDATA2 static f32 lit_3598 = 1.0f; - -/* 80455860-80455864 003E60 0004+00 2/2 0/0 0/0 .sdata2 @3599 */ -SECTION_SDATA2 static f32 lit_3599 = -1.0f; /* 802AABF4-802AAC3C 2A5534 0048+00 1/0 5/0 0/0 .text * startSound__14Z2SoundStarterF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2SoundStarter::startSound(JAISoundID param_0, JAISoundHandle* param_1, - JGeometry::TVec3<f32> const* param_2) { - nofralloc -#include "asm/Z2AudioLib/Z2SoundStarter/func_802AABF4.s" +int Z2SoundStarter::startSound(JAISoundID param_0, JAISoundHandle* param_1, + JGeometry::TVec3<f32> const* param_2) { + return Z2SoundStarter::startSound(param_0, param_1, param_2, 0, 0.0f, 1.0f, 1.0f, -1.0f, -1.0f, + 0); } -#pragma pop - -/* ############################################################################################## */ -/* 80455864-80455868 003E64 0004+00 1/1 0/0 0/0 .sdata2 @3713 */ -SECTION_SDATA2 static f32 lit_3713 = 0.5f; - -/* 80455868-80455870 003E68 0008+00 1/1 0/0 0/0 .sdata2 @3717 */ -SECTION_SDATA2 static f64 lit_3717 = 4503599627370496.0 /* cast u32 to float */; /* 802AAC3C-802AAEDC 2A557C 02A0+00 2/1 2/2 0/0 .text * startSound__14Z2SoundStarterF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f>UlfffffUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2SoundStarter::startSound(JAISoundID param_0, JAISoundHandle* param_1, - JGeometry::TVec3<f32> const* param_2, u32 param_3, f32 param_4, - f32 param_5, f32 param_6, f32 param_7, f32 param_8, - u32 param_9) { - nofralloc -#include "asm/Z2AudioLib/Z2SoundStarter/func_802AAC3C.s" +int Z2SoundStarter::startSound(JAISoundID param_1, JAISoundHandle* handlePtr, + JGeometry::TVec3<f32> const* param_3, u32 param_4, f32 param_5, + f32 param_6, f32 param_7, f32 param_8, f32 param_9, u32 param_10) { + JUT_ASSERT(45, handlePtr); + if (param_4 == 6) { + switch ((u32)param_1) { + case 0x6002b: + // TODO: Fix JAISoundID fake match + param_1.stackCopyHelper(0x6002e); + break; + case 0x6002c: + param_1.stackCopyHelper(0x6002f); + break; + case 0x6002d: + param_1.stackCopyHelper(0x60030); + break; + } + } + if (param_1.mId.mBytes.b1 != 0 && param_1.mId.mBytes.b1 != 9) { + if (Z2GetSceneMgr()->isInDarkness()) { + param_5 = 1.0f; + } else { + f32 ratio = Z2GetStatusMgr()->getCameraInWaterDepthRatio(); + f32 uStack_8c = ratio > 0.0f; + if (uStack_8c) { + param_5 = uStack_8c; + } else { + param_5 += 0.5f * Z2GetEnvSeMgr()->getFogDensity(); + if (param_5 > 1.0f) { + param_5 = 1.0f; + } + } + } + } + int startSoundRes = Z2GetAudioMgr()->startSound(param_1, handlePtr, param_3); + if (*handlePtr) { + if (param_4 != 0) { + setPortData(handlePtr, 6, param_4, -1); + } + if (param_5 > 0.0f) { + (*handlePtr)->getAuxiliary().moveFxMix(param_5, param_10); + } + if (param_6 != 1.0f) { + (*handlePtr)->getAuxiliary().movePitch(param_6, param_10); + } + if (param_7 != 1.0f) { + (*handlePtr)->getAuxiliary().moveVolume(param_7, param_10); + } + if (param_8 != -1.0f) { + (*handlePtr)->getAuxiliary().movePan(param_8, param_10); + } + if (param_9 != -1.0f) { + (*handlePtr)->getAuxiliary().moveDolby(param_9, param_10); + } + } + return startSoundRes; } -#pragma pop /* 802AAEDC-802AAF74 2A581C 0098+00 1/1 10/10 0/0 .text * setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2SoundStarter::setPortData(JAISoundHandle* param_0, u32 param_1, u16 param_2, - s8 param_3) { - nofralloc -#include "asm/Z2AudioLib/Z2SoundStarter/setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc.s" +void Z2SoundStarter::setPortData(JAISoundHandle* param_1, u32 param_2, u16 param_3, s8 param_4) { + if (param_1 != NULL && *param_1) { + JASTrack* track = param_1->getSound()->getTrack(); + if (param_4 != -1) { + if (track->getChild(param_4) == NULL) { + track->openChild(param_4); + } + track = track->getChild(param_4); + } + JUT_ASSERT(122, track); + track->writePort(param_2, param_3); + } } -#pragma pop /* 802AAF74-802AAFF0 2A58B4 007C+00 0/0 1/1 0/0 .text * getPortData__14Z2SoundStarterFP14JAISoundHandleUlSc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2SoundStarter::getPortData(JAISoundHandle* param_0, u32 param_1, s8 param_2) { - nofralloc -#include "asm/Z2AudioLib/Z2SoundStarter/getPortData__14Z2SoundStarterFP14JAISoundHandleUlSc.s" +u16 Z2SoundStarter::getPortData(JAISoundHandle* param_1, u32 param_2, s8 param_3) { + if (param_1 != NULL && *param_1) { + JASTrack* track; + if (param_3 == -1) { + track = param_1->getSound()->getTrack(); + } else { + track = param_1->getSound()->getChildTrack(param_3); + } + JUT_ASSERT(140, track); + return track->readPort(param_2); + } + return 0; } -#pragma pop -/* 802AAFF0-802AB07C 2A5930 008C+00 1/0 0/0 0/0 .text __dt__14Z2SoundStarterFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Z2SoundStarter::~Z2SoundStarter() { - nofralloc -#include "asm/Z2AudioLib/Z2SoundStarter/__dt__14Z2SoundStarterFv.s" -} -#pragma pop + |
