Work on Z2AudioLib (#2032)

This commit is contained in:
hatal175
2024-01-13 15:41:29 +02:00
committed by GitHub
parent 6260020b3e
commit ead852383f
42 changed files with 853 additions and 1572 deletions
+90 -139
View File
@@ -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