tp/libs/Z2AudioLib/Z2SoundObject.cpp

277 lines
8.5 KiB
C++

/* Z2SoundObject.cpp autogenerated by split.py v0.3 at 2021-01-04 23:48:52.467160 */
#include "Z2AudioLib/Z2SoundObject/Z2SoundObject.h"
#include "JSystem/JAudio2/JAISoundParamsMove.h"
#include "JSystem/JAudio2/JAUSoundAnimation.h"
#include "Z2AudioLib/Z2Calc/Z2Calc.h"
#include "Z2AudioLib/Z2SeMgr/Z2SeMgr.h"
#include "Z2AudioLib/Z2SoundInfo/Z2SoundInfo.h"
extern "C" {
void __dl__FPv(void);
void getNthLink__10JSUPtrListCFUl(void);
}
// additional symbols needed for Z2SoundObject.cpp
// autogenerated by split.py v0.3 at 2021-01-04 23:48:52.434158
extern u8 lbl_80455B58;
extern u8 lbl_80455B78;
extern u8 lbl_80455B48;
extern u8 lbl_80455B7C;
extern u8 lbl_80455B60;
extern u8 lbl_8039C230;
extern u8 lbl_80455B40;
extern u8 lbl_80455B54;
extern u8 lbl_80455B70;
extern u8 lbl_803CACF0;
extern u8 lbl_80455B68;
extern u8 lbl_80455B50;
extern u8 lbl_80455B3C;
extern u8 lbl_80455B5C;
extern u8 lbl_803CAD30;
extern u8 lbl_80455B74;
extern u8 lbl_80455B38;
extern u8 lbl_803CAD50;
extern u8 lbl_80450B60;
extern u8 lbl_803CAD10;
extern u8 lbl_803CACD0;
extern u8 lbl_80450AE8;
Z2SoundObjBase::Z2SoundObjBase() {
//! @note initializer list doesn't work since fields were initialized out of
//! structure layout order, indicating original code didn't use initializer list.
mSoundPos = NULL;
mIsInitialized = false;
mSoundStarter = lbl_80450B74;
field_0x1c = 0;
field_0x1e = 0;
}
Z2SoundObjBase::~Z2SoundObjBase() {
deleteObject();
}
void Z2SoundObjBase::init(Vec* pSoundPos, u8 pNumHandles) {
initHandlesPool(pNumHandles);
mSoundPos = pSoundPos;
mIsInitialized = true;
}
void Z2SoundObjBase::deleteObject() {
this->dispose();
this->deleteHandlesPool();
}
void Z2SoundObjBase::framework(u32 p1, s8 p2) {
if (mIsInitialized) {
this->field_0x1c = p1;
this->field_0x1e = p2;
this->setPos(*(JGeometry::TVec3<f32>*)this->mSoundPos);
}
}
void Z2SoundObjBase::dispose() {
JAISoundHandle* handle;
JSULink<Z2SoundHandlePool>* link;
for (link = this->getFirst(); link != NULL; link = link->getNext()) {
handle = link->getObject();
if (handle != NULL && (bool)*handle) {
u32 swBit = lbl_80450B4C->getSwBit((*handle)->getID());
if ((swBit & 0x8000) != 0) {
handle->releaseSound();
} else {
(*handle)->stop();
}
}
}
this->mIsInitialized = false;
}
bool Z2SoundObjBase::stopOK(Z2SoundHandlePool& pSoundHandlePool) {
return !(lbl_80450B4C->getSwBit(pSoundHandlePool->getID()) & 0x8000);
}
extern "C" {
// startSound__14Z2SoundObjBaseF10JAISoundIDUlSc
// Z2SoundObjBase::startSound(JAISoundID, unsigned long, char)
asm void startSound__14Z2SoundObjBaseF10JAISoundIDUlSc(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE144.s"
}
// startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc
// Z2SoundObjBase::startLevelSound(JAISoundID, unsigned long, char)
asm void startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE2D4.s"
}
// startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase
// Z2SoundObjBase::startCollisionSE(unsigned long, unsigned long, Z2SoundObjBase*)
asm void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE4A4.s"
}
// __ct__21Z2DopplerSoundObjBaseFv
// Z2DopplerSoundObjBase::Z2DopplerSoundObjBase(void)
asm void __ct__21Z2DopplerSoundObjBaseFv(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE5A0.s"
}
// __dt__21Z2DopplerSoundObjBaseFv
// Z2DopplerSoundObjBase::~Z2DopplerSoundObjBase(void)
asm void __dt__21Z2DopplerSoundObjBaseFv(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE5FC.s"
}
// init__21Z2DopplerSoundObjBaseFP3VecUc
// Z2DopplerSoundObjBase::init(Vec*, unsigned char)
asm void init__21Z2DopplerSoundObjBaseFP3VecUc(Vec* pSoundPos, u8 pNumHandles) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE65C.s"
}
// framework__21Z2DopplerSoundObjBaseFUlSc
// Z2DopplerSoundObjBase::framework(unsigned long, char)
asm void framework__21Z2DopplerSoundObjBaseFUlSc(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE6B8.s"
}
// startSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc
// Z2DopplerSoundObjBase::startSound(JAISoundID, unsigned long, char)
asm void startSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE714.s"
}
// startLevelSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc
// Z2DopplerSoundObjBase::startLevelSound(JAISoundID, unsigned long, char)
asm void startLevelSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE7AC.s"
}
// __ct__16Z2SoundObjSimpleFv
// Z2SoundObjSimple::Z2SoundObjSimple(void)
asm void __ct__16Z2SoundObjSimpleFv(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE844.s"
}
#ifdef NONMATCHING
// init__16Z2SoundObjSimpleFP3VecUc
// Z2SoundObjSimple::init(Vec*, unsigned char)
void Z2SoundObjSimple::init(Vec* pSoundPos, u8 pNumHandles) {
// i would write
// Z2SoundObjBase::init(pSoundPos, pNumHandles);
// but MWCC says "illegal use of non-static member"
// was calling like this not in C++98?
// and this doesn't match
((Z2SoundObjBase*)this)->init(pSoundPos, pNumHandles);
}
#else
asm void Z2SoundObjSimple::init(Vec* pSoundPos, u8 pNumHandles) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE880.s"
}
#endif
// startSound__16Z2SoundObjSimpleF10JAISoundIDUlSc
// Z2SoundObjSimple::startSound(JAISoundID, unsigned long, char)
asm void startSound__16Z2SoundObjSimpleF10JAISoundIDUlSc(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE8A0.s"
}
// startLevelSound__16Z2SoundObjSimpleF10JAISoundIDUlSc
// Z2SoundObjSimple::startLevelSound(JAISoundID, unsigned long, char)
asm void startLevelSound__16Z2SoundObjSimpleF10JAISoundIDUlSc(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BE9B0.s"
}
// __ct__15Z2SoundObjArrowFv
// Z2SoundObjArrow::Z2SoundObjArrow(void)
asm void __ct__15Z2SoundObjArrowFv(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BEB38.s"
}
// init__15Z2SoundObjArrowFP3VecUc
// Z2SoundObjArrow::init(Vec*, unsigned char)
asm void init__15Z2SoundObjArrowFP3VecUc(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BEB74.s"
}
// __ct__15Z2SoundObjAnimeFv
// Z2SoundObjAnime::Z2SoundObjAnime(void)
asm void __ct__15Z2SoundObjAnimeFv(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BEB94.s"
}
// init__15Z2SoundObjAnimeFP3VecUc
// Z2SoundObjAnime::init(Vec*, unsigned char)
asm void init__15Z2SoundObjAnimeFP3VecUc(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BEBDC.s"
}
// initAnime__15Z2SoundObjAnimeFPvbff
// Z2SoundObjAnime::initAnime(void*, bool, float, float)
asm void initAnime__15Z2SoundObjAnimeFPvbff(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BEBFC.s"
}
// ageSounds___15Z2SoundObjAnimeFv
// Z2SoundObjAnime::ageSounds_(void)
asm void ageSounds___15Z2SoundObjAnimeFv(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BED68.s"
}
// updateAnime__15Z2SoundObjAnimeFff
// Z2SoundObjAnime::updateAnime(float, float)
asm void updateAnime__15Z2SoundObjAnimeFff(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BEED4.s"
}
// updateSoundLifeTime___15Z2SoundObjAnimeFff
// Z2SoundObjAnime::updateSoundLifeTime_(float, float)
asm void updateSoundLifeTime___15Z2SoundObjAnimeFff(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BF304.s"
}
// startSoundInner__15Z2SoundObjAnimeFRCQ29JGeometry8TVec3<f>fP14Z2SoundStarterUlSc
// Z2SoundObjAnime::startSoundInner(JGeometry::TVec3<f>, float, Z2SoundStarter*, unsigned long,
// char)
asm void Z2SoundObjAnime_NS_startSoundInner(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BF660.s"
}
// getSoundID__15Z2SoundObjAnimeFPC22JAUSoundAnimationSoundRCQ29JGeometry8TVec3<f>f
// Z2SoundObjAnime::getSoundID(const JAUSoundAnimationSound*, JGeometry::TVec3<f>, float)
asm void Z2SoundObjAnime_NS_getSoundID(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BF890.s"
}
// playsSound__15Z2SoundObjAnimeFPC22JAUSoundAnimationSoundRCQ29JGeometry8TVec3<f>f
// Z2SoundObjAnime::playsSound(const JAUSoundAnimationSound*, JGeometry::TVec3<f>, float)
asm void Z2SoundObjAnime_NS_playsSound(void) {
nofralloc
#include "Z2AudioLib/Z2SoundObject/asm/func_802BF898.s"
}
};