mirror of
https://github.com/zeldaret/tp
synced 2026-07-09 06:53:23 -04:00
work on Z2SoundMgr and Z2SeMgr (#2055)
This commit is contained in:
@@ -464,7 +464,7 @@ void JAISeMgr::mixOut() {
|
||||
|
||||
/* 802A0768-802A08D0 29B0A8 0168+00 0/0 1/1 0/0 .text
|
||||
* startSound__8JAISeMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */
|
||||
int JAISeMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
|
||||
bool JAISeMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
|
||||
JGeometry::TVec3<f32> const* param_2) {
|
||||
if (param_1 && param_1->isSoundAttached()) {
|
||||
param_1->getSound()->stop();
|
||||
@@ -483,7 +483,7 @@ int JAISeMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
|
||||
JAISe* pJAISe = newSe_(categoryIndex, uVar4);
|
||||
if (pJAISe == NULL) {
|
||||
JASReport("cannot new Se %08x.", param_0.mId.mFullId);
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
JAIAudience* pAudience = getAudience(categoryIndex);
|
||||
pJAISe->JAISeMgr_startID_(param_0, param_2, pAudience);
|
||||
@@ -493,7 +493,7 @@ int JAISeMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
|
||||
if (param_1 != NULL) {
|
||||
pJAISe->attachHandle(param_1);
|
||||
}
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 802A08D0-802A08FC 29B210 002C+00 0/0 2/2 0/0 .text getNumActiveSe__8JAISeMgrCFv */
|
||||
|
||||
@@ -185,7 +185,7 @@ extern "C" asm void func_802A1AF4(void* _this) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int JAISeqMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
|
||||
asm bool JAISeqMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
|
||||
JGeometry::TVec3<f32> const* param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeqMgr/func_802A1B48.s"
|
||||
|
||||
@@ -107,7 +107,7 @@ asm JAIStreamMgr::JAIStreamMgr(bool param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int JAIStreamMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
|
||||
asm bool JAIStreamMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
|
||||
JGeometry::TVec3<f32> const* param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAIStreamMgr/func_802A3C3C.s"
|
||||
|
||||
@@ -318,7 +318,7 @@ JAUSection::JAUSection(JAUSectionHeap* param_0, u32 param_1, s32 param_2) : JSUL
|
||||
field_0x2c = 1;
|
||||
data_.field_0x98 = param_2;
|
||||
if (this != sectionHeap_) {
|
||||
data_.field_0x00.setSeqDataArchive(sectionHeap_->sectionHeapData_.field_0x408.getSeqDataArchive());
|
||||
data_.field_0x00.setSeqDataArchive(sectionHeap_->sectionHeapData_.seqDataBlocks.getSeqDataArchive());
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -773,7 +773,7 @@ JAUSectionHeap::TSectionHeapData::TSectionHeapData() {
|
||||
/* 802A5E60-802A5EC0 2A07A0 0060+00 0/0 1/1 0/0 .text
|
||||
* setSeqDataArchive__14JAUSectionHeapFP10JKRArchive */
|
||||
void JAUSectionHeap::setSeqDataArchive(JKRArchive* param_0) {
|
||||
sectionHeapData_.field_0x408.setSeqDataArchive(param_0);
|
||||
sectionHeapData_.seqDataBlocks.setSeqDataArchive(param_0);
|
||||
for (JSULink<JAUSection>* link = mSectionList.getFirst(); link; link = link->getNext()) {
|
||||
link->getObject()->data_.field_0x00.setSeqDataArchive(param_0);
|
||||
}
|
||||
@@ -782,13 +782,13 @@ void JAUSectionHeap::setSeqDataArchive(JKRArchive* param_0) {
|
||||
/* 802A5EC0-802A5EF8 2A0800 0038+00 0/0 1/1 0/0 .text
|
||||
* loadDynamicSeq__14JAUSectionHeapF10JAISoundIDb */
|
||||
bool JAUSectionHeap::loadDynamicSeq(JAISoundID param_0, bool param_1) {
|
||||
return sectionHeapData_.field_0x408.loadDynamicSeq(param_0, param_1, sectionHeapData_.seqDataUser);
|
||||
return sectionHeapData_.seqDataBlocks.loadDynamicSeq(param_0, param_1, sectionHeapData_.seqDataUser);
|
||||
}
|
||||
|
||||
/* 802A5EF8-802A5F24 2A0838 002C+00 0/0 1/1 0/0 .text
|
||||
* releaseIdleDynamicSeqDataBlock__14JAUSectionHeapFv */
|
||||
void JAUSectionHeap::releaseIdleDynamicSeqDataBlock() {
|
||||
sectionHeapData_.field_0x408.releaseIdleDynamicSeqDataBlock(sectionHeapData_.seqDataUser);
|
||||
sectionHeapData_.seqDataBlocks.releaseIdleDynamicSeqDataBlock(sectionHeapData_.seqDataUser);
|
||||
}
|
||||
|
||||
namespace {
|
||||
@@ -865,7 +865,7 @@ bool JAUSectionHeap::newDynamicSeqBlock(u32 size) {
|
||||
seqDataBlock->field_0x14.size = size;
|
||||
seqDataBlock->field_0x10.setAnonymous();
|
||||
JASCriticalSection cs;
|
||||
if (base1.sectionHeap_->sectionHeapData_.field_0x408.appendDynamicSeqDataBlock(seqDataBlock)) {
|
||||
if (base1.sectionHeap_->sectionHeapData_.seqDataBlocks.appendDynamicSeqDataBlock(seqDataBlock)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -881,7 +881,7 @@ s32 JAUSectionHeap::getSeqData(JAISoundID param_0, JAISeqData* param_1) {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
return sectionHeapData_.field_0x408.getSeqData(param_0, sectionHeapData_.seqDataUser, param_1, true);
|
||||
return sectionHeapData_.seqDataBlocks.getSeqData(param_0, sectionHeapData_.seqDataUser, param_1, true);
|
||||
}
|
||||
|
||||
/* 802A6270-802A6278 2A0BB0 0008+00 2/1 0/0 0/0 .text releaseSeqData__14JAUSectionHeapFv
|
||||
|
||||
@@ -20,7 +20,7 @@ u8* JAUSeqDataBlocks::getSeqData(JAISoundID param_0) {
|
||||
if ((u32)param_0 == 0xffffffff) {
|
||||
return NULL;
|
||||
}
|
||||
for (JSULink<JAUSeqDataBlock>* link = field_0x0.getFirst(); link != NULL;
|
||||
for (JSULink<JAUSeqDataBlock>* link = getFirst(); link != NULL;
|
||||
link = link->getNext())
|
||||
{
|
||||
if ((u32)link->getObject()->field_0x10 == (u32)param_0) {
|
||||
@@ -34,7 +34,7 @@ u8* JAUSeqDataBlocks::getSeqData(JAISoundID param_0) {
|
||||
JSULink<JAUSeqDataBlock>* JAUSeqDataBlocks::seekFreeBlock(u32 size) {
|
||||
u32 currentBlockSize = 0xffffffff;
|
||||
JSULink<JAUSeqDataBlock>* rv = NULL;
|
||||
for (JSULink<JAUSeqDataBlock>* link = field_0x0.getFirst(); link != NULL; link = link->getNext())
|
||||
for (JSULink<JAUSeqDataBlock>* link = getFirst(); link != NULL; link = link->getNext())
|
||||
{
|
||||
if (link->getObject()->field_0x10.isAnonymous()) {
|
||||
u32 blockSize = link->getObject()->field_0x14.size;
|
||||
@@ -53,20 +53,20 @@ JSULink<JAUSeqDataBlock>* JAUSeqDataBlocks::seekFreeBlock(u32 size) {
|
||||
/* 802A69D8-802A69F8 2A1318 0020+00 5/5 0/0 0/0 .text
|
||||
* append__16JAUSeqDataBlocksFP26JSULink<15JAUSeqDataBlock> */
|
||||
bool JAUSeqDataBlocks::append(JSULink<JAUSeqDataBlock>* param_0) {
|
||||
return field_0x0.append(param_0);
|
||||
return JSUList::append(param_0);
|
||||
}
|
||||
|
||||
/* 802A69F8-802A6A18 2A1338 0020+00 4/4 0/0 0/0 .text
|
||||
* remove__16JAUSeqDataBlocksFP26JSULink<15JAUSeqDataBlock> */
|
||||
bool JAUSeqDataBlocks::remove(JSULink<JAUSeqDataBlock>* param_0) {
|
||||
return field_0x0.remove(param_0);
|
||||
return JSUList::remove(param_0);
|
||||
}
|
||||
|
||||
/* 802A6A18-802A6A58 2A1358 0040+00 1/1 0/0 0/0 .text
|
||||
* hasFailedBlock__16JAUSeqDataBlocksF10JAISoundID */
|
||||
bool JAUSeqDataBlocks::hasFailedBlock(JAISoundID param_0) {
|
||||
JSULink<JAUSeqDataBlock>* rv = NULL;
|
||||
for (JSULink<JAUSeqDataBlock>* link = field_0x0.getFirst(); link != NULL; link = link->getNext())
|
||||
for (JSULink<JAUSeqDataBlock>* link = getFirst(); link != NULL; link = link->getNext())
|
||||
{
|
||||
if (link->getObject()->field_0x10 == param_0) {
|
||||
link->getObject()->field_0x10.setAnonymous();
|
||||
@@ -93,7 +93,7 @@ void JAUDynamicSeqDataBlocks::setSeqDataArchive(JKRArchive* param_0) {
|
||||
s32 JAUDynamicSeqDataBlocks::getSeqData(JAISoundID param_0, JAISeqDataUser* param_1,
|
||||
JAISeqData* param_2, bool param_3) {
|
||||
rearrangeLoadingSeqs_();
|
||||
if (field_0x0.hasFailedBlock(param_0)) {
|
||||
if (mFreeBlocks.hasFailedBlock(param_0)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ s32 JAUDynamicSeqDataBlocks::getSeqData(JAISoundID param_0, JAISeqDataUser* para
|
||||
return 1;
|
||||
}
|
||||
|
||||
u8* seqData = field_0x18.getSeqData(param_0);
|
||||
u8* seqData = mLoadedBlocks.getSeqData(param_0);
|
||||
if (seqData != NULL) {
|
||||
param_2->field_0x0 = seqData;
|
||||
param_2->field_0x4 = 0;
|
||||
@@ -119,9 +119,9 @@ s32 JAUDynamicSeqDataBlocks::getSeqData(JAISoundID param_0, JAISeqDataUser* para
|
||||
bool JAUDynamicSeqDataBlocks::appendDynamicSeqDataBlock(JAUSeqDataBlock* seqDataBlock) {
|
||||
rearrangeLoadingSeqs_();
|
||||
if (seqDataBlock->field_0x10.isAnonymous()) {
|
||||
field_0x0.append(&seqDataBlock->field_0x0);
|
||||
mFreeBlocks.append(&seqDataBlock->field_0x0);
|
||||
} else {
|
||||
field_0x18.append(&seqDataBlock->field_0x0);
|
||||
mLoadedBlocks.append(&seqDataBlock->field_0x0);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@@ -150,7 +150,7 @@ bool JAUDynamicSeqDataBlocks::loadDynamicSeq(JAISoundID param_0, bool param_1,
|
||||
}
|
||||
u16 resourceId = soundInfo->getBgmSeqResourceID(param_0);
|
||||
size_t resSize = JASResArcLoader::getResSize(seqDataArchive_, resourceId);
|
||||
JSULink<JAUSeqDataBlock>* link = field_0x0.seekFreeBlock(resSize);
|
||||
JSULink<JAUSeqDataBlock>* link = mFreeBlocks.seekFreeBlock(resSize);
|
||||
if (link == NULL) {
|
||||
if (param_1) {
|
||||
link = &releaseIdleDynamicSeqDataBlock_(param_2, resSize)->field_0x0;
|
||||
@@ -161,7 +161,7 @@ bool JAUDynamicSeqDataBlocks::loadDynamicSeq(JAISoundID param_0, bool param_1,
|
||||
return false;
|
||||
}
|
||||
}
|
||||
field_0x0.remove(link);
|
||||
mFreeBlocks.remove(link);
|
||||
JAUSeqDataBlock* seqDataBlock = link->getObject();
|
||||
seqDataBlock->field_0x10 = param_0;
|
||||
link->getObject()->field_0x1c = 1;
|
||||
@@ -179,17 +179,17 @@ u32 JAUDynamicSeqDataBlocks::releaseIdleDynamicSeqDataBlock(JAISeqDataUser* para
|
||||
rearrangeLoadingSeqs_();
|
||||
u32 size = 0;
|
||||
JSULink<JAUSeqDataBlock>* nextLink;
|
||||
for (JSULink<JAUSeqDataBlock>* link = field_0x18.field_0x0.getFirst(); link != NULL; ) {
|
||||
for (JSULink<JAUSeqDataBlock>* link = mLoadedBlocks.getFirst(); link != NULL; ) {
|
||||
nextLink = link->getNext();
|
||||
JAUSeqDataBlock* seqDataBlock = link->getObject();
|
||||
if (param_0 == NULL || !param_0->isUsingSeqData(seqDataBlock->field_0x14)) {
|
||||
field_0x18.remove(link);
|
||||
mLoadedBlocks.remove(link);
|
||||
JAUSeqDataBlock* seqDataBlock = link->getObject();
|
||||
link->getObject()->field_0x10.setAnonymous();
|
||||
if (size < seqDataBlock->field_0x14.size) {
|
||||
size = seqDataBlock->field_0x14.size;
|
||||
}
|
||||
field_0x0.append(link);
|
||||
mFreeBlocks.append(link);
|
||||
}
|
||||
link = nextLink;
|
||||
}
|
||||
@@ -203,7 +203,7 @@ JAUDynamicSeqDataBlocks::releaseIdleDynamicSeqDataBlock_(JAISeqDataUser* param_0
|
||||
rearrangeLoadingSeqs_();
|
||||
u32 minSize = 0xffffffff;
|
||||
JSULink<JAUSeqDataBlock>* foundBlock = NULL;
|
||||
JSULink<JAUSeqDataBlock>* link = field_0x18.field_0x0.getFirst();
|
||||
JSULink<JAUSeqDataBlock>* link = mLoadedBlocks.getFirst();
|
||||
JSULink<JAUSeqDataBlock>* nextLink;
|
||||
while (link != NULL) {
|
||||
nextLink = link->getNext();
|
||||
@@ -218,10 +218,10 @@ JAUDynamicSeqDataBlocks::releaseIdleDynamicSeqDataBlock_(JAISeqDataUser* param_0
|
||||
link = nextLink;
|
||||
}
|
||||
if (foundBlock != NULL) {
|
||||
field_0x18.remove(foundBlock);
|
||||
mLoadedBlocks.remove(foundBlock);
|
||||
JAUSeqDataBlock* seqDataBlock = foundBlock->getObject();
|
||||
seqDataBlock->field_0x10.setAnonymous();
|
||||
field_0x0.append(foundBlock);
|
||||
mFreeBlocks.append(foundBlock);
|
||||
return foundBlock->getObject();
|
||||
}
|
||||
return NULL;
|
||||
@@ -230,17 +230,17 @@ JAUDynamicSeqDataBlocks::releaseIdleDynamicSeqDataBlock_(JAISeqDataUser* param_0
|
||||
/* 802A6EDC-802A6F70 2A181C 0094+00 4/4 0/0 0/0 .text
|
||||
* rearrangeLoadingSeqs___23JAUDynamicSeqDataBlocksFv */
|
||||
void JAUDynamicSeqDataBlocks::rearrangeLoadingSeqs_() {
|
||||
JSULink<JAUSeqDataBlock>* link = field_0xc.field_0x0.getFirst();
|
||||
JSULink<JAUSeqDataBlock>* link = field_0xc.getFirst();
|
||||
JSULink<JAUSeqDataBlock>* nextLink;
|
||||
while (link != NULL) {
|
||||
nextLink = link->getNext();
|
||||
JAUSeqDataBlock* seqDataBlock = link->getObject();
|
||||
if (seqDataBlock->field_0x1c == 0) {
|
||||
field_0xc.remove(link);
|
||||
field_0x0.append(link);
|
||||
mFreeBlocks.append(link);
|
||||
} else if (seqDataBlock->field_0x1c == 2) {
|
||||
field_0xc.remove(link);
|
||||
field_0x18.append(link);
|
||||
mLoadedBlocks.append(link);
|
||||
}
|
||||
link = nextLink;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user