mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 23:05:36 -04:00
160 lines
5.3 KiB
C++
160 lines
5.3 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: JAISeqMgr
|
|
//
|
|
|
|
#include "JSystem/JSystem.h" // IWYU pragma: keep
|
|
|
|
#include "JSystem/JAudio2/JAISeqMgr.h"
|
|
#include "JSystem/JAudio2/JAISeq.h"
|
|
#include "JSystem/JAudio2/JAISoundHandles.h"
|
|
#include "JSystem/JAudio2/JAISoundInfo.h"
|
|
|
|
/* 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;
|
|
}
|
|
|
|
/* 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();
|
|
}
|
|
|
|
/* 802A1A08-802A1AF4 29C348 00EC+00 1/1 0/0 0/0 .text freeDeadSeq___9JAISeqMgrFv */
|
|
void JAISeqMgr::freeDeadSeq_() {
|
|
JSULink<JAISeq>* link = mSeqList.getFirst();
|
|
while (link != NULL) {
|
|
JAISeq* seq = link->getObject();
|
|
JSULink<JAISeq>* next = link->getNext();
|
|
if (seq->status_.isDead()) {
|
|
mSeqList.remove(link);
|
|
delete seq;
|
|
}
|
|
link = next;
|
|
}
|
|
}
|
|
|
|
/* 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 */
|
|
JAISeq* JAISeqMgr::beginStartSeq_() {
|
|
JAISeq* seq = new JAISeq(this, field_0x10);
|
|
if (seq == NULL) {
|
|
JUT_WARN(273, "JASPoolAllocObject::<JAISeq>::operator new failed .\n");
|
|
}
|
|
return seq;
|
|
}
|
|
|
|
/* 802A1FE8-802A20F0 29C928 0108+00 1/1 0/0 0/0 .text
|
|
* endStartSeq___9JAISeqMgrFP6JAISeqP14JAISoundHandle */
|
|
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;
|
|
}
|