Files
tp/src/JSystem/JAudio2/JAISeqMgr.cpp
T
2025-09-11 13:20:45 -07:00

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;
}