mirror of https://github.com/zeldaret/tp.git
314 lines
10 KiB
C++
314 lines
10 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: JAISeqMgr
|
|
//
|
|
|
|
#include "JSystem/JAudio2/JAISeqMgr.h"
|
|
#include "JSystem/JAudio2/JAISeq.h"
|
|
#include "JSystem/JAudio2/JAISoundHandles.h"
|
|
#include "JSystem/JAudio2/JAISoundInfo.h"
|
|
#include "dol2asm.h"
|
|
|
|
//
|
|
// Forward References:
|
|
//
|
|
|
|
extern "C" void isUsingSeqData__9JAISeqMgrFRC16JAISeqDataRegion();
|
|
extern "C" void releaseSeqData__9JAISeqMgrFRC16JAISeqDataRegion();
|
|
extern "C" void __ct__9JAISeqMgrFb();
|
|
extern "C" void freeDeadSeq___9JAISeqMgrFv();
|
|
extern "C" void func_802A1AF4(void* _this);
|
|
extern "C" void func_802A1B48();
|
|
extern "C" void calc__9JAISeqMgrFv();
|
|
extern "C" void stop__9JAISeqMgrFv();
|
|
extern "C" void stop__9JAISeqMgrFUl();
|
|
extern "C" void stopSoundID__9JAISeqMgrF10JAISoundID();
|
|
extern "C" void mixOut__9JAISeqMgrFv();
|
|
extern "C" void beginStartSeq___9JAISeqMgrFv();
|
|
extern "C" void endStartSeq___9JAISeqMgrFP6JAISeqP14JAISoundHandle();
|
|
extern "C" void __dt__9JAISeqMgrFv();
|
|
|
|
//
|
|
// External References:
|
|
//
|
|
|
|
extern "C" void __ct__17JASGenericMemPoolFv();
|
|
extern "C" void __dt__17JASGenericMemPoolFv();
|
|
extern "C" void alloc__17JASGenericMemPoolFUl();
|
|
extern "C" void free__17JASGenericMemPoolFPvUl();
|
|
extern "C" void __dt__8JASTrackFv();
|
|
extern "C" void func_802A0A8C();
|
|
extern "C" void func_802A0B64();
|
|
extern "C" void JAISeqMgr_calc___6JAISeqFv();
|
|
extern "C" void JAISeqMgr_mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity();
|
|
extern "C" void __dt__14JAISeqDataUserFv();
|
|
extern "C" void attachHandle__8JAISoundFP14JAISoundHandle();
|
|
extern "C" void stop__8JAISoundFUl();
|
|
extern "C" void stop__8JAISoundFv();
|
|
extern "C" void __dl__FPv();
|
|
extern "C" void __dt__10JSUPtrLinkFv();
|
|
extern "C" void __dt__10JSUPtrListFv();
|
|
extern "C" void initiate__10JSUPtrListFv();
|
|
extern "C" void append__10JSUPtrListFP10JSUPtrLink();
|
|
extern "C" void remove__10JSUPtrListFP10JSUPtrLink();
|
|
extern "C" void __register_global_object();
|
|
extern "C" void _savegpr_25();
|
|
extern "C" void _savegpr_29();
|
|
extern "C" void _restgpr_25();
|
|
extern "C" void _restgpr_29();
|
|
extern "C" extern void* __vt__6JAISeq[12 + 1 /* padding */];
|
|
extern "C" extern void* __vt__14JAISeqDataUser[5 + 1 /* padding */];
|
|
extern "C" extern u8 data_80450B5C[4];
|
|
extern "C" extern u8 data_80451320[8];
|
|
extern "C" extern u8 __OSReport_disable;
|
|
|
|
//
|
|
// Declarations:
|
|
//
|
|
|
|
/* 802A1804-802A1870 29C144 006C+00 1/0 0/0 0/0 .text
|
|
* isUsingSeqData__9JAISeqMgrFRC16JAISeqDataRegion */
|
|
bool JAISeqMgr::isUsingSeqData(JAISeqDataRegion const& param_1) {
|
|
for (JSULink<JAISeq>* link = mSeqList.getFirst(); link != NULL; link = link->getNext()) {
|
|
if (param_1.intersects(link->getObject()->getSeqData())) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
/* 802A1870-802A1914 29C1B0 00A4+00 1/0 0/0 0/0 .text
|
|
* releaseSeqData__9JAISeqMgrFRC16JAISeqDataRegion */
|
|
int JAISeqMgr::releaseSeqData(JAISeqDataRegion const& param_1) {
|
|
bool bVar1 = false;
|
|
for (JSULink<JAISeq>* link = mSeqList.getFirst(); link != NULL; link = link->getNext()) {
|
|
if (param_1.intersects(link->getObject()->getSeqData())) {
|
|
link->getObject()->stop();
|
|
bVar1 = true;
|
|
}
|
|
}
|
|
ReleaseSeqResult uVar4;
|
|
if (!bVar1) {
|
|
uVar4 = RELEASE_SEQ_2;
|
|
} else {
|
|
uVar4 = RELEASE_SEQ_1;
|
|
}
|
|
return uVar4;
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 803C9958-803C9970 026A78 0014+04 2/2 1/1 0/0 .data __vt__9JAISeqMgr */
|
|
SECTION_DATA extern void* __vt__9JAISeqMgr[5 + 1 /* padding */] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)__dt__9JAISeqMgrFv,
|
|
(void*)isUsingSeqData__9JAISeqMgrFRC16JAISeqDataRegion,
|
|
(void*)releaseSeqData__9JAISeqMgrFRC16JAISeqDataRegion,
|
|
/* padding */
|
|
NULL,
|
|
};
|
|
|
|
/* 804557A8-804557AC 003DA8 0004+00 1/1 0/0 0/0 .sdata2 @691 */
|
|
SECTION_SDATA2 static f32 lit_691 = 1.0f;
|
|
|
|
/* 804557AC-804557B0 003DAC 0004+00 1/1 0/0 0/0 .sdata2 @692 */
|
|
SECTION_SDATA2 static u8 lit_692[4] = {
|
|
0x00,
|
|
0x00,
|
|
0x00,
|
|
0x00,
|
|
};
|
|
|
|
/* 804557B0-804557B8 003DB0 0004+04 1/1 0/0 0/0 .sdata2 @693 */
|
|
SECTION_SDATA2 static f32 lit_693[1 + 1 /* padding */] = {
|
|
0.5f,
|
|
/* padding */
|
|
0.0f,
|
|
};
|
|
|
|
/* 802A1914-802A1A08 29C254 00F4+00 0/0 1/1 0/0 .text __ct__9JAISeqMgrFb */
|
|
JAISeqMgr::JAISeqMgr(bool param_1) : JASGlobalInstance<JAISeqMgr>(param_1), mAudience(NULL) {
|
|
seqDataMgr_ = NULL;
|
|
field_0x10 = NULL;
|
|
field_0x70 = 16;
|
|
mMove.init();
|
|
mActivity.init();
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 804340C0-804340CC 060DE0 000C+00 3/3 0/0 0/0 .bss @715 */
|
|
static u8 lit_715[12];
|
|
|
|
/* 804340CC-804340E0 060DEC 0010+04 3/3 1/1 0/0 .bss
|
|
* memPool_$localstatic3$getMemPool___27JASPoolAllocObject<6JAISeq>Fv */
|
|
extern u8 data_804340CC[16 + 4 /* padding */];
|
|
u8 data_804340CC[16 + 4 /* padding */];
|
|
|
|
/* 802A1A08-802A1AF4 29C348 00EC+00 1/1 0/0 0/0 .text freeDeadSeq___9JAISeqMgrFv */
|
|
// Matches with all JASPoolAllocObject definitions and data_80451320
|
|
#ifdef NONMATCHING
|
|
void JAISeqMgr::freeDeadSeq_() {
|
|
JSULink<JAISeq>* link = mSeqList.getFirst();
|
|
while (link != NULL) {
|
|
JAISeq* seq = link->getObject();
|
|
JSULink<JAISeq>* next = seq->getNext();
|
|
if (seq->status_.isDead()) {
|
|
mSeqList.remove(link);
|
|
delete seq;
|
|
}
|
|
link = next;
|
|
}
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void JAISeqMgr::freeDeadSeq_() {
|
|
nofralloc
|
|
#include "asm/JSystem/JAudio2/JAISeqMgr/freeDeadSeq___9JAISeqMgrFv.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 802A1AF4-802A1B48 29C434 0054+00 3/3 1/1 0/0 .text __dt__19JASMemPool<6JAISeq>Fv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm void func_802A1AF4(void* _this) {
|
|
nofralloc
|
|
#include "asm/JSystem/JAudio2/JAISeqMgr/func_802A1AF4.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802A1B48-802A1C90 29C488 0148+00 0/0 1/1 0/0 .text
|
|
* startSound__9JAISeqMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */
|
|
bool JAISeqMgr::startSound(JAISoundID param_1, JAISoundHandle* param_2,
|
|
JGeometry::TVec3<f32> const* param_3) {
|
|
if (param_2 != NULL && *param_2) {
|
|
(*param_2)->stop();
|
|
}
|
|
JAISoundInfo* soundInfo = JASGlobalInstance<JAISoundInfo>::getInstance();
|
|
int category = (soundInfo != NULL) ? soundInfo->getCategory(param_1) : -1;
|
|
JAISeqData aJStack_38(NULL, 0);
|
|
JUT_ASSERT(81, seqDataMgr_);
|
|
if (seqDataMgr_->getSeqData(param_1, &aJStack_38) == JAISeqDataMgr::SeqDataReturnValue_0) {
|
|
return false;
|
|
}
|
|
JAISeq* jaiSeq = beginStartSeq_();
|
|
if (jaiSeq != NULL) {
|
|
jaiSeq->JAISeqMgr_startID_(param_1, param_3, mAudience, category, field_0x70);
|
|
if (endStartSeq_(jaiSeq, param_2) != 0) {
|
|
if (soundInfo != NULL) {
|
|
soundInfo->getSeqInfo(param_1, jaiSeq);
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/* 802A1C90-802A1DFC 29C5D0 016C+00 0/0 4/4 0/0 .text calc__9JAISeqMgrFv */
|
|
void JAISeqMgr::calc() {
|
|
mMove.calc();
|
|
for (JSULink<JAISeq>* link = mSeqList.getFirst(); link != NULL; link = link->getNext()) {
|
|
link->getObject()->JAISeqMgr_calc_();
|
|
}
|
|
freeDeadSeq_();
|
|
}
|
|
|
|
/* 802A1DFC-802A1E3C 29C73C 0040+00 0/0 1/1 0/0 .text stop__9JAISeqMgrFv */
|
|
void JAISeqMgr::stop() {
|
|
for (JSULink<JAISeq>* link = mSeqList.getFirst(); link != NULL; link = link->getNext()) {
|
|
link->getObject()->stop();
|
|
}
|
|
}
|
|
|
|
/* 802A1E3C-802A1E8C 29C77C 0050+00 0/0 1/1 0/0 .text stop__9JAISeqMgrFUl */
|
|
void JAISeqMgr::stop(u32 param_0) {
|
|
for (JSULink<JAISeq>* link = mSeqList.getFirst(); link != NULL; link = link->getNext()) {
|
|
link->getObject()->stop(param_0);
|
|
}
|
|
}
|
|
|
|
/* 802A1E8C-802A1EFC 29C7CC 0070+00 0/0 1/1 0/0 .text stopSoundID__9JAISeqMgrF10JAISoundID */
|
|
void JAISeqMgr::stopSoundID(JAISoundID param_1) {
|
|
if (!param_1.isAnonymous()) {
|
|
for (JSULink<JAISeq>* link = mSeqList.getFirst(); link != NULL; link = link->getNext()) {
|
|
if ((u32)link->getObject()->getID() == (u32)param_1) {
|
|
link->getObject()->stop();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 802A1EFC-802A1F58 29C83C 005C+00 0/0 4/4 0/0 .text mixOut__9JAISeqMgrFv */
|
|
void JAISeqMgr::mixOut() {
|
|
for (JSULink<JAISeq>* link = mSeqList.getFirst(); link != NULL; link = link->getNext()) {
|
|
link->getObject()->JAISeqMgr_mixOut_(mMove.mParams, mActivity);
|
|
}
|
|
}
|
|
|
|
/* 802A1F58-802A1FE8 29C898 0090+00 1/1 0/0 0/0 .text beginStartSeq___9JAISeqMgrFv */
|
|
// Matches with JASPoolAllocObject stuff
|
|
#ifdef NONMATCHING
|
|
JAISeq* JAISeqMgr::beginStartSeq_() {
|
|
JAISeq* seq = new JAISeq(this, field_0x10);
|
|
if (seq == NULL) {
|
|
JUT_WARN(273, "JASPoolAllocObject::<JAISeq>::operator new failed .\n");
|
|
}
|
|
return seq;
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm JAISeq* JAISeqMgr::beginStartSeq_() {
|
|
nofralloc
|
|
#include "asm/JSystem/JAudio2/JAISeqMgr/beginStartSeq___9JAISeqMgrFv.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 802A1FE8-802A20F0 29C928 0108+00 1/1 0/0 0/0 .text
|
|
* endStartSeq___9JAISeqMgrFP6JAISeqP14JAISoundHandle */
|
|
// Matches with JASPoolAllocObject stuff
|
|
#ifdef NONMATCHING
|
|
bool JAISeqMgr::endStartSeq_(JAISeq* param_1, JAISoundHandle* param_2) {
|
|
JAISeq* sound = param_1->getObject();
|
|
if (sound != NULL) {
|
|
if (sound->status_.isAlive()) {
|
|
mSeqList.append(param_1);
|
|
if (param_2 != NULL) {
|
|
sound->attachHandle(param_2);
|
|
}
|
|
return true;
|
|
}
|
|
delete sound;
|
|
}
|
|
return false;
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm bool JAISeqMgr::endStartSeq_(JAISeq* param_0, JAISoundHandle* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/JAudio2/JAISeqMgr/endStartSeq___9JAISeqMgrFP6JAISeqP14JAISoundHandle.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 802A20F0-802A2184 29CA30 0094+00 1/0 0/0 0/0 .text __dt__9JAISeqMgrFv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm void __dt__9JAISeqMgrFv() {
|
|
// asm JAISeqMgr::~JAISeqMgr() {
|
|
nofralloc
|
|
#include "asm/JSystem/JAudio2/JAISeqMgr/__dt__9JAISeqMgrFv.s"
|
|
}
|
|
#pragma pop
|