switch to dtk setup (#2203)

* switch to dtk setup

* some cleanup / fixes

* cleanup d_a_alink literals

* Restore doxygen, update CI & README.md (#1)

* Fix build image ref (#2)

---------

Co-authored-by: Luke Street <luke@street.dev>
This commit is contained in:
TakaRikka
2024-10-10 07:29:58 -07:00
committed by GitHub
parent 3769ea47a6
commit 178194ccb2
33438 changed files with 370506 additions and 3055930 deletions
File diff suppressed because it is too large Load Diff
+89
View File
@@ -0,0 +1,89 @@
//
// Generated By: dol2asm
// Translation Unit: Z2AudioArcLoader
//
#include "Z2AudioLib/Z2AudioArcLoader.h"
#include "JSystem/JAudio2/JAUSectionHeap.h"
#include "dol2asm.h"
//
// Types:
//
//
// Forward References:
//
extern "C" void __ct__16Z2AudioArcLoaderFP10JAUSection();
extern "C" void readCommandMore__16Z2AudioArcLoaderFUl();
extern "C" void readBFCA__16Z2AudioArcLoaderFPCv();
extern "C" void readBSTN__16Z2AudioArcLoaderFPCvUl();
extern "C" void __dt__16Z2AudioArcLoaderFv();
//
// External References:
//
extern "C" void __dt__22JAUAudioArcInterpreterFv();
extern "C" void __ct__17JAUAudioArcLoaderFP10JAUSection();
extern "C" void readWS__17JAUAudioArcLoaderFUlPCvUl();
extern "C" void readBNK__17JAUAudioArcLoaderFUlPCv();
extern "C" void readBSC__17JAUAudioArcLoaderFPCvUl();
extern "C" void readBST__17JAUAudioArcLoaderFPCvUl();
extern "C" void readBMS__17JAUAudioArcLoaderFUlPCvUl();
extern "C" void readBMS_fromArchive__17JAUAudioArcLoaderFUl();
extern "C" void newVoiceBank__17JAUAudioArcLoaderFUlUl();
extern "C" void newDynamicSeqBlock__17JAUAudioArcLoaderFUl();
extern "C" void readBSFT__17JAUAudioArcLoaderFPCv();
extern "C" void beginBNKList__17JAUAudioArcLoaderFUlUl();
extern "C" void endBNKList__17JAUAudioArcLoaderFv();
extern "C" void readMaxSeCategory__17JAUAudioArcLoaderFiii();
extern "C" void getOpenSection__14JAUSectionHeapFv();
extern "C" void initDataArc__11Z2FxLineMgrFP10JKRArchiveP7JKRHeap();
extern "C" void __dl__FPv();
extern "C" void mount__10JKRArchiveFPvP7JKRHeapQ210JKRArchive15EMountDirection();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__17JAUAudioArcLoader[17 + 1 /* padding */];
extern "C" extern u8 data_80450B40[4];
extern "C" extern u8 data_80450CC0[4 + 4 /* padding */];
extern "C" u8 sCurrentHeap__7JKRHeap[4];
extern "C" extern u8 __OSReport_disable;
/* 802A9A34-802A9A70 2A4374 003C+00 0/0 1/1 0/0 .text __ct__16Z2AudioArcLoaderFP10JAUSection */
Z2AudioArcLoader::Z2AudioArcLoader(JAUSection* param_0) : JAUAudioArcLoader(param_0) {
}
/* 802A9A70-802A9AC8 2A43B0 0058+00 1/0 0/0 0/0 .text readCommandMore__16Z2AudioArcLoaderFUl */
bool Z2AudioArcLoader::readCommandMore(u32 param_0) {
bool rv = false;
switch (param_0) {
case 'bfca':
readBFCA(getContent_(readU32_()));
rv = true;
break;
}
return rv;
}
/* 802A9AC8-802A9B54 2A4408 008C+00 1/1 0/0 0/0 .text readBFCA__16Z2AudioArcLoaderFPCv */
// regalloc and extra stack
#ifdef NONMATCHING
void Z2AudioArcLoader::readBFCA(void const* param_0) {
JAUSectionHeap* sectionHeap = JASGlobalInstance<JAUSectionHeap>::getInstance();
JKRHeap* pJVar1 = sectionHeap->getHeap();
JKRArchive* pJVar5 = JKRArchive::mount((void*)param_0, JKRGetCurrentHeap(), JKRArchive::MOUNT_DIRECTION_TAIL);
Z2GetFxLineMgr()->initDataArc(pJVar5, pJVar1);
JKRUnmountArchive(pJVar5);
}
#else
void Z2AudioArcLoader::readBFCA(void const* param_0) {
// NONMATCHING
}
#endif
/* 802A9B54-802A9B58 2A4494 0004+00 1/0 0/0 0/0 .text readBSTN__16Z2AudioArcLoaderFPCvUl
*/
void Z2AudioArcLoader::readBSTN(void const* param_0, u32 param_1) {
/* empty function */
}
+429
View File
@@ -0,0 +1,429 @@
//
// Generated By: dol2asm
// Translation Unit: Z2AudioMgr
//
#include "Z2AudioLib/Z2AudioMgr.h"
#include "JSystem/JAudio2/JASAiCtrl.h"
#include "JSystem/JAudio2/JASDriverIF.h"
#include "Z2AudioLib/Z2AudioArcLoader.h"
#include "Z2AudioLib/Z2SoundHandles.h"
#include "stdio.h"
#include "stdlib.h"
#include "dol2asm.h"
#include "dolphin/os.h"
//
// Types:
//
struct Z2Param {
static f32 VOL_BGM_DEFAULT;
static f32 VOL_SE_SYSTEM_DEFAULT;
static f32 VOL_SE_LINK_VOICE_DEFAULT;
static f32 VOL_SE_LINK_MOTION_DEFAULT;
static f32 VOL_SE_LINK_FOOTNOTE_DEFAULT;
static f32 VOL_SE_CHAR_VOICE_DEFAULT;
static f32 VOL_SE_CHAR_MOVE_DEFAULT;
static f32 VOL_SE_OBJECT_DEFAULT;
static f32 VOL_SE_ATMOSPHERE_DEFAULT;
};
//
// Forward References:
//
extern "C" void __ct__10Z2AudioMgrFv();
extern "C" void init__10Z2AudioMgrFP12JKRSolidHeapUlPvP10JKRArchive();
extern "C" void func_802CD7F8(void* _this);
extern "C" void setOutputMode__10Z2AudioMgrFUl();
extern "C" void zeldaGFrameWork__10Z2AudioMgrFv();
extern "C" void gframeProcess__10Z2AudioMgrFv();
extern "C" void resetProcess__10Z2AudioMgrFUlb();
extern "C" void resetRecover__10Z2AudioMgrFv();
extern "C" void hasReset__10Z2AudioMgrCFv();
extern "C" void func_802CDB1C();
extern "C" void func_802CDB68(void* _this);
extern "C" void func_802CDC08(void* _this, u32);
extern "C" void func_802CDCEC(void* _this, u32*);
extern "C" extern char const* const Z2AudioMgr__stringBase0;
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
// External References:
//
extern "C" void alloc__7JASHeapFP7JASHeapUl();
extern "C" void free__7JASHeapFv();
extern "C" void __ct__17JASGenericMemPoolFv();
extern "C" void newMemPool__17JASGenericMemPoolFUli();
extern "C" void getAramHeap__9JASKernelFv();
extern "C" void __dt__7JASHeapFv();
extern "C" void getResMaxSize__15JASResArcLoaderFPC10JKRArchive();
extern "C" void getSubFrames__9JASDriverFv();
extern "C" void __ct__15JASAudioReseterFv();
extern "C" void start__15JASAudioReseterFUlb();
extern "C" void resume__15JASAudioReseterFv();
extern "C" void checkDone__15JASAudioReseterCFv();
extern "C" void setOutputMode__9JASDriverFUl();
extern "C" void setCategoryArrangement__8JAISeMgrFRC24JAISeCategoryArrangement();
extern "C" void setAudience__8JAISeMgrFP11JAIAudience();
extern "C" void setSeqDataMgr__8JAISeMgrFP13JAISeqDataMgr();
extern "C" void getNumActiveSe__8JAISeMgrCFv();
extern "C" void __ct__12JAISoundInfoFb();
extern "C" void moveVolume__18JAISoundParamsMoveFfUl();
extern "C" void __dt__16JAIStreamAramMgrFv();
extern "C" void __dt__22JAUAudioArcInterpreterFv();
extern "C" void load__17JAUAudioArcLoaderFPCv();
extern "C" void __defctor__7JASHeapFv();
extern "C" void __ct__18JAU_JASInitializerFv();
extern "C" void initJASystem__18JAU_JASInitializerFP12JKRSolidHeap();
extern "C" void __ct__18JAU_JAIInitializerFv();
extern "C" void initJAInterface__18JAU_JAIInitializerFv();
extern "C" void finishBuild__10JAUSectionFv();
extern "C" void setSeqDataArchive__14JAUSectionHeapFP10JKRArchive();
extern "C" void JAUNewSectionHeap__Fb();
extern "C" void newDynamicSeqBlock__14JAUSectionHeapFUl();
extern "C" void __ct__16Z2AudioArcLoaderFP10JAUSection();
extern "C" void seqCallback__FP8JASTrackUs();
extern "C" void __ct__10Z2SoundMgrFv();
extern "C" void framework__10Z2SoundMgrFv();
extern "C" void stopSync__10Z2SoundMgrFv();
extern "C" void initParams__10Z2SoundMgrFv();
extern "C" void __ct__14Z2SoundStarterFb();
extern "C" void func_802AB200(void* _this);
extern "C" void __ct__7Z2SeMgrFv();
extern "C" void initSe__7Z2SeMgrFv();
extern "C" void processSeFramework__7Z2SeMgrFv();
extern "C" void __ct__8Z2SeqMgrFv();
extern "C" void processBgmFramework__8Z2SeqMgrFv();
extern "C" void __ct__11Z2StatusMgrFv();
extern "C" void processHeartGaugeSound__11Z2StatusMgrFv();
extern "C" void menuOut__11Z2StatusMgrFv();
extern "C" void processTime__11Z2StatusMgrFv();
extern "C" void __ct__10Z2SceneMgrFv();
extern "C" void framework__10Z2SceneMgrFv();
extern "C" void __ct__11Z2FxLineMgrFv();
extern "C" void __ct__10Z2AudienceFv();
extern "C" void func_802BD288(void* _this);
extern "C" void __ct__13Z2SoundObjMgrFv();
extern "C" void __ct__12Z2SpeechMgr2Fv();
extern "C" void framework__12Z2SpeechMgr2Fv();
extern "C" void* __nw__FUlP7JKRHeapi();
extern "C" void __dl__FPv();
extern "C" void __register_global_object();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void _savegpr_24();
extern "C" void _savegpr_25();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_24();
extern "C" void _restgpr_25();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__12JAUSoundInfo[4 + 1 /* padding */];
extern "C" extern void* __vt__16JAIStreamAramMgr[5];
extern "C" extern void* __vt__16JAIStreamDataMgr[4 + 1 /* padding */];
extern "C" extern void* __vt__17JAUAudioArcLoader[17 + 1 /* padding */];
extern "C" extern void* __vt__16Z2AudioArcLoader[17 + 1 /* padding */];
extern "C" extern void* __vt__11Z2SoundInfo[20];
extern "C" extern u8 data_804341C4[16 + 4 /* padding */];
extern "C" extern u8 data_804341E4[16 + 4 /* padding */];
extern "C" f32 VOL_BGM_DEFAULT__7Z2Param;
extern "C" f32 VOL_SE_SYSTEM_DEFAULT__7Z2Param;
extern "C" f32 VOL_SE_LINK_VOICE_DEFAULT__7Z2Param;
extern "C" f32 VOL_SE_LINK_MOTION_DEFAULT__7Z2Param;
extern "C" f32 VOL_SE_LINK_FOOTNOTE_DEFAULT__7Z2Param;
extern "C" f32 VOL_SE_CHAR_VOICE_DEFAULT__7Z2Param;
extern "C" f32 VOL_SE_CHAR_MOVE_DEFAULT__7Z2Param;
extern "C" f32 VOL_SE_OBJECT_DEFAULT__7Z2Param;
extern "C" f32 VOL_SE_ATMOSPHERE_DEFAULT__7Z2Param;
extern "C" extern u8 data_80450B4C[4];
extern "C" extern u8 data_80450B50[4];
extern "C" u8 sCallBackFunc__12JASSeqParser[4];
extern "C" u8 sBlockSize__13JASAramStream[4];
extern "C" extern u8 data_80451348[8];
extern "C" extern u8 data_80451354[4];
//
// Declarations:
//
/* ############################################################################################## */
/* 803CBF38-803CBF44 029058 000C+00 1/1 1/1 0/0 .data __vt__10Z2AudioMgr */
SECTION_DATA extern void* __vt__10Z2AudioMgr[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)func_802CDB1C,
};
/* 80451368-80451370 000868 0004+04 1/1 251/251 900/900 .sbss mAudioMgrPtr__10Z2AudioMgr
*/
Z2AudioMgr* Z2AudioMgr::mAudioMgrPtr;
/* 802CD248-802CD34C 2C7B88 0104+00 0/0 1/1 0/0 .text __ct__10Z2AudioMgrFv */
// wild destructors appeared!
#ifdef NONMATCHING
Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) {
mAudioMgrPtr = this;
mResettingFlag = false;
field_0x519 = false;
}
#else
Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) {
// NONMATCHING
}
#endif
/* ############################################################################################## */
/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8039CA58 = "Audiores/Waves/";
SECTION_DEAD static char const* const stringBase_8039CA68 = "index out of range of bitset::reset";
#pragma pop
/* 803CBF44-803CBF58 029064 0014+00 2/2 0/0 0/0 .data __vt__26JAUStreamStaticAramMgr_<1>
*/
SECTION_DATA extern void* data_803CBF44[5] = {
(void*)NULL /* RTTI */, (void*)NULL, (void*)func_802CDCEC,
(void*)func_802CDC08, (void*)func_802CDB68,
};
/* 803CBF58-803CBF70 029078 0014+04 3/3 0/0 0/0 .data __vt__24JAUStreamAramMgrBase_<1> */
SECTION_DATA extern void* data_803CBF58[5 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)func_802CD7F8,
/* padding */
NULL,
};
/* 80434268-80434274 060F88 000C+00 1/1 0/0 0/0 .bss @3779 */
static u8 lit_3779[12];
/* 80434274-80434280 060F94 000C+00 1/1 0/0 0/0 .bss @3783 */
static u8 lit_3783[12];
/* 80455F58-80455F5C 004558 0004+00 1/1 0/0 0/0 .sdata2 @3931 */
SECTION_SDATA2 static f32 lit_3931 = 13.0f / 10.0f;
/* 80455F5C-80455F60 00455C 0004+00 2/2 0/0 0/0 .sdata2 @3932 */
SECTION_SDATA2 static f32 lit_3932 = 1.0f;
/* 802CD34C-802CD7F8 2C7C8C 04AC+00 0/0 1/1 0/0 .text
* init__10Z2AudioMgrFP12JKRSolidHeapUlPvP10JKRArchive */
// JAUSectionHeap inheritance
#ifdef NONMATCHING
void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArchive* param_3) {
JAU_JASInitializer stack_60;
stack_60.field_0x1c = 0x8c;
stack_60.field_0x2c = 1.3f;
stack_60.field_0x30 = "Audiores/Waves/";
stack_60.field_0x04 = param_1;
stack_60.initJASystem(param_0);
JAU_JAIInitializer stack_90;
stack_90.field_0x0 = 0x4e;
stack_90.field_0x4 = 4;
stack_90.field_0xc = 0x30;
stack_90.initJAInterface();
JAISeMgr *seMgr = mSoundMgr.getSeMgr();
JAISeCategoryArrangement stack_80;
stack_80.mItems[0].mMaxActiveSe = 4;
stack_80.mItems[0].mMaxInactiveSe = 2;
stack_80.mItems[1].mMaxActiveSe = 2;
stack_80.mItems[1].mMaxInactiveSe = 1;
stack_80.mItems[2].mMaxActiveSe = 6;
stack_80.mItems[2].mMaxInactiveSe = 3;
stack_80.mItems[3].mMaxActiveSe = 16;
stack_80.mItems[3].mMaxInactiveSe = 8;
stack_80.mItems[4].mMaxActiveSe = 8;
stack_80.mItems[4].mMaxInactiveSe = 4;
stack_80.mItems[5].mMaxActiveSe = 6;
stack_80.mItems[5].mMaxInactiveSe = 3;
stack_80.mItems[6].mMaxActiveSe = 6;
stack_80.mItems[6].mMaxInactiveSe = 3;
stack_80.mItems[7].mMaxActiveSe = 12;
stack_80.mItems[7].mMaxInactiveSe = 8;
stack_80.mItems[8].mMaxActiveSe = 10;
stack_80.mItems[8].mMaxInactiveSe = 5;
stack_80.mItems[9].mMaxActiveSe = 8;
stack_80.mItems[9].mMaxInactiveSe = 4;
stack_80.mItems[10].mMaxActiveSe = 4;
stack_80.mItems[10].mMaxInactiveSe = 2;
seMgr->setCategoryArrangement(stack_80);
seMgr->getCategory(0)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(1)->getParams()->moveVolume(1.0f, 0);
seMgr->getCategory(2)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(3)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(4)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(5)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(6)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(7)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(8)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(9)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(10)->getParams()->moveVolume(1.0f, 0);
seMgr->getParams()->moveVolume(1.0f, 0);
JAISeqMgr* seqMgr = mSoundMgr.getSeqMgr();
seqMgr->getParams()->moveVolume(1.0f, 0);
JAIStreamMgr* streamMgr = mSoundMgr.getStreamMgr();
JAUStreamStaticAramMgr_<1>* streamStaticAramMgr = new(param_0, 0) JAUStreamStaticAramMgr_<1>();
streamStaticAramMgr->reserveAram(NULL, 0, 0x14);
streamMgr->setStreamAramMgr(streamStaticAramMgr);
streamMgr->getParams()->moveVolume(1.0f, 0);
JASPoolAllocObject<Z2Audible>::newMemPool(0x4e);
mSoundMgr.getSeMgr()->setAudience(&mAudience);
mSoundMgr.getSeqMgr()->setAudience(&mAudience);
JASPoolAllocObject<Z2SoundHandlePool>::newMemPool(0x4e);
OSReport("[Z2AudioMgr::init]before Create Section: %d\n", param_0->getFreeSize());
JAUSectionHeap* sectionHeap = JAUNewSectionHeap(true);
sectionHeap->setSeqDataArchive(param_3);
size_t resMaxSize = JASResArcLoader::getResMaxSize(param_3);
sectionHeap->newDynamicSeqBlock(0xe00);
sectionHeap->newDynamicSeqBlock(0x17e0);
sectionHeap->newDynamicSeqBlock(0x5380);
sectionHeap->newDynamicSeqBlock(resMaxSize);
Z2AudioArcLoader stack_a0(sectionHeap);
bool baaLoadResult = stack_a0.load(param_2);
JUT_ASSERT(252, baaLoadResult);
seqMgr->setSeqDataMgr(sectionHeap->getSeqDataMgr());
if (sectionHeap->getStreamDataMgr()) {
streamMgr->setStreamDataMgr(sectionHeap->getStreamDataMgr());
} else {
streamMgr->setStreamDataMgr(&mSoundInfo);
}
sectionHeap->finishBuild();
initSe();
JASSeqParser::registerSeqCallback(seqCallback);
}
#else
void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArchive* param_3) {
// NONMATCHING
}
#endif
/* 802CD7F8-802CD888 2C8138 0090+00 1/0 0/0 0/0 .text __dt__24JAUStreamAramMgrBase_<1>Fv
*/
extern "C" void func_802CD7F8(void* _this) {
// NONMATCHING
}
/* 802CD888-802CD8B4 2C81C8 002C+00 0/0 5/5 0/0 .text setOutputMode__10Z2AudioMgrFUl */
void Z2AudioMgr::setOutputMode(u32 mode) {
if (mode <= 2) {
JASDriver::setOutputMode(mode);
}
}
/* 802CD8B4-802CD904 2C81F4 0050+00 1/1 0/0 0/0 .text zeldaGFrameWork__10Z2AudioMgrFv */
void Z2AudioMgr::zeldaGFrameWork() {
processTime();
mSpeechMgr.framework();
processSeFramework();
processBgmFramework();
processHeartGaugeSound();
}
/* 802CD904-802CD974 2C8244 0070+00 0/0 1/1 0/0 .text gframeProcess__10Z2AudioMgrFv */
void Z2AudioMgr::gframeProcess() {
zeldaGFrameWork();
if (mResettingFlag && mAudioReseter.checkDone()) {
if (!field_0x519) {
mSoundMgr.stopSync();
}
} else {
mSoundMgr.framework();
framework();
}
}
/* 802CD974-802CD9CC 2C82B4 0058+00 0/0 3/3 0/0 .text resetProcess__10Z2AudioMgrFUlb */
void Z2AudioMgr::resetProcess(u32 param_0, bool param_1) {
mAudioReseter.start(param_0 * JASDriver::getSubFrames(), param_1);
field_0x519 = param_1;
mResettingFlag = true;
}
/* ############################################################################################## */
/* 80455F60-80455F68 004560 0004+04 1/1 0/0 0/0 .sdata2 @4035 */
SECTION_SDATA2 static f32 lit_4035[1 + 1 /* padding */] = {
0.0f,
/* padding */
0.0f,
};
/* 802CD9CC-802CDA6C 2C830C 00A0+00 0/0 1/1 0/0 .text resetRecover__10Z2AudioMgrFv */
void Z2AudioMgr::resetRecover() {
mAudioReseter.resume();
mSoundMgr.initParams();
mResettingFlag = false;
setTwilightGateVol(1.0f);
setWindStoneVol(1.0f, 0);
menuOut();
i_bgmAllUnMute(0);
unMuteSceneBgm(0);
}
/* 802CDA6C-802CDB1C 2C83AC 00B0+00 0/0 2/2 0/0 .text hasReset__10Z2AudioMgrCFv */
bool Z2AudioMgr::hasReset() const {
// NONMATCHING
}
/* 802CDB1C-802CDB68 2C845C 004C+00 1/0 1/0 0/0 .text
* startSound__10Z2AudioMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */
// vtable order
#ifdef NONMATCHING
bool Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
JGeometry::TVec3<f32> const* param_2) {
if (mResettingFlag) {
return 0;
}
return mSoundMgr.startSound(param_0, param_1, param_2);
}
#else
// void Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
// JGeometry::TVec3<f32> const* param_2) {
extern "C" void func_802CDB1C() {
// NONMATCHING
}
#endif
/* 802CDB68-802CDC08 2C84A8 00A0+00 1/0 0/0 0/0 .text __dt__26JAUStreamStaticAramMgr_<1>Fv */
extern "C" void func_802CDB68(void* _this) {
// NONMATCHING
}
/* ############################################################################################## */
/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8039CA8C = "index out of range of bitset::test";
#pragma pop
/* 802CDC08-802CDCEC 2C8548 00E4+00 1/0 0/0 0/0 .text
* deleteStreamAram__26JAUStreamStaticAramMgr_<1>FUl */
extern "C" void func_802CDC08(void* _this, u32 param_0) {
// NONMATCHING
}
/* ############################################################################################## */
/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8039CAAF = "index out of range of bitset::set";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_8039CAD1 = "\0\0\0\0\0\0";
#pragma pop
/* 802CDCEC-802CDDC8 2C862C 00DC+00 1/0 0/0 0/0 .text
* newStreamAram__26JAUStreamStaticAramMgr_<1>FPUl */
extern "C" void func_802CDCEC(void* _this, u32* param_0) {
// NONMATCHING
}
/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+142
View File
@@ -0,0 +1,142 @@
//
// Generated By: dol2asm
// Translation Unit: Z2Calc
//
#include "Z2AudioLib/Z2Calc.h"
#include "JSystem/JMath/random.h"
#include "math.h"
#include "dol2asm.h"
//
// Declarations:
//
/* 802A968C-802A96F4 2A3FCC 0068+00 1/1 16/16 0/0 .text linearTransform__6Z2CalcFfffffb
*/
f32 Z2Calc::linearTransform(f32 param1, f32 param2, f32 param3, f32 param4, f32 param5,
bool param6) {
f32 temp;
temp = param4 + (param1 - param2) * ((param5 - param4) / (param3 - param2));
if (param6) {
return temp;
} else if (param4 < param5) {
if (temp > param5) {
return param5;
} else if (temp < param4) {
return param4;
} else {
return temp;
}
} else if (temp > param4) {
return param4;
} else if (temp < param5) {
return param5;
} else {
return temp;
}
}
/* ############################################################################################## */
/* 80455820-80455824 003E20 0004+00 0/0 1/1 0/0 .sdata2 cEqualCSlope__6Z2Calc */
SECTION_SDATA2 f32 Z2Calc::cEqualCSlope = 1.0f;
/* 80455824-80455828 003E24 0004+00 0/0 1/1 0/0 .sdata2 cEqualPSlope__6Z2Calc */
SECTION_SDATA2 f32 Z2Calc::cEqualPSlope = 0.5f;
/* 802A96F4-802A9814 2A4034 0120+00 0/0 29/29 0/0 .text
* getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign */
f32 Z2Calc::getParamByExp(f32 f1, f32 f2, f32 f3, f32 f4, f32 f5, f32 f6, Z2Calc::CurveSign sign) {
f32 out;
if (sign == Z2Calc::CURVE_SIGN_1) {
f32 tmp = exp(Z2Calc::linearTransform(f1, f2, f3, 0.0f, f4, true));
out = Z2Calc::linearTransform(tmp, 1.0f, exp(f4), f5, f6, true);
} else if (sign == Z2Calc::CURVE_SIGN_0) {
f32 tmp = exp(Z2Calc::linearTransform(f1, f2, f3, f4, 0.0f, true));
out = Z2Calc::linearTransform(tmp, exp(f4), 1.0f, f5, f6, true);
} else {
out = Z2Calc::linearTransform(f1, f2, f3, f5, f6, false);
}
if (out > f6) {
return f6;
}
if (out < f5) {
return f5;
}
return out;
}
/* 802A9814-802A98D4 2A4154 00C0+00 0/0 2/2 0/0 .text getRandom__6Z2CalcFfff */
f32 Z2Calc::getRandom(f32 f1, f32 f2, f32 f3) {
f32 tmp = 2.0f * f3;
f32 tmp2 = (1.0f - f3) * -2.0f;
f1 *= Z2Calc::getRandom_0_1() < f3 ? tmp : tmp2;
f32 tmp3 = pow(Z2Calc::getRandom_0_1(), f2);
return tmp3 * f1;
}
/* 802A98D4-802A9944 2A4214 0070+00 1/1 1/1 0/0 .text getRandom_0_1__6Z2CalcFv */
f32 Z2Calc::getRandom_0_1(void) {
static JMath::TRandom_fast_ oRandom(0);
return oRandom.get_ufloat_1();
}
/* 802A9944-802A9958 2A4284 0014+00 0/0 1/1 0/0 .text setParam__Q26Z2Calc8FNoise1fFfff */
void Z2Calc::FNoise1f::setParam(f32 param1, f32 param2, f32 param3) {
this->unk0 = param1;
this->unk4 = param1;
this->unk12 = param2;
this->unk8 = param3;
}
/* 802A9958-802A99A0 2A4298 0048+00 1/1 0/0 0/0 .text tau__Q26Z2Calc8FNoise1fFf */
f32 Z2Calc::FNoise1f::tau(f32 param1) {
f32 temp1;
f32 temp2;
temp1 = param1;
temp2 = temp1 + (temp1 * temp1);
if (temp2 > 1.0f) {
temp2 = temp2 - 1.0f;
if (temp1 < this->unk12) {
temp2 = temp2 + this->unk12;
}
return temp2;
} else if (temp1 < this->unk12) {
temp2 = temp2 + this->unk12;
}
return temp2;
}
/* 802A99A0-802A9A34 2A42E0 0094+00 0/0 5/5 0/0 .text calcNoise1f__Q26Z2Calc8FNoise1fFv
*/
f32 Z2Calc::FNoise1f::calcNoise1f(void) {
f32 temp1;
f32 temp2;
temp1 = this->unk0;
if (this->unk0 < this->unk4) {
this->unk0 = temp1 + this->unk8;
if (this->unk0 < this->unk4) {
return this->unk0;
}
} else {
this->unk0 = temp1 - this->unk8;
if (this->unk0 > this->unk4) {
return this->unk0;
}
}
this->unk0 = this->unk4;
temp2 = tau(this->unk0);
this->unk4 = temp2;
return this->unk0;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+183
View File
@@ -0,0 +1,183 @@
//
// Generated By: dol2asm
// Translation Unit: Z2FxLineMgr
//
#include "Z2AudioLib/Z2FxLineMgr.h"
#include "dol2asm.h"
//
// Types:
//
struct JSUMemoryInputStream {
/* 802DC520 */ void setBuffer(void const*, s32);
};
struct JSUInputStream {
/* 802DC23C */ ~JSUInputStream();
/* 802DC298 */ void read(void*, s32);
};
struct JASDsp {
struct FxlineConfig_ {};
/* 8029DB78 */ void setFXLine(u8, s16*, JASDsp::FxlineConfig_*);
};
//
// Forward References:
//
extern "C" void __ct__11Z2FxLineMgrFv();
extern "C" void initDataArc__11Z2FxLineMgrFP10JKRArchiveP7JKRHeap();
extern "C" void setLineID__11Z2FxLineMgrFScbb();
extern "C" void setLine__11Z2FxLineMgrFP14Z2FxLineConfigbb();
extern "C" void setFxForceOff__11Z2FxLineMgrFb();
extern "C" void setUnderWaterFx__11Z2FxLineMgrFb();
extern "C" void setSceneFx__11Z2FxLineMgrFl();
//
// External References:
//
extern "C" void setFXLine__6JASDspFUcPsPQ26JASDsp13FxlineConfig_();
extern "C" void free__7JKRHeapFPvP7JKRHeap();
extern "C" void* __nwa__FUlP7JKRHeapi();
extern "C" void getResource__10JKRArchiveFUs();
extern "C" void countResource__10JKRArchiveCFv();
extern "C" void __dt__14JSUInputStreamFv();
extern "C" void read__14JSUInputStreamFPvl();
extern "C" void setBuffer__20JSUMemoryInputStreamFPCvl();
extern "C" void _savegpr_22();
extern "C" void _savegpr_28();
extern "C" void _restgpr_22();
extern "C" void _restgpr_28();
extern "C" extern void* __vt__10JSUIosBase[3];
extern "C" extern void* __vt__20JSURandomInputStream[9];
extern "C" extern void* __vt__14JSUInputStream[6 + 1 /* padding */];
extern "C" extern void* __vt__20JSUMemoryInputStream[9 + 1 /* padding */];
extern "C" extern u8 data_80450B80[4];
extern "C" extern u8 __OSReport_disable;
//
// Declarations:
//
/* 802BA7DC-802BA7FC 2B511C 0020+00 0/0 1/1 0/0 .text __ct__11Z2FxLineMgrFv */
Z2FxLineMgr::Z2FxLineMgr() : JASGlobalInstance<Z2FxLineMgr>(this) {
// NONMATCHING
}
/* 802BA7FC-802BAC28 2B513C 042C+00 0/0 1/1 0/0 .text
* initDataArc__11Z2FxLineMgrFP10JKRArchiveP7JKRHeap */
void Z2FxLineMgr::initDataArc(JKRArchive* param_0, JKRHeap* param_1) {
// NONMATCHING
}
/* 802BAC28-802BAC74 2B5568 004C+00 4/4 0/0 0/0 .text setLineID__11Z2FxLineMgrFScbb */
void Z2FxLineMgr::setLineID(s8 param_0, bool param_1, bool param_2) {
// NONMATCHING
}
/* 802BAC74-802BAE1C 2B55B4 01A8+00 1/1 0/0 0/0 .text setLine__11Z2FxLineMgrFP14Z2FxLineConfigbb
*/
void Z2FxLineMgr::setLine(Z2FxLineConfig* param_0, bool param_1, bool param_2) {
// NONMATCHING
}
/* 802BAE1C-802BAE48 2B575C 002C+00 0/0 1/1 0/0 .text setFxForceOff__11Z2FxLineMgrFb */
void Z2FxLineMgr::setFxForceOff(bool param_0) {
// NONMATCHING
}
/* 802BAE48-802BAEB8 2B5788 0070+00 0/0 1/1 0/0 .text setUnderWaterFx__11Z2FxLineMgrFb */
void Z2FxLineMgr::setUnderWaterFx(bool param_0) {
// NONMATCHING
}
/* ############################################################################################## */
/* 803CAB18-803CAC48 -00001 0130+00 1/1 0/0 0/0 .data @3566 */
SECTION_DATA static void* lit_3566[76] = {
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x88),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x68),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x54),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xB0),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xD0),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xD0),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xD0),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xF8),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xF8),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xF8),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x10C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x10C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x10C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x120),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x120),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0xE4),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x9C),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x134),
(void*)(((char*)setSceneFx__11Z2FxLineMgrFl) + 0x7C),
};
/* 802BAEB8-802BB00C 2B57F8 0154+00 2/1 1/1 0/0 .text setSceneFx__11Z2FxLineMgrFl */
void Z2FxLineMgr::setSceneFx(s32 param_0) {
// NONMATCHING
}
+687
View File
@@ -0,0 +1,687 @@
//
// Generated By: dol2asm
// Translation Unit: Z2LinkMgr
//
#include "Z2AudioLib/Z2LinkMgr.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_com_inf_game.h"
#include "dol2asm.h"
#include "global.h"
//
// Types:
//
struct Z2SoundObjCoach {
/* 802C54B8 */ Z2SoundObjCoach();
/* 802C54FC */ void init(Vec*, u8);
/* 802C551C */ void startWheelSound(f32);
/* 802C56C0 */ void startFireSound(u16);
/* 802C57C0 */ int startSound(JAISoundID, u32, s8);
};
//
// Forward References:
//
extern "C" void setLinkGroupInfo__14Z2CreatureLinkFUc();
extern "C" void setLinkHp__14Z2CreatureLinkFll();
extern "C" void setLinkSwordType__14Z2CreatureLinkFll();
extern "C" void setLinkShieldType__14Z2CreatureLinkFll();
extern "C" void setLinkBootsType__14Z2CreatureLinkFl();
extern "C" void __ct__14Z2CreatureLinkFv();
extern "C" void __dt__18Z2LinkSoundStarterFv();
extern "C" void __dt__14Z2CreatureLinkFv();
extern "C" void deleteObject__14Z2CreatureLinkFv();
extern "C" void init__14Z2CreatureLinkFP3VecP3VecP3Vec();
extern "C" void initKantera__14Z2CreatureLinkFP3Vec();
extern "C" void deleteKantera__14Z2CreatureLinkFv();
extern "C" void setKanteraState__14Z2CreatureLinkFUc();
extern "C" void framework__14Z2CreatureLinkFUlSc();
extern "C" void setSinkDepth__14Z2CreatureLinkFSc();
extern "C" void setRiding__14Z2CreatureLinkFb();
extern "C" void setMagnetized__14Z2CreatureLinkFb();
extern "C" void setWolfEyeOpen__14Z2CreatureLinkFb();
extern "C" void startLinkSound__14Z2CreatureLinkF10JAISoundIDUlSc();
extern "C" void startLinkSoundLevel__14Z2CreatureLinkF10JAISoundIDUlSc();
extern "C" void startLinkVoice__14Z2CreatureLinkF10JAISoundIDSc();
extern "C" void startLinkVoiceLevel__14Z2CreatureLinkF10JAISoundIDSc();
extern "C" void startLinkSwordSound__14Z2CreatureLinkF10JAISoundIDUlSc();
extern "C" void startCollisionSE__14Z2CreatureLinkFUlUl();
extern "C" void startHitItemSE__14Z2CreatureLinkFUlUlP14Z2SoundObjBasef();
extern "C" void setResumeAttack__14Z2CreatureLinkFb();
extern "C" void __ct__18Z2LinkSoundStarterFv();
extern "C" void func_802C4928();
extern "C" void __ct__14Z2CreatureRideFv();
extern "C" void __dt__18Z2RideSoundStarterFv();
extern "C" void __dt__14Z2CreatureRideFv();
extern "C" void deleteObject__14Z2CreatureRideFv();
extern "C" void init__14Z2CreatureRideFP3VecP3VecUcUc();
extern "C" void setLinkRiding__14Z2CreatureRideFb();
extern "C" void __ct__18Z2RideSoundStarterFP14Z2CreatureRide();
extern "C" void func_802C5284();
extern "C" void __ct__15Z2SoundObjCoachFv();
extern "C" void init__15Z2SoundObjCoachFP3VecUc();
extern "C" void startWheelSound__15Z2SoundObjCoachFf();
extern "C" void startFireSound__15Z2SoundObjCoachFUs();
extern "C" void startSound__15Z2SoundObjCoachF10JAISoundIDUlSc();
extern "C" static void func_802C588C();
extern "C" static void func_802C5894();
extern "C" u8 mLinkPtr__14Z2CreatureLink[4 + 4 /* padding */];
//
// External References:
//
extern "C" void isEventBit__11dSv_event_cCFUs();
extern "C" void stop__8JAISoundFUl();
extern "C" void moveVolume__18JAISoundParamsMoveFfUl();
extern "C" void movePitch__18JAISoundParamsMoveFfUl();
extern "C" void __dt__15JAISoundStarterFv();
extern "C" void linearTransform__6Z2CalcFfffffb();
extern "C" void getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign();
extern "C" void __ct__14Z2SoundStarterFb();
extern "C" void func_802AABF4();
extern "C" void func_802AAC3C();
extern "C" void setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc();
extern "C" void getHandleSoundID__14Z2SoundHandlesF10JAISoundID();
extern "C" void stopAllSounds__14Z2SoundHandlesFUl();
extern "C" void isActive__14Z2SoundHandlesCFv();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void setBattleSeqState__8Z2SeqMgrFUc();
extern "C" void setBattleLastHit__8Z2SeqMgrFUc();
extern "C" void setFxForceOff__11Z2FxLineMgrFb();
extern "C" void setTargetVolume__10Z2AudienceFfi();
extern "C" void __ct__14Z2SoundObjBaseFv();
extern "C" void __dt__14Z2SoundObjBaseFv();
extern "C" void init__14Z2SoundObjBaseFP3VecUc();
extern "C" void deleteObject__14Z2SoundObjBaseFv();
extern "C" void framework__14Z2SoundObjBaseFUlSc();
extern "C" void dispose__14Z2SoundObjBaseFv();
extern "C" void stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool();
extern "C" void startSound__14Z2SoundObjBaseF10JAISoundIDUlSc();
extern "C" void startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc();
extern "C" void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase();
extern "C" void __ct__16Z2SoundObjSimpleFv();
extern "C" void setGhostEnemyState__13Z2SoundObjMgrFUc();
extern "C" void __ct__10Z2CreatureFv();
extern "C" void __dt__10Z2CreatureFv();
extern "C" void deleteObject__10Z2CreatureFv();
extern "C" void init__10Z2CreatureFP3VecP3VecUcUc();
extern "C" void init__10Z2CreatureFP3VecP3VecP3VecUcUcUc();
extern "C" void setSoundStarter__10Z2CreatureFP14Z2SoundStarter();
extern "C" void framework__10Z2CreatureFUlSc();
extern "C" void startCreatureSound__10Z2CreatureF10JAISoundIDUlSc();
extern "C" void startCreatureSoundLevel__10Z2CreatureF10JAISoundIDUlSc();
extern "C" void startCreatureVoice__10Z2CreatureF10JAISoundIDSc();
extern "C" void startCreatureVoiceLevel__10Z2CreatureF10JAISoundIDSc();
extern "C" void startCreatureExtraSound__10Z2CreatureF10JAISoundIDUlSc();
extern "C" void startCreatureExtraSoundLevel__10Z2CreatureF10JAISoundIDUlSc();
extern "C" void startCollisionSE__10Z2CreatureFUlUl();
extern "C" void __dl__FPv();
extern "C" void _savegpr_24();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_24();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" extern void* __vt__14Z2SoundStarter[5 + 1 /* padding */];
extern "C" extern void* __vt__16Z2SoundObjSimple[8];
//
// Declarations:
//
/* 802C321C-802C3220 2BDB5C 0004+00 0/0 1/1 0/0 .text setLinkGroupInfo__14Z2CreatureLinkFUc */
void Z2CreatureLink::setLinkGroupInfo(u8) {}
/* 802C3220-802C3228 -00001 0008+00 0/0 0/0 0/0 .text setLinkHp__14Z2CreatureLinkFll */
void Z2CreatureLink::setLinkHp(s32 hp, s32) {
mLinkHp = hp;
}
/* 802C3228-802C328C 2BDB68 0064+00 0/0 1/1 0/0 .text setLinkSwordType__14Z2CreatureLinkFll */
void Z2CreatureLink::setLinkSwordType(s32 i_swordType, s32 param_1) {
mLinkSwordType = i_swordType;
mFlag3 = param_1 == 1;
if (mLinkSwordType != 0) {
if (mLinkShieldType != 0 && !mFlag4) {
mFlag5 = true;
return;
}
}
mFlag5 = false;
}
/* 802C328C-802C32F0 2BDBCC 0064+00 0/0 1/1 0/0 .text setLinkShieldType__14Z2CreatureLinkFll */
void Z2CreatureLink::setLinkShieldType(s32 i_shieldType, s32 param_1) {
mLinkShieldType = i_shieldType;
mFlag4 = param_1 == 1;
if (mLinkSwordType != 0) {
if (mLinkShieldType != 0 && !mFlag4) {
mFlag5 = true;
return;
}
}
mFlag5 = false;
}
/* 802C32F0-802C333C 2BDC30 004C+00 0/0 1/1 0/0 .text setLinkBootsType__14Z2CreatureLinkFl */
void Z2CreatureLink::setLinkBootsType(s32 i_bootsType) {
mLinkBootsType = i_bootsType;
if (Z2GetSceneMgr()->isSceneExist()) {
startLinkSound(Z2SE_AL_CHANGE_BOOTS, 0, -1);
}
}
/* ############################################################################################## */
/* 803CB8F0-803CB910 028A10 0020+00 1/1 0/0 1/1 .data __vt__15Z2SoundObjCoach */
SECTION_DATA extern void* __vt__15Z2SoundObjCoach[8] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)framework__14Z2SoundObjBaseFUlSc,
(void*)dispose__14Z2SoundObjBaseFv,
(void*)stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool,
(void*)init__15Z2SoundObjCoachFP3VecUc,
(void*)startSound__15Z2SoundObjCoachF10JAISoundIDUlSc,
(void*)startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc,
};
/* 803CB910-803CB924 028A30 0014+00 3/3 0/0 0/0 .data __vt__18Z2RideSoundStarter */
SECTION_DATA extern void* __vt__18Z2RideSoundStarter[5] = {
(void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__18Z2RideSoundStarterFv,
(void*)func_802AABF4, (void*)func_802C5284,
};
/* 803CB924-803CB96C 028A44 0048+00 2/2 0/0 0/0 .data __vt__14Z2CreatureRide */
SECTION_DATA extern void* __vt__14Z2CreatureRide[18] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)deleteObject__14Z2CreatureRideFv,
(void*)setSoundStarter__10Z2CreatureFP14Z2SoundStarter,
(void*)framework__10Z2CreatureFUlSc,
(void*)startCreatureSound__10Z2CreatureF10JAISoundIDUlSc,
(void*)startCreatureSoundLevel__10Z2CreatureF10JAISoundIDUlSc,
(void*)startCreatureVoice__10Z2CreatureF10JAISoundIDSc,
(void*)startCreatureVoiceLevel__10Z2CreatureF10JAISoundIDSc,
(void*)startCreatureExtraSound__10Z2CreatureF10JAISoundIDUlSc,
(void*)startCreatureExtraSoundLevel__10Z2CreatureF10JAISoundIDUlSc,
(void*)startCollisionSE__10Z2CreatureFUlUl,
(void*)NULL,
(void*)NULL,
(void*)func_802C5894,
(void*)func_802AABF4,
(void*)func_802C5284,
(void*)__dt__14Z2CreatureRideFv,
};
/* 803CB96C-803CB980 028A8C 0014+00 3/3 0/0 0/0 .data __vt__18Z2LinkSoundStarter */
SECTION_DATA extern void* __vt__18Z2LinkSoundStarter[5] = {
(void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__18Z2LinkSoundStarterFv,
(void*)func_802AABF4, (void*)func_802C4928,
};
/* 803CB980-803CB9C8 028AA0 0048+00 2/2 0/0 0/0 .data __vt__14Z2CreatureLink */
SECTION_DATA extern void* __vt__14Z2CreatureLink[18] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)deleteObject__14Z2CreatureLinkFv,
(void*)setSoundStarter__10Z2CreatureFP14Z2SoundStarter,
(void*)framework__14Z2CreatureLinkFUlSc,
(void*)startCreatureSound__10Z2CreatureF10JAISoundIDUlSc,
(void*)startCreatureSoundLevel__10Z2CreatureF10JAISoundIDUlSc,
(void*)startCreatureVoice__10Z2CreatureF10JAISoundIDSc,
(void*)startCreatureVoiceLevel__10Z2CreatureF10JAISoundIDSc,
(void*)startCreatureExtraSound__10Z2CreatureF10JAISoundIDUlSc,
(void*)startCreatureExtraSoundLevel__10Z2CreatureF10JAISoundIDUlSc,
(void*)startCollisionSE__14Z2CreatureLinkFUlUl,
(void*)NULL,
(void*)NULL,
(void*)func_802C588C,
(void*)func_802AABF4,
(void*)func_802C4928,
(void*)__dt__14Z2CreatureLinkFv,
};
/* 80451360-80451368 000860 0004+04 3/3 15/15 0/0 .sbss mLinkPtr__14Z2CreatureLink */
Z2CreatureLink* Z2CreatureLink::mLinkPtr;
/* 802C333C-802C3464 2BDC7C 0128+00 0/0 1/1 0/0 .text __ct__14Z2CreatureLinkFv */
Z2CreatureLink::Z2CreatureLink() {
mLinkState = 0;
mLinkPtr = this;
field_0xc1 = 0xFF;
mWolfEyeOpen = false;
mInWater = false;
mMarkState = 0;
mResumeAttack = false;
setSoundStarter(this);
mKantera.setSoundStarter(this);
mLinkHp = 0;
mLinkBootsType = 0;
mKanteraState = 0;
mLinkSwordType = 0;
mLinkShieldType = 0;
mFlag3 = false;
mFlag4 = false;
mFlag5 = false;
mRiding = false;
mMagnetized = false;
mUsingIronBall = false;
}
/* 802C3464-802C3500 2BDDA4 009C+00 1/0 0/0 0/0 .text __dt__18Z2LinkSoundStarterFv */
inline Z2LinkSoundStarter::~Z2LinkSoundStarter() {
// NONMATCHING
}
/* 802C3500-802C35F8 2BDE40 00F8+00 2/1 1/1 0/0 .text __dt__14Z2CreatureLinkFv */
Z2CreatureLink::~Z2CreatureLink() {
// NONMATCHING
}
/* 802C35F8-802C3638 2BDF38 0040+00 1/0 0/0 0/0 .text deleteObject__14Z2CreatureLinkFv */
void Z2CreatureLink::deleteObject() {
if (mKantera.isAlive()) {
deleteKantera();
}
Z2Creature::deleteObject();
}
/* 802C3638-802C3710 2BDF78 00D8+00 0/0 1/1 0/0 .text init__14Z2CreatureLinkFP3VecP3VecP3Vec */
void Z2CreatureLink::init(Vec* param_0, Vec* param_1, Vec* param_2) {
Z2Creature::init(param_0, param_1, param_2, 6, 1, 2);
Z2GetAudience()->getLinkMic()->setPosPtr(getCurrentPos());
field_0xc1 = 0xFF;
mWolfEyeOpen = false;
mInWater = false;
mMarkState = 0;
mResumeAttack = false;
mKanteraState = 0;
mRiding = false;
mMagnetized = false;
mUsingIronBall = false;
field_0xb4 = *param_0;
mMoveSpeed = 0;
mMovingTime = 0;
mSinkDepth = -1;
}
/* 802C3710-802C374C 2BE050 003C+00 0/0 1/1 0/0 .text initKantera__14Z2CreatureLinkFP3Vec
*/
void Z2CreatureLink::initKantera(Vec* i_pos) {
mKanteraState = 0;
mKantera.init(i_pos, 2);
}
/* 802C374C-802C3778 2BE08C 002C+00 1/1 1/1 0/0 .text deleteKantera__14Z2CreatureLinkFv
*/
void Z2CreatureLink::deleteKantera() {
mKanteraState = 0;
mKantera.deleteObject();
}
/* 802C3778-802C3780 -00001 0008+00 0/0 0/0 0/0 .text setKanteraState__14Z2CreatureLinkFUc */
void Z2CreatureLink::setKanteraState(u8 i_state) {
mKanteraState = i_state;
}
/* ############################################################################################## */
/* 80455C98-80455C9C 004298 0004+00 9/9 0/0 0/0 .sdata2 @3721 */
SECTION_SDATA2 static f32 lit_3721 = 1.0f;
/* 80455C9C-80455CA0 00429C 0004+00 2/2 0/0 0/0 .sdata2 @3722 */
SECTION_SDATA2 static f32 lit_3722 = -1.0f;
/* 80455CA0-80455CA8 0042A0 0004+04 11/11 0/0 0/0 .sdata2 @3723 */
SECTION_SDATA2 static f32 lit_3723[1 + 1 /* padding */] = {
0.0f,
/* padding */
0.0f,
};
/* 80455CA8-80455CB0 0042A8 0008+00 1/1 0/0 0/0 .sdata2 @3724 */
SECTION_SDATA2 static f64 lit_3724 = 0.5;
/* 80455CB0-80455CB8 0042B0 0008+00 1/1 0/0 0/0 .sdata2 @3725 */
SECTION_SDATA2 static f64 lit_3725 = 3.0;
/* 80455CB8-80455CC0 0042B8 0008+00 1/1 0/0 0/0 .sdata2 @3726 */
SECTION_SDATA2 static u8 lit_3726[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 802C3780-802C3A64 2BE0C0 02E4+00 1/0 0/0 0/0 .text framework__14Z2CreatureLinkFUlSc */
void Z2CreatureLink::framework(u32 param_0, s8 param_1) {
// NONMATCHING
}
/* void Z2CreatureLink::framework(u32 param_0, s8 param_1) {
Z2Creature::framework(param_0, param_1);
if (mKantera.isAlive()) {
mKantera.framework(param_0, param_1);
}
if (field_0xc1 != -1) {
field_0xc1++;
}
if (mMagnetized) {
Z2GetSeMgr()->seStartLevel(Z2SE_WOLF_SENSE_OPEN, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
if (isInWater() && Z2GetStatusMgr()->getCameraInWaterDepthRatio() > 0.0f) {
if (startLinkSoundLevel() && ) {
}
}
} */
/* 802C3A64-802C3A6C -00001 0008+00 0/0 0/0 0/0 .text setSinkDepth__14Z2CreatureLinkFSc
*/
void Z2CreatureLink::setSinkDepth(s8 i_sinkDepth) {
mSinkDepth = i_sinkDepth;
}
/* 802C3A6C-802C3AEC 2BE3AC 0080+00 0/0 4/4 0/0 .text setRiding__14Z2CreatureLinkFb */
void Z2CreatureLink::setRiding(bool i_isRiding) {
if (mRiding != i_isRiding) {
if (i_isRiding) {
Z2GetAudience()->setTargetVolume(0.35f, 0);
} else {
Z2GetAudience()->setTargetVolume(FLOAT_LABEL(lit_3723), 0);
}
mRiding = i_isRiding;
}
}
/* 802C3AEC-802C3AFC 2BE42C 0010+00 0/0 5/5 0/0 .text setMagnetized__14Z2CreatureLinkFb
*/
void Z2CreatureLink::setMagnetized(bool i_isMagnetized) {
mMagnetized = i_isMagnetized;
}
/* 802C3AFC-802C3BD4 2BE43C 00D8+00 0/0 2/2 0/0 .text setWolfEyeOpen__14Z2CreatureLinkFb
*/
void Z2CreatureLink::setWolfEyeOpen(bool i_wolfEyeOpen) {
mWolfEyeOpen = i_wolfEyeOpen;
if (mWolfEyeOpen) {
Z2GetSeMgr()->seStart(Z2SE_WOLF_SENSE_OPEN_START, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
Z2GetFxLineMgr()->setFxForceOff(true);
Z2GetSoundObjMgr()->setGhostEnemyState(32);
} else {
Z2GetSeMgr()->seStart(Z2SE_WOLF_SENSE_CLOSE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
Z2GetFxLineMgr()->setFxForceOff(false);
Z2GetSoundObjMgr()->setGhostEnemyState(16);
}
}
/* ############################################################################################## */
/* 80455CC4-80455CC8 0042C4 0004+00 1/1 0/0 0/0 .sdata2 @3834 */
SECTION_SDATA2 static f32 lit_3834 = 32.0f;
/* 80455CC8-80455CCC 0042C8 0004+00 4/4 0/0 0/0 .sdata2 @3835 */
SECTION_SDATA2 static f32 lit_3835 = 127.0f;
/* 80455CCC-80455CD0 0042CC 0004+00 2/2 0/0 0/0 .sdata2 @3836 */
SECTION_SDATA2 static f32 lit_3836 = 2.0f / 5.0f;
/* 80455CD0-80455CD4 0042D0 0004+00 4/4 0/0 0/0 .sdata2 @3837 */
SECTION_SDATA2 static f32 lit_3837 = 7.0f / 10.0f;
/* 80455CD4-80455CD8 0042D4 0004+00 3/3 0/0 0/0 .sdata2 @3838 */
SECTION_SDATA2 static f32 lit_3838 = 23.0f;
/* 80455CD8-80455CE0 0042D8 0004+04 4/4 0/0 0/0 .sdata2 @3839 */
SECTION_SDATA2 static f32 lit_3839[1 + 1 /* padding */] = {
0.5f,
/* padding */
0.0f,
};
/* 80455CE0-80455CE8 0042E0 0008+00 3/3 0/0 0/0 .sdata2 @3842 */
SECTION_SDATA2 static f64 lit_3842 = 4503601774854144.0 /* cast s32 to float */;
/* 802C3BD4-802C3E68 2BE514 0294+00 3/3 3/3 0/0 .text
* startLinkSound__14Z2CreatureLinkF10JAISoundIDUlSc */
void Z2CreatureLink::startLinkSound(JAISoundID param_0, u32 param_1, s8 param_2) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80455CE8-80455CEC 0042E8 0004+00 1/1 0/0 0/0 .sdata2 @3941 */
SECTION_SDATA2 static f32 lit_3941 = 30.0f;
/* 80455CEC-80455CF0 0042EC 0004+00 3/3 0/0 0/0 .sdata2 @3942 */
SECTION_SDATA2 static f32 lit_3942 = 3.0f / 10.0f;
/* 80455CF0-80455CF4 0042F0 0004+00 4/4 0/0 0/0 .sdata2 @3943 */
SECTION_SDATA2 static f32 lit_3943 = 4.0f / 5.0f;
/* 80455CF4-80455CF8 0042F4 0004+00 1/1 0/0 0/0 .sdata2 @3944 */
SECTION_SDATA2 static f32 lit_3944 = 180.0f;
/* 80455CF8-80455CFC 0042F8 0004+00 1/1 0/0 0/0 .sdata2 @3945 */
SECTION_SDATA2 static f32 lit_3945 = 120.0f;
/* 80455CFC-80455D00 0042FC 0004+00 4/4 0/0 0/0 .sdata2 @3946 */
SECTION_SDATA2 static f32 lit_3946 = 3.0f / 5.0f;
/* 80455D00-80455D04 004300 0004+00 1/1 0/0 0/0 .sdata2 @3947 */
SECTION_SDATA2 static f32 lit_3947 = 80.0f;
/* 80455D04-80455D08 004304 0004+00 1/1 0/0 0/0 .sdata2 @3948 */
SECTION_SDATA2 static f32 lit_3948 = 6.0f / 5.0f;
/* 80455D08-80455D0C 004308 0004+00 2/2 0/0 0/0 .sdata2 @3949 */
SECTION_SDATA2 static f32 lit_3949 = 0.25f;
/* 80455D0C-80455D10 00430C 0004+00 1/1 0/0 0/0 .sdata2 @3950 */
SECTION_SDATA2 static f32 lit_3950 = 11.0f / 10.0f;
/* 80455D10-80455D18 004310 0008+00 2/2 0/0 0/0 .sdata2 @3954 */
SECTION_SDATA2 static f64 lit_3954 = 4503599627370496.0 /* cast u32 to float */;
/* 802C3E68-802C4320 2BE7A8 04B8+00 1/1 3/3 0/0 .text
* startLinkSoundLevel__14Z2CreatureLinkF10JAISoundIDUlSc */
void Z2CreatureLink::startLinkSoundLevel(JAISoundID param_0, u32 param_1, s8 param_2) {
// NONMATCHING
}
/* 802C4320-802C45B0 2BEC60 0290+00 1/1 1/1 0/0 .text
* startLinkVoice__14Z2CreatureLinkF10JAISoundIDSc */
void Z2CreatureLink::startLinkVoice(JAISoundID param_0, s8 param_1) {
// NONMATCHING
}
/* 802C45B0-802C46F0 2BEEF0 0140+00 0/0 1/1 0/0 .text
* startLinkVoiceLevel__14Z2CreatureLinkF10JAISoundIDSc */
void Z2CreatureLink::startLinkVoiceLevel(JAISoundID param_0, s8 param_1) {
// NONMATCHING
}
/* 802C46F0-802C4784 2BF030 0094+00 0/0 2/2 0/0 .text
* startLinkSwordSound__14Z2CreatureLinkF10JAISoundIDUlSc */
void Z2CreatureLink::startLinkSwordSound(JAISoundID i_soundID, u32 id, s8 ch) {
u32 soundID = i_soundID;
switch (soundID) {
case Z2SE_SWORD_POWER_COME:
startCreatureExtraSoundLevel(soundID, id, ch);
break;
case Z2SE_WOLF_POWER_COME:
startCreatureExtraSoundLevel(soundID, id, ch);
break;
default:
startCreatureExtraSound(soundID, id, ch);
break;
}
}
/* 802C4784-802C4814 2BF0C4 0090+00 1/0 0/0 0/0 .text startCollisionSE__14Z2CreatureLinkFUlUl */
Z2SoundHandlePool* Z2CreatureLink::startCollisionSE(u32 hitID, u32 mapinfo) {
switch (mapinfo) {
case 0x28:
case 0x29:
case 0x2A:
Z2GetSeqMgr()->onEnemyDamage();
break;
case 0x20:
if (hitID == Z2SE_HIT_SWORD_STAB) {
Z2GetSeqMgr()->setBattleLastHit(0x14);
}
break;
}
return mSoundObjAnime.startCollisionSE(hitID, mapinfo, NULL);
}
/* ############################################################################################## */
/* 80455D18-80455D1C 004318 0004+00 1/1 0/0 0/0 .sdata2 @4178 */
SECTION_SDATA2 static f32 lit_4178 = 100.0f;
/* 802C4814-802C48D8 2BF154 00C4+00 0/0 4/4 2/2 .text
* startHitItemSE__14Z2CreatureLinkFUlUlP14Z2SoundObjBasef */
int Z2CreatureLink::startHitItemSE(u32 param_0, u32 param_1, Z2SoundObjBase* param_2,
f32 speed) {
// NONMATCHING
}
/* 802C48D8-802C48E8 2BF218 0010+00 0/0 1/1 0/0 .text setResumeAttack__14Z2CreatureLinkFb
*/
void Z2CreatureLink::setResumeAttack(bool i_resumeAttack) {
mResumeAttack = i_resumeAttack;
}
/* 802C48E8-802C4928 2BF228 0040+00 1/1 0/0 0/0 .text __ct__18Z2LinkSoundStarterFv */
Z2LinkSoundStarter::Z2LinkSoundStarter() : Z2SoundStarter(false) {}
/* ############################################################################################## */
/* 80455D1C-80455D20 00431C 0004+00 2/2 0/0 0/0 .sdata2 @4399 */
SECTION_SDATA2 static f32 lit_4399 = 9.0f / 10.0f;
/* 802C4928-802C4FFC 2BF268 06D4+00 2/0 0/0 0/0 .text
* startSound__18Z2LinkSoundStarterF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f>UlfffffUl */
bool Z2LinkSoundStarter::startSound(JAISoundID param_0, JAISoundHandle* param_1,
JGeometry::TVec3<f32> const* param_2, u32 param_3,
f32 param_4, f32 param_5, f32 param_6, f32 param_7,
f32 param_8, u32 param_9) {
// NONMATCHING
}
/* 802C4FFC-802C5078 2BF93C 007C+00 0/0 0/0 3/3 .text __ct__14Z2CreatureRideFv */
Z2CreatureRide::Z2CreatureRide() : Z2RideSoundStarter(this) {
mLinkRiding = false;
setSoundStarter(this);
}
/* 802C5078-802C5114 2BF9B8 009C+00 1/0 0/0 0/0 .text __dt__18Z2RideSoundStarterFv */
inline Z2RideSoundStarter::~Z2RideSoundStarter() {
// NONMATCHING
}
/* 802C5114-802C51EC 2BFA54 00D8+00 2/1 0/0 2/2 .text __dt__14Z2CreatureRideFv */
Z2CreatureRide::~Z2CreatureRide() {
// NONMATCHING
}
/* 802C51EC-802C520C 2BFB2C 0020+00 1/0 0/0 0/0 .text deleteObject__14Z2CreatureRideFv */
void Z2CreatureRide::deleteObject() {
Z2Creature::deleteObject();
}
/* 802C520C-802C522C 2BFB4C 0020+00 0/0 0/0 3/3 .text init__14Z2CreatureRideFP3VecP3VecUcUc */
void Z2CreatureRide::init(Vec* param_0, Vec* param_1, u8 param_2, u8 param_3) {
Z2Creature::init(param_0, param_1, param_2, param_3);
}
/* 802C522C-802C5234 -00001 0008+00 0/0 0/0 0/0 .text setLinkRiding__14Z2CreatureRideFb
*/
void Z2CreatureRide::setLinkRiding(bool isRiding) {
mLinkRiding = isRiding;
}
/* 802C5234-802C5284 2BFB74 0050+00 1/1 0/0 0/0 .text __ct__18Z2RideSoundStarterFP14Z2CreatureRide
*/
Z2RideSoundStarter::Z2RideSoundStarter(Z2CreatureRide* ride) : Z2SoundStarter(false) {
mRide = ride;
}
/* 802C5284-802C54B8 2BFBC4 0234+00 2/0 0/0 0/0 .text
* startSound__18Z2RideSoundStarterF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f>UlfffffUl */
bool Z2RideSoundStarter::startSound(JAISoundID param_0, JAISoundHandle* param_1,
JGeometry::TVec3<f32> const* param_2, u32 param_3,
f32 param_4, f32 param_5, f32 param_6, f32 param_7,
f32 param_8, u32 param_9) {
// NONMATCHING
}
/* 802C54B8-802C54FC 2BFDF8 0044+00 0/0 0/0 1/1 .text __ct__15Z2SoundObjCoachFv */
Z2SoundObjCoach::Z2SoundObjCoach() {
// NONMATCHING
}
/* 802C54FC-802C551C 2BFE3C 0020+00 1/0 0/0 0/0 .text init__15Z2SoundObjCoachFP3VecUc */
void Z2SoundObjCoach::init(Vec* param_0, u8 param_1) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80455D20-80455D24 004320 0004+00 1/1 0/0 0/0 .sdata2 @4621 */
SECTION_SDATA2 static f32 lit_4621 = 2.0f;
/* 80455D24-80455D28 004324 0004+00 1/1 0/0 0/0 .sdata2 @4622 */
SECTION_SDATA2 static f32 lit_4622 = 35.0f;
/* 80455D28-80455D2C 004328 0004+00 1/1 0/0 0/0 .sdata2 @4623 */
SECTION_SDATA2 static f32 lit_4623 = 22.0f / 25.0f;
/* 80455D2C-80455D30 00432C 0004+00 3/3 0/0 0/0 .sdata2 @4624 */
SECTION_SDATA2 static f32 lit_4624 = 1.25f;
/* 80455D30-80455D34 004330 0004+00 2/2 0/0 0/0 .sdata2 @4625 */
SECTION_SDATA2 static f32 lit_4625 = 50.0f;
/* 802C551C-802C56C0 2BFE5C 01A4+00 0/0 0/0 1/1 .text startWheelSound__15Z2SoundObjCoachFf */
void Z2SoundObjCoach::startWheelSound(f32 param_0) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80455D34-80455D38 004334 0004+00 1/1 0/0 0/0 .sdata2 @4645 */
SECTION_SDATA2 static f32 lit_4645 = 1500.0f;
/* 80455D38-80455D3C 004338 0004+00 2/2 0/0 0/0 .sdata2 @4646 */
SECTION_SDATA2 static f32 lit_4646 = 1.0f / 5.0f;
/* 80455D3C-80455D40 00433C 0004+00 2/2 0/0 0/0 .sdata2 @4647 */
SECTION_SDATA2 static f32 lit_4647 = 17.0f / 20.0f;
/* 802C56C0-802C57C0 2C0000 0100+00 0/0 0/0 1/1 .text startFireSound__15Z2SoundObjCoachFUs */
void Z2SoundObjCoach::startFireSound(u16 param_0) {
// NONMATCHING
}
/* 802C57C0-802C588C 2C0100 00CC+00 1/0 0/0 0/0 .text
* startSound__15Z2SoundObjCoachF10JAISoundIDUlSc */
int Z2SoundObjCoach::startSound(JAISoundID param_0, u32 param_1, s8 param_2) {
// NONMATCHING
}
+173
View File
@@ -0,0 +1,173 @@
/**
* Z2Param.cpp
* Z2AudioLib constants
*/
#include "Z2AudioLib/Z2Param.h"
/* ############################################################################################## */
/* 804507D8-804507DC 000258 0004+00 0/0 4/4 0/0 .sdata DISTANCE_MAX__7Z2Param */
f32 Z2Param::DISTANCE_MAX = 2000.0f;
/* 804507DC-804507E0 00025C 0004+00 0/0 3/3 0/0 .sdata MAX_VOLUME_DISTANCE__7Z2Param */
f32 Z2Param::MAX_VOLUME_DISTANCE = 300.0f;
/* 804507E0-804507E4 000260 0004+00 0/0 1/1 0/0 .sdata DOLBY_CENTER_VALUE__7Z2Param */
f32 Z2Param::DOLBY_CENTER_VALUE = 0.3f;
/* 804507E4-804507E8 000264 0004+00 0/0 3/3 0/0 .sdata DOLBY_FLONT_DISTANCE_MAX__7Z2Param
*/
f32 Z2Param::DOLBY_FLONT_DISTANCE_MAX = -300.0f;
/* 804507E8-804507EC 000268 0004+00 0/0 3/3 0/0 .sdata DOLBY_BEHIND_DISTANCE_MAX__7Z2Param
*/
f32 Z2Param::DOLBY_BEHIND_DISTANCE_MAX = 600.0f;
/* 804507EC-804507F0 00026C 0004+00 0/0 1/1 0/0 .sdata DISTANCE_FX_PARAM__7Z2Param */
f32 Z2Param::DISTANCE_FX_PARAM = 10.0f / 127.0f;
/* 804507F0-804507F4 000270 0004+00 0/0 1/1 0/0 .sdata SONIC_SPEED__7Z2Param */
f32 Z2Param::SONIC_SPEED = 360.0f;
/* 804507F4-804507F8 000274 0004+00 0/0 3/3 0/0 .sdata VOL_BGM_DEFAULT__7Z2Param */
f32 Z2Param::VOL_BGM_DEFAULT = 1.0f;
/* 804507F8-804507FC 000278 0004+00 0/0 2/2 0/0 .sdata VOL_SE_SYSTEM_DEFAULT__7Z2Param */
f32 Z2Param::VOL_SE_SYSTEM_DEFAULT = 120.0f / 127.0f;
/* 804507FC-80450800 00027C 0004+00 0/0 3/3 0/0 .sdata VOL_SE_LINK_VOICE_DEFAULT__7Z2Param
*/
f32 Z2Param::VOL_SE_LINK_VOICE_DEFAULT = 1.0f;
/* 80450800-80450804 000280 0004+00 0/0 3/3 0/0 .sdata VOL_SE_LINK_MOTION_DEFAULT__7Z2Param */
f32 Z2Param::VOL_SE_LINK_MOTION_DEFAULT = 120.0f / 127.0f;
/* 80450804-80450808 000284 0004+00 0/0 3/3 0/0 .sdata VOL_SE_LINK_FOOTNOTE_DEFAULT__7Z2Param */
f32 Z2Param::VOL_SE_LINK_FOOTNOTE_DEFAULT = 120.0f / 127.0f;
/* 80450808-8045080C 000288 0004+00 0/0 3/3 0/0 .sdata VOL_SE_CHAR_VOICE_DEFAULT__7Z2Param
*/
f32 Z2Param::VOL_SE_CHAR_VOICE_DEFAULT = 120.0f / 127.0f;
/* 8045080C-80450810 00028C 0004+00 0/0 3/3 0/0 .sdata VOL_SE_CHAR_MOVE_DEFAULT__7Z2Param
*/
f32 Z2Param::VOL_SE_CHAR_MOVE_DEFAULT = 120.0f / 127.0f;
/* 80450810-80450814 000290 0004+00 0/0 3/3 0/0 .sdata VOL_SE_OBJECT_DEFAULT__7Z2Param */
f32 Z2Param::VOL_SE_OBJECT_DEFAULT = 120.0f / 127.0f;
/* 80450814-80450818 000294 0004+00 0/0 3/3 0/0 .sdata VOL_SE_ATMOSPHERE_DEFAULT__7Z2Param
*/
f32 Z2Param::VOL_SE_ATMOSPHERE_DEFAULT = 120.0f / 127.0f;
/* 80450818-8045081C 000298 0004+00 0/0 1/1 0/0 .sdata VOL_BGM_TALKING__7Z2Param */
f32 Z2Param::VOL_BGM_TALKING = 0.5f;
/* 8045081C-80450820 00029C 0004+00 0/0 1/1 0/0 .sdata VOL_SE_SYSTEM_TALKING__7Z2Param */
f32 Z2Param::VOL_SE_SYSTEM_TALKING = 112.0f / 127.0f;
/* 80450820-80450824 0002A0 0004+00 0/0 1/1 0/0 .sdata VOL_SE_LINK_VOICE_TALKING__7Z2Param
*/
f32 Z2Param::VOL_SE_LINK_VOICE_TALKING = 104.0f / 127.0f;
/* 80450824-80450828 0002A4 0004+00 0/0 1/1 0/0 .sdata VOL_SE_LINK_MOTION_TALKING__7Z2Param */
f32 Z2Param::VOL_SE_LINK_MOTION_TALKING = 96.0f / 127.0f;
/* 80450828-8045082C 0002A8 0004+00 0/0 1/1 0/0 .sdata VOL_SE_LINK_FOOTNOTE_TALKING__7Z2Param */
f32 Z2Param::VOL_SE_LINK_FOOTNOTE_TALKING = 96.0f / 127.0f;
/* 8045082C-80450830 0002AC 0004+00 0/0 1/1 0/0 .sdata VOL_SE_CHAR_VOICE_TALKING__7Z2Param
*/
f32 Z2Param::VOL_SE_CHAR_VOICE_TALKING = 120.0f / 127.0f;
/* 80450830-80450834 0002B0 0004+00 0/0 1/1 0/0 .sdata VOL_SE_CHAR_MOVE_TALKING__7Z2Param
*/
f32 Z2Param::VOL_SE_CHAR_MOVE_TALKING = 119.0f / 127.0f;
/* 80450834-80450838 0002B4 0004+00 0/0 1/1 0/0 .sdata VOL_SE_OBJECT_TALKING__7Z2Param */
f32 Z2Param::VOL_SE_OBJECT_TALKING = 96.0f / 127.0f;
/* 80450838-8045083C 0002B8 0004+00 0/0 1/1 0/0 .sdata VOL_SE_ATMOSPHERE_TALKING__7Z2Param
*/
f32 Z2Param::VOL_SE_ATMOSPHERE_TALKING = 96.0f / 127.0f;
/* 8045083C-80450840 0002BC 0004+00 0/0 1/1 0/0 .sdata VOL_BGM_PAUSING__7Z2Param */
f32 Z2Param::VOL_BGM_PAUSING = 0.3f;
/* 80450840-80450844 0002C0 0004+00 0/0 1/1 0/0 .sdata VOL_SE_SYSTEM_PAUSING__7Z2Param */
f32 Z2Param::VOL_SE_SYSTEM_PAUSING = 112.0f / 127.0f;
/* 80450844-80450848 0002C4 0004+00 0/0 1/1 0/0 .sdata VOL_SE_LINK_VOICE_PAUSING__7Z2Param
*/
f32 Z2Param::VOL_SE_LINK_VOICE_PAUSING = 80.0f / 127.0f;
/* 80450848-8045084C 0002C8 0004+00 0/0 1/1 0/0 .sdata VOL_SE_LINK_MOTION_PAUSING__7Z2Param */
f32 Z2Param::VOL_SE_LINK_MOTION_PAUSING = 72.0f / 127.0f;
/* 8045084C-80450850 0002CC 0004+00 0/0 1/1 0/0 .sdata VOL_SE_LINK_FOOTNOTE_PAUSING__7Z2Param */
f32 Z2Param::VOL_SE_LINK_FOOTNOTE_PAUSING = 72.0f / 127.0f;
/* 80450850-80450854 0002D0 0004+00 0/0 1/1 0/0 .sdata VOL_SE_CHAR_VOICE_PAUSING__7Z2Param
*/
f32 Z2Param::VOL_SE_CHAR_VOICE_PAUSING = 72.0f / 127.0f;
/* 80450854-80450858 0002D4 0004+00 0/0 1/1 0/0 .sdata VOL_SE_CHAR_MOVE_PAUSING__7Z2Param
*/
f32 Z2Param::VOL_SE_CHAR_MOVE_PAUSING = 72.0f / 127.0f;
/* 80450858-8045085C 0002D8 0004+00 0/0 1/1 0/0 .sdata VOL_SE_OBJECT_PAUSING__7Z2Param */
f32 Z2Param::VOL_SE_OBJECT_PAUSING = 72.0f / 127.0f;
/* 8045085C-80450860 0002DC 0004+00 0/0 1/1 0/0 .sdata VOL_SE_ATMOSPHERE_PAUSING__7Z2Param
*/
f32 Z2Param::VOL_SE_ATMOSPHERE_PAUSING = 72.0f / 127.0f;
/* 80450860-80450864 -00001 0004+00 0/0 15/15 0/0 .sdata None */
u8 struct_80450860 = 0x21;
u8 struct_80450861 = 0x3C;
u8 struct_80450862 = 0x3C;
u8 struct_80450863 = 0x1E;
/* 80450864-80450868 -00001 0004+00 0/0 2/2 0/0 .sdata None */
#pragma push
#pragma force_active on
u8 struct_80450864 = 0x14;
u8 struct_80450865 = 0x1E;
u8 struct_80450866 = 0x0A;
u8 struct_80450867 = 0x1E;
#pragma pop
/* 80450868-8045086C -00001 0004+00 0/0 5/5 0/0 .sdata None */
#pragma push
#pragma force_active on
u8 struct_80450868 = 0x01;
u8 struct_80450869 = 0x0A;
u8 struct_8045086A = 0x1E;
u8 struct_8045086B = 0x14;
#pragma pop
/* 8045086C-80450870 0002EC 0004+00 0/0 3/3 0/0 .sdata None */
u8 data_8045086C = 1;
/* 80451338-8045133C 000838 0004+00 0/0 1/1 0/0 .sbss MIN_DISTANCE_VOLUME__7Z2Param */
f32 Z2Param::MIN_DISTANCE_VOLUME;
/* 8045133C-80451340 00083C 0004+00 0/0 1/1 0/0 .sbss ENEMY_LASTHIT_MUTE_VOLUME__7Z2Param
*/
f32 Z2Param::ENEMY_LASTHIT_MUTE_VOLUME;
/* 80451340-80451348 -00001 0008+00 0/0 2/2 0/0 .sbss None */
/* 80451340 0001+00 data_80451340 None */
/* 80451341 0001+00 data_80451341 None */
/* 80451342 0006+00 data_80451342 None */
#pragma push
#pragma force_active on
u8 struct_80451340;
u8 struct_80451341;
u8 struct_80451342;
u8 pad_80451344[4];
#pragma pop
/* 80451348-80451350 000848 0008+00 0/0 4/4 0/0 .sbss None */
extern u8 data_80451348[8];
u8 data_80451348[8];
+940
View File
@@ -0,0 +1,940 @@
//
// Generated By: dol2asm
// Translation Unit: Z2SceneMgr
//
#include "Z2AudioLib/Z2SceneMgr.h"
#include "Z2AudioLib/Z2SoundMgr.h"
#include "Z2AudioLib/Z2SeqMgr.h"
#include "Z2AudioLib/Z2SeMgr.h"
#include "Z2AudioLib/Z2Param.h"
#include "dol2asm.h"
//
// Types:
//
struct dSv_memBit_c {
/* 80034860 */ void isSwitch(int) const;
};
struct dSv_info_c {
/* 80035360 */ void isSwitch(int, int) const;
};
struct dSv_event_flag_c {
static u8 saveBitLabels[1644 + 4 /* padding */];
};
struct dSv_event_c {
/* 800349BC */ void isEventBit(u16) const;
};
struct Z2SoundObjMgr {
/* 802BF980 */ void setForceBattleArea(bool, u16, u16, u16);
/* 802BFFEC */ void setGhostEnemyState(u8);
/* 802C013C */ void deleteEnemyAll();
};
struct Z2FxLineMgr {
/* 802BAEB8 */ void setSceneFx(s32);
};
struct Z2EnvSeMgr {
/* 802C699C */ void resetSceneInner();
/* 802C6AC0 */ void initSceneEnvSe(s32, s8, f32);
};
struct JAUSoundTable {
/* 802A7160 */ void getTypeID(JAISoundID) const;
};
struct JASWaveArc {
/* 8029A4C0 */ void load(JASHeap*);
/* 8029A580 */ void loadTail(JASHeap*);
/* 8029A640 */ void erase();
};
//
// Forward References:
//
extern "C" void __ct__10Z2SceneMgrFv();
extern "C" void setInDarkness__10Z2SceneMgrFb();
extern "C" void setSceneExist__10Z2SceneMgrFb();
extern "C" void setFadeOutStart__10Z2SceneMgrFUc();
extern "C" void setFadeInStart__10Z2SceneMgrFUc();
extern "C" void setSceneName__10Z2SceneMgrFPcll();
extern "C" void __ct__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& soundIdToSet);
extern "C" void setFieldBgmPlay__8Z2SeqMgrFb();
extern "C" void isActive__12JAIStreamMgrCFv();
extern "C" void getID__8JAISoundCFv();
extern "C" void func_802B9994(void* _this);
extern "C" static void dComIfGs_getStartPoint__Fv();
extern "C" void unMuteSceneBgm__8Z2SeqMgrFUl();
extern "C" void muteSceneBgm__8Z2SeqMgrFUlf();
extern "C" static void dComIfGs_isSaveSwitch__Fi();
extern "C" void resetCrowdSize__7Z2SeMgrFv();
extern "C" void setTwilightGateVol__8Z2SeqMgrFf();
extern "C" void setWindStoneVol__8Z2SeqMgrFfUl();
extern "C" void __as__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& param_0);
extern "C" void sceneChange__10Z2SceneMgrF10JAISoundIDUcUcUcUcUcb();
extern "C" void framework__10Z2SceneMgrFv();
extern "C" void load1stDynamicWave__10Z2SceneMgrFv();
extern "C" void _load1stWaveInner_1__10Z2SceneMgrFv();
extern "C" void _load1stWaveInner_2__10Z2SceneMgrFv();
extern "C" void check1stDynamicWave__10Z2SceneMgrFv();
extern "C" void load2ndDynamicWave__10Z2SceneMgrFv();
extern "C" void sceneBgmStart__10Z2SceneMgrFv();
extern "C" void loadStaticWaves__10Z2SceneMgrFv();
extern "C" bool checkFirstWaves__10Z2SceneMgrFv();
extern "C" void eraseSeWave__10Z2SceneMgrFUl();
extern "C" void eraseBgmWave__10Z2SceneMgrFUl();
extern "C" void getWaveLoadStatus__10Z2SceneMgrFUlUl();
extern "C" void loadSeWave__10Z2SceneMgrFUl();
extern "C" void loadBgmWave__10Z2SceneMgrFUl();
extern "C" void __ct__10JAISoundIDFUl(void* param_0, u32 param_1);
extern "C" extern char const* const Z2SceneMgr__stringBase0;
//
// External References:
//
extern "C" void dComIfGs_isStageSwitch__Fii();
extern "C" void isSwitch__12dSv_memBit_cCFi();
extern "C" void isEventBit__11dSv_event_cCFUs();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void dComIfGs_isEventBit__FUs();
extern "C" void load__10JASWaveArcFP7JASHeap();
extern "C" void loadTail__10JASWaveArcFP7JASHeap();
extern "C" void erase__10JASWaveArcFv();
extern "C" void stop__8JAISoundFUl();
extern "C" void moveVolume__18JAISoundParamsMoveFfUl();
extern "C" void getTypeID__13JAUSoundTableCF10JAISoundID();
extern "C" void resetFilterAll__10Z2SoundMgrFv();
extern "C" void resetModY__7Z2SeMgrFv();
extern "C" void seStopAll__7Z2SeMgrFUl();
extern "C" void seMoveVolumeAll__7Z2SeMgrFfUl();
extern "C" void bgmStart__8Z2SeqMgrFUlUll();
extern "C" void bgmStop__8Z2SeqMgrFUll();
extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl();
extern "C" void bgmStreamCheckReady__8Z2SeqMgrFv();
extern "C" void bgmStreamPlay__8Z2SeqMgrFv();
extern "C" void changeBgmStatus__8Z2SeqMgrFl();
extern "C" void setHeightVolMod__8Z2SeqMgrFbUl();
extern "C" void setTimeProcVolMod__8Z2SeqMgrFbUl();
extern "C" void checkBgmIDPlaying__8Z2SeqMgrFUl();
extern "C" void resetBattleBgmParams__8Z2SeqMgrFv();
extern "C" void setBattleBgmOff__8Z2SeqMgrFb();
extern "C" void menuOut__11Z2StatusMgrFv();
extern "C" void setDemoName__11Z2StatusMgrFPc();
extern "C" void checkDayTime__11Z2StatusMgrFv();
extern "C" void setSceneFx__11Z2FxLineMgrFl();
extern "C" void setForceBattleArea__13Z2SoundObjMgrFbUsUsUs();
extern "C" void setGhostEnemyState__13Z2SoundObjMgrFUc();
extern "C" void deleteEnemyAll__13Z2SoundObjMgrFv();
extern "C" void resetSceneInner__10Z2EnvSeMgrFv();
extern "C" void initSceneEnvSe__10Z2EnvSeMgrFlScf();
extern "C" void _savegpr_16();
extern "C" void _savegpr_29();
extern "C" void _restgpr_16();
extern "C" void _restgpr_29();
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 data_80450B3C[4];
extern "C" extern u8 data_80450B40[4];
extern "C" extern u8 data_80450B48[4];
extern "C" extern u8 data_80450B58[4];
extern "C" extern Z2SoundMgr* data_80450B60;
extern "C" extern u8 data_80450B7C[4];
extern "C" extern Z2SeMgr* data_80450B88;
extern "C" extern u8 data_80450CC0[4 + 4 /* padding */];
extern "C" extern u8 __OSReport_disable;
//
// Declarations:
//
/* 802B6840-802B68B0 2B1180 0070+00 0/0 1/1 0/0 .text __ct__10Z2SceneMgrFv */
Z2SceneMgr::Z2SceneMgr(void) : JASGlobalInstance<Z2SceneMgr>(this) {
volatile int timerx;
sceneNum = -1;
timerx = -1;
BGM_ID = -1;
roomNum = -1;
SeWave_1 = 0;
SeWaveToErase_1 = 0;
SeWave_2 = 0;
SeWaveToErase_2 = 0;
BgmWave_1 = 0;
BgmWaveToErase_1 = 0;
BgmWave_2 = 0;
BgmWaveToErase_2 = 0;
SeWave_3 = 0;
SeWaveToErase_3 = 0;
field_0x18 = 0;
field_0x19 = 0;
field_0x1a = 0;
field_0x1b = 0;
sceneExist = 0;
inGame = 0;
inDarkness = false;
field_0x17 = 0;
}
/* 802B68B0-802B68E0 2B11F0 0030+00 0/0 1/1 0/0 .text setInDarkness__10Z2SceneMgrFb */
void Z2SceneMgr::setInDarkness(bool param_0) {
inDarkness = param_0;
if (!param_0) {
Z2SoundMgr::getInstance()->resetFilterAll();
}
}
/* ############################################################################################## */
/* 80455A38-80455A3C 004038 0004+00 8/8 0/0 0/0 .sdata2 @3511 */
SECTION_SDATA2 static u8 lit_3511[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80455A3C-80455A40 00403C 0004+00 6/6 0/0 0/0 .sdata2 @3512 */
SECTION_SDATA2 static f32 lit_3512 = 1.0f;
/* 802B68E0-802B697C 2B1220 009C+00 3/3 2/2 2/2 .text setSceneExist__10Z2SceneMgrFb */
#ifdef NONMATCHING
void Z2SceneMgr::setSceneExist(bool param_1) {
sceneExist = param_1;
timer = 0;
JAISeMgr* seMgr = data_80450B60->getSeMgr();
if (param_1) {
inGame = 1;
if (SeWave_3 == 0x85) {
seMgr->getCategory(9)->getParams()->moveVolume(FLOAT_LABEL(lit_3511), 0);
} else if (SeWave_3 == 0x7F) {
data_80450B88->seMoveVolumeAll(FLOAT_LABEL(lit_3511), 0);
} else {
seMgr->getCategory(9)->getParams()->moveVolume(lit_3512, 33);
}
} else {
seMgr->getCategory(9)->getParams()->moveVolume(FLOAT_LABEL(lit_3511), 180);
}
}
#else
void Z2SceneMgr::setSceneExist(bool param_0) {
// NONMATCHING
}
#endif
/* ############################################################################################## */
/* 80455A40-80455A48 004040 0004+04 1/1 0/0 0/0 .sdata2 @3529 */
SECTION_SDATA2 static f32 lit_3529[1 + 1 /* padding */] = {
3.0f / 10.0f,
/* padding */
0.0f,
};
/* 80455A48-80455A50 004048 0008+00 5/5 0/0 0/0 .sdata2 @3531 */
SECTION_SDATA2 static f64 lit_3531 = 4503599627370496.0 /* cast u32 to float */;
/* 802B697C-802B6A18 2B12BC 009C+00 0/0 1/1 0/0 .text setFadeOutStart__10Z2SceneMgrFUc */
#ifdef NONMATCHING
void Z2SceneMgr::setFadeOutStart(u8 param_0) {
setSceneExist(false);
Z2SeqMgr::getInstance()->bgmAllMute(33, 3.0f / 10.0f);
Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3511), 33);
Z2SeqMgr::getInstance()->setBattleBgmOff(true);
field_0x17 = 40;
timer = -1;
}
#else
void Z2SceneMgr::setFadeOutStart(u8 param_0) {
// NONMATCHING
}
#endif
/* 802B6A18-802B6AF8 2B1358 00E0+00 0/0 1/1 0/0 .text setFadeInStart__10Z2SceneMgrFUc */
#ifdef NONMATCHING
void Z2SceneMgr::setFadeInStart(u8 param_0) {
if (SeWave_3 == 0x7f) {
Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3511), 0);
} else {
Z2SeMgr::getInstance()->seMoveVolumeAll(FLOAT_LABEL(lit_3512), 33);
if (SeWave_3 == 0x85) {
JAISeMgr* seMgr = Z2SoundMgr::getInstance()->getSeMgr();
seMgr->getCategory(9)->getParams()->moveVolume(FLOAT_LABEL(lit_3511), 0);
}
}
Z2SeqMgr::getInstance()->i_setTwilightGateVol(FLOAT_LABEL(lit_3512));
Z2StatusMgr::getInstance()->menuOut();
if (field_0x1a == 0) {
Z2SeqMgr::getInstance()->bgmAllMute(33, 3.0f / 10.0f);
}
inGame = true;
}
#else
void Z2SceneMgr::setFadeInStart(u8 param_0) {
// NONMATCHING
}
#endif
/* ############################################################################################## */
/* 8039BFA8-8039BFA8 028608 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8039BFA8 = "F_SP00";
SECTION_DEAD static char const* const stringBase_8039BFAF = "F_SP103";
SECTION_DEAD static char const* const stringBase_8039BFB7 = "R_SP01";
SECTION_DEAD static char const* const stringBase_8039BFBE = "F_SP104";
SECTION_DEAD static char const* const stringBase_8039BFC6 = "R_SP107";
SECTION_DEAD static char const* const stringBase_8039BFCE = "F_SP108";
SECTION_DEAD static char const* const stringBase_8039BFD6 = "R_SP108";
SECTION_DEAD static char const* const stringBase_8039BFDE = "F_SP117";
SECTION_DEAD static char const* const stringBase_8039BFE6 = "F_SP109";
SECTION_DEAD static char const* const stringBase_8039BFEE = "R_SP109";
SECTION_DEAD static char const* const stringBase_8039BFF6 = "R_SP209";
SECTION_DEAD static char const* const stringBase_8039BFFE = "F_SP110";
SECTION_DEAD static char const* const stringBase_8039C006 = "R_SP110";
SECTION_DEAD static char const* const stringBase_8039C00E = "F_SP111";
SECTION_DEAD static char const* const stringBase_8039C016 = "F_SP128";
SECTION_DEAD static char const* const stringBase_8039C01E = "R_SP128";
SECTION_DEAD static char const* const stringBase_8039C026 = "F_SP115";
SECTION_DEAD static char const* const stringBase_8039C02E = "F_SP112";
SECTION_DEAD static char const* const stringBase_8039C036 = "F_SP126";
SECTION_DEAD static char const* const stringBase_8039C03E = "F_SP127";
SECTION_DEAD static char const* const stringBase_8039C046 = "R_SP127";
SECTION_DEAD static char const* const stringBase_8039C04E = "F_SP113";
SECTION_DEAD static char const* const stringBase_8039C056 = "F_SP116";
SECTION_DEAD static char const* const stringBase_8039C05E = "R_SP116";
SECTION_DEAD static char const* const stringBase_8039C066 = "R_SP160";
SECTION_DEAD static char const* const stringBase_8039C06E = "R_SP161";
SECTION_DEAD static char const* const stringBase_8039C076 = "F_SP114";
SECTION_DEAD static char const* const stringBase_8039C07E = "F_SP118";
SECTION_DEAD static char const* const stringBase_8039C086 = "F_SP124";
SECTION_DEAD static char const* const stringBase_8039C08E = "F_SP125";
SECTION_DEAD static char const* const stringBase_8039C096 = "F_SP121";
SECTION_DEAD static char const* const stringBase_8039C09E = "F_SP122";
SECTION_DEAD static char const* const stringBase_8039C0A6 = "F_SP123";
SECTION_DEAD static char const* const stringBase_8039C0AE = "F_SP200";
SECTION_DEAD static char const* const stringBase_8039C0B6 = "F_SP102";
SECTION_DEAD static char const* const stringBase_8039C0BE = "";
SECTION_DEAD static char const* const stringBase_8039C0BF = "R_SP300";
SECTION_DEAD static char const* const stringBase_8039C0C7 = "R_SP301";
SECTION_DEAD static char const* const stringBase_8039C0CF = "T_ENEMY";
SECTION_DEAD static char const* const stringBase_8039C0D7 = "D_MN54";
SECTION_DEAD static char const* const stringBase_8039C0DE = "D_MN05";
SECTION_DEAD static char const* const stringBase_8039C0E5 = "D_MN05B";
SECTION_DEAD static char const* const stringBase_8039C0ED = "D_MN05A";
SECTION_DEAD static char const* const stringBase_8039C0F5 = "D_MN04";
SECTION_DEAD static char const* const stringBase_8039C0FC = "D_MN04B";
SECTION_DEAD static char const* const stringBase_8039C104 = "D_MN04A";
SECTION_DEAD static char const* const stringBase_8039C10C = "D_MN01";
SECTION_DEAD static char const* const stringBase_8039C113 = "D_MN01B";
SECTION_DEAD static char const* const stringBase_8039C11B = "D_MN01A";
SECTION_DEAD static char const* const stringBase_8039C123 = "D_MN10";
SECTION_DEAD static char const* const stringBase_8039C12A = "D_MN10B";
SECTION_DEAD static char const* const stringBase_8039C132 = "D_MN10A";
SECTION_DEAD static char const* const stringBase_8039C13A = "D_MN11";
SECTION_DEAD static char const* const stringBase_8039C141 = "D_MN11B";
SECTION_DEAD static char const* const stringBase_8039C149 = "D_MN11A";
SECTION_DEAD static char const* const stringBase_8039C151 = "D_MN06";
SECTION_DEAD static char const* const stringBase_8039C158 = "D_MN06B";
SECTION_DEAD static char const* const stringBase_8039C160 = "D_MN06A";
SECTION_DEAD static char const* const stringBase_8039C168 = "D_MN07";
SECTION_DEAD static char const* const stringBase_8039C16F = "D_MN07B";
SECTION_DEAD static char const* const stringBase_8039C177 = "D_MN07A";
SECTION_DEAD static char const* const stringBase_8039C17F = "D_MN08";
SECTION_DEAD static char const* const stringBase_8039C186 = "D_MN08B";
SECTION_DEAD static char const* const stringBase_8039C18E = "D_MN08C";
SECTION_DEAD static char const* const stringBase_8039C196 = "D_MN08A";
SECTION_DEAD static char const* const stringBase_8039C19E = "D_MN08D";
SECTION_DEAD static char const* const stringBase_8039C1A6 = "D_MN09";
SECTION_DEAD static char const* const stringBase_8039C1AD = "D_MN09A";
SECTION_DEAD static char const* const stringBase_8039C1B5 = "D_MN09B";
SECTION_DEAD static char const* const stringBase_8039C1BD = "D_MN09C";
SECTION_DEAD static char const* const stringBase_8039C1C5 = "D_SB00";
SECTION_DEAD static char const* const stringBase_8039C1CC = "D_SB01";
SECTION_DEAD static char const* const stringBase_8039C1D3 = "D_SB02";
SECTION_DEAD static char const* const stringBase_8039C1DA = "D_SB03";
SECTION_DEAD static char const* const stringBase_8039C1E1 = "D_SB04";
SECTION_DEAD static char const* const stringBase_8039C1E8 = "D_SB05";
SECTION_DEAD static char const* const stringBase_8039C1EF = "D_SB06";
SECTION_DEAD static char const* const stringBase_8039C1F6 = "D_SB07";
SECTION_DEAD static char const* const stringBase_8039C1FD = "D_SB08";
SECTION_DEAD static char const* const stringBase_8039C204 = "D_SB09";
SECTION_DEAD static char const* const stringBase_8039C20B = "D_SB10";
SECTION_DEAD static char const* const stringBase_8039C212 = "force_end";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_8039C21C = "\0\0\0";
#pragma pop
/* 803CA5C0-803CA704 -00001 0144+00 1/1 0/0 0/0 .data sSpotName */
SECTION_DATA static void* sSpotName[81] = {
(void*)&Z2SceneMgr__stringBase0,
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x7),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xF),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x16),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1E),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x26),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x2E),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x36),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x3E),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x46),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x4E),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x56),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x5E),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x66),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x6E),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x76),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x7E),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x86),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x8E),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x96),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x9E),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xA6),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xAE),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xB6),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xBE),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xC6),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xCE),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xD6),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xDE),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xE6),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xEE),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xF6),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0xFE),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x106),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x10E),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x116),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x117),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x11F),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x127),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x12F),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x136),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x13D),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x145),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x14D),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x154),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x15C),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x164),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x16B),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x173),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x17B),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x182),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x18A),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x192),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x199),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1A1),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1A9),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1B0),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1B8),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1C0),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1C7),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1CF),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1D7),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1DE),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1E6),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1EE),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1F6),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x1FE),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x205),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x20D),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x215),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x21D),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x224),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x22B),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x232),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x239),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x240),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x247),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x24E),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x255),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x25C),
(void*)(((char*)&Z2SceneMgr__stringBase0) + 0x263),
};
/* 803CA704-803CA744 -00001 0040+00 1/1 0/0 0/0 .data @5354 */
SECTION_DATA static void* lit_5354[16] = {
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2BC0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BEC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BDC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BE4),
};
/* 803CA744-803CA784 -00001 0040+00 1/1 0/0 0/0 .data @5353 */
SECTION_DATA static void* lit_5353[16] = {
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1B98),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1B98),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1B98),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BBC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BA8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BB8),
};
/* 803CA784-803CA7BC -00001 0038+00 1/1 0/0 0/0 .data @5352 */
SECTION_DATA static void* lit_5352[14] = {
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC48),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC78),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCA0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC08),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC08),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCC8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC18),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC20),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC28),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC34),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xC3C),
};
/* 803CA7BC-803CA7F4 -00001 0038+00 1/1 0/0 0/0 .data @5351 */
SECTION_DATA static void* lit_5351[14] = {
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xAF4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xADC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xADC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB48),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xADC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xAEC),
};
/* 803CA7F4-803CA824 -00001 0030+00 1/1 0/0 0/0 .data @5350 */
SECTION_DATA static void* lit_5350[12] = {
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7B0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x72C),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x804),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x804),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x778),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x788),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x798),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x790),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x798),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7A0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7A8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x7A8),
};
/* 803CA824-803CA844 -00001 0020+00 1/1 0/0 0/0 .data @5349 */
SECTION_DATA static void* lit_5349[8] = {
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x430),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x45C),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x52C),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x604),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x604),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x628),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x6F4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x604),
};
/* 803CA844-803CA878 -00001 0034+00 1/1 0/0 0/0 .data @5348 */
SECTION_DATA static void* lit_5348[13] = {
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2E0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x364),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x378),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x338),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x338),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x35C),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x3E4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x328),
};
/* 803CA878-803CA9BC -00001 0144+00 1/1 0/0 0/0 .data @5347 */
SECTION_DATA static void* lit_5347[81] = {
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x150),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1E0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x40C),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x700),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x80C),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xA08),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x968),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1824),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xB94),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xCF4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xF00),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1010),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1174),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0xF70),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1098),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1140),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x11BC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x13B4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x12D8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1338),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1384),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1468),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x150C),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x15E4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1688),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x17E0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x18E8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1994),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1934),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x19C8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1A30),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1BF4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1CF8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1DA8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1D2C),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2BC0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A7C),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x948),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x134),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2BC0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1E68),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1EA4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1F00),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1FAC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x1FE8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2038),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x20D8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2108),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2158),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x21F8),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2248),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2298),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2338),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2374),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x23D0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x247C),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x24AC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x24FC),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x259C),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x25F4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2644),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x26E4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2760),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2760),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x27B0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2894),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x28D4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2980),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A04),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A34),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2AC4),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2A84),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2AF0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2AF0),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B18),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B44),
(void*)(((char*)setSceneName__10Z2SceneMgrFPcll) + 0x2B6C),
};
/* 80455A50-80455A54 004050 0004+00 1/1 0/0 0/0 .sdata2 @5341 */
SECTION_SDATA2 static f32 lit_5341 = -1.0f;
/* 80455A54-80455A58 004054 0004+00 2/2 0/0 0/0 .sdata2 @5342 */
SECTION_SDATA2 static f32 lit_5342 = 0.5f;
/* 80455A58-80455A5C 004058 0004+00 1/1 0/0 0/0 .sdata2 @5343 */
SECTION_SDATA2 static f32 lit_5343 = 7.0f / 10.0f;
/* 80455A5C-80455A60 00405C 0004+00 1/1 0/0 0/0 .sdata2 @5344 */
SECTION_SDATA2 static f32 lit_5344 = 4.0f / 5.0f;
/* 80455A60-80455A64 004060 0004+00 1/1 0/0 0/0 .sdata2 @5345 */
SECTION_SDATA2 static f32 lit_5345 = 1.0f / 10.0f;
/* 80455A64-80455A68 004064 0004+00 1/1 0/0 0/0 .sdata2 @5346 */
SECTION_SDATA2 static f32 lit_5346 = 2.0f / 25.0f;
/* 802B6AF8-802B995C 2B1438 2E64+00 8/0 1/1 0/0 .text setSceneName__10Z2SceneMgrFPcll */
void Z2SceneMgr::setSceneName(char* param_0, s32 param_1, s32 param_2) {
// NONMATCHING
}
//! @meme this looks to be non-inlined here because @ref setSceneName is too large*
extern "C" void __ct__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& soundIdToSet) {
this_->mId = soundIdToSet.mId;
}
/* 802B9968-802B9978 2B42A8 0010+00 1/1 0/0 0/0 .text setFieldBgmPlay__8Z2SeqMgrFb */
void Z2SeqMgr::setFieldBgmPlay(bool param_1) {
mFlags.flag5 = param_1;
}
/* 802B9978-802B9988 2B42B8 0010+00 1/1 0/0 0/0 .text isActive__12JAIStreamMgrCFv */
bool JAIStreamMgr::isActive() const {
// NONMATCHING
}
/* 802B9988-802B9994 2B42C8 000C+00 1/1 0/0 0/0 .text getID__8JAISoundCFv */
// JAISoundID JAISound::getID() const {
extern "C" void getID__8JAISoundCFv() {
// NONMATCHING
}
/* 802B9994-802B999C 2B42D4 0008+00 1/1 0/0 0/0 .text getFirst__19JSUList<9JAIStream>CFv
*/
extern "C" void func_802B9994(void* _this) /* const */ {
// NONMATCHING
}
/* 802B999C-802B99AC 2B42DC 0010+00 1/1 0/0 0/0 .text dComIfGs_getStartPoint__Fv */
static void dComIfGs_getStartPoint() {
// NONMATCHING
}
/* 802B99AC-802B9A24 2B42EC 0078+00 1/1 0/0 0/0 .text unMuteSceneBgm__8Z2SeqMgrFUl */
void Z2SeqMgr::unMuteSceneBgm(u32 param_0) {
// NONMATCHING
}
/* 802B9A24-802B9A88 2B4364 0064+00 1/1 0/0 0/0 .text muteSceneBgm__8Z2SeqMgrFUlf */
void Z2SeqMgr::muteSceneBgm(u32 param_0, f32 param_1) {
// NONMATCHING
}
/* 802B9A88-802B9A94 2B43C8 000C+00 1/1 0/0 0/0 .text __as__10JAISoundIDFRC10JAISoundID
*/
extern "C" void __as__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& param_0) {
// NONMATCHING
}
/* 802B9A94-802B9AC4 2B43D4 0030+00 1/1 0/0 0/0 .text dComIfGs_isSaveSwitch__Fi */
static void dComIfGs_isSaveSwitch(int param_0) {
// NONMATCHING
}
/* 802B9AC4-802B9AD0 2B4404 000C+00 1/1 0/0 0/0 .text resetCrowdSize__7Z2SeMgrFv */
void Z2SeMgr::resetCrowdSize() {
// NONMATCHING
}
/* 802B9AD0-802B9AFC 2B4410 002C+00 1/1 0/0 0/0 .text setTwilightGateVol__8Z2SeqMgrFf */
void Z2SeqMgr::setTwilightGateVol(f32 param_0) {
// NONMATCHING
}
/* 802B9AFC-802B9B60 2B443C 0064+00 1/1 0/0 0/0 .text setWindStoneVol__8Z2SeqMgrFfUl */
void Z2SeqMgr::setWindStoneVol(f32 param_0, u32 param_1) {
// NONMATCHING
}
/* 802B9B60-802B9B68 -00001 0008+00 0/0 0/0 0/0 .text __ct__10JAISoundIDFUl */
// JAISoundID::JAISoundID(u32 id) {
extern "C" void __ct__10JAISoundIDFUl(void* param_0, u32 param_1) {
*(u32*)param_0 = (u32)(param_1);
}
/* 802B9B68-802B9C50 2B44A8 00E8+00 1/1 0/0 0/0 .text
* sceneChange__10Z2SceneMgrF10JAISoundIDUcUcUcUcUcb */
void Z2SceneMgr::sceneChange(JAISoundID param_0, u8 param_1, u8 param_2, u8 param_3, u8 param_4,
u8 param_5, bool param_6) {
// NONMATCHING
}
/* 802B9C50-802B9D40 2B4590 00F0+00 0/0 1/1 0/0 .text framework__10Z2SceneMgrFv */
void Z2SceneMgr::framework() {
// NONMATCHING
}
/* 802B9D40-802B9D98 2B4680 0058+00 0/0 1/1 0/0 .text load1stDynamicWave__10Z2SceneMgrFv
*/
void Z2SceneMgr::load1stDynamicWave() {
// NONMATCHING
}
/* 802B9D98-802B9FC8 2B46D8 0230+00 2/2 0/0 0/0 .text _load1stWaveInner_1__10Z2SceneMgrFv
*/
void Z2SceneMgr::_load1stWaveInner_1() {
// NONMATCHING
}
/* 802B9FC8-802BA09C 2B4908 00D4+00 2/2 0/0 0/0 .text _load1stWaveInner_2__10Z2SceneMgrFv
*/
void Z2SceneMgr::_load1stWaveInner_2() {
// NONMATCHING
}
/* 802BA09C-802BA120 2B49DC 0084+00 0/0 1/1 0/0 .text check1stDynamicWave__10Z2SceneMgrFv
*/
bool Z2SceneMgr::check1stDynamicWave() {
// NONMATCHING
}
/* 802BA120-802BA294 2B4A60 0174+00 0/0 2/2 0/0 .text load2ndDynamicWave__10Z2SceneMgrFv
*/
void Z2SceneMgr::load2ndDynamicWave() {
// NONMATCHING
}
/* ############################################################################################## */
/* 803CA9BC-803CAB18 -00001 015C+00 1/1 0/0 0/0 .data @5852 */
SECTION_DATA static void* lit_5852[87] = {
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x204),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x23C),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x150),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x180),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x190),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x2A0),
(void*)(((char*)sceneBgmStart__10Z2SceneMgrFv) + 0x1B8),
};
/* 802BA294-802BA56C 2B4BD4 02D8+00 1/0 2/2 0/0 .text sceneBgmStart__10Z2SceneMgrFv */
void Z2SceneMgr::sceneBgmStart() {
// NONMATCHING
}
/* 802BA56C-802BA5C0 2B4EAC 0054+00 0/0 1/1 0/0 .text loadStaticWaves__10Z2SceneMgrFv */
void Z2SceneMgr::loadStaticWaves() {
// NONMATCHING
}
/* 802BA5C0-802BA5C8 2B4F00 0008+00 0/0 1/1 0/0 .text checkFirstWaves__10Z2SceneMgrFv */
BOOL Z2SceneMgr::checkFirstWaves() {
return false;
}
/* 802BA5C8-802BA630 2B4F08 0068+00 2/2 0/0 0/0 .text eraseSeWave__10Z2SceneMgrFUl */
void Z2SceneMgr::eraseSeWave(u32 param_0) {
// NONMATCHING
}
/* 802BA630-802BA698 2B4F70 0068+00 2/2 0/0 0/0 .text eraseBgmWave__10Z2SceneMgrFUl */
void Z2SceneMgr::eraseBgmWave(u32 param_0) {
// NONMATCHING
}
/* 802BA698-802BA704 2B4FD8 006C+00 1/1 0/0 0/0 .text getWaveLoadStatus__10Z2SceneMgrFUlUl */
void Z2SceneMgr::getWaveLoadStatus(u32 param_0, u32 param_1) {
// NONMATCHING
}
/* 802BA704-802BA770 2B5044 006C+00 3/3 0/0 0/0 .text loadSeWave__10Z2SceneMgrFUl */
void Z2SceneMgr::loadSeWave(u32 param_0) {
// NONMATCHING
}
/* 802BA770-802BA7DC 2B50B0 006C+00 3/3 0/0 0/0 .text loadBgmWave__10Z2SceneMgrFUl */
void Z2SceneMgr::loadBgmWave(u32 param_0) {
// NONMATCHING
}
/* 8039BFA8-8039BFA8 028608 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+201
View File
@@ -0,0 +1,201 @@
//
// Generated By: dol2asm
// Translation Unit: Z2SoundHandles
//
#include "Z2AudioLib/Z2SoundHandles.h"
#include "JSystem/JAudio2/JAISoundInfo.h"
#include "dol2asm.h"
extern "C" void func_802AB200(void* _this);
extern "C" void __ct__17JASGenericMemPoolFv();
extern "C" void __dt__17JASGenericMemPoolFv();
extern "C" void alloc__17JASGenericMemPoolFUl();
extern "C" void free__17JASGenericMemPoolFPvUl();
extern "C" void releaseSound__14JAISoundHandleFv();
extern "C" void stop__8JAISoundFUl();
extern "C" void __dl__FPv();
extern "C" void __ct__10JSUPtrLinkFPv();
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_26();
extern "C" void _savegpr_28();
extern "C" void _restgpr_26();
extern "C" void _restgpr_28();
extern "C" extern u8 data_80451348[8];
/* 804341B8-804341C4 060ED8 000C+00 3/3 0/0 0/0 .bss @632 */
static u8 lit_632[12];
/* 804341C4-804341D8 060EE4 0010+04 3/3 1/1 0/0 .bss
* memPool_$localstatic3$getMemPool___39JASPoolAllocObject<17Z2SoundHandlePool>Fv */
extern u8 data_804341C4[16 + 4 /* padding */];
u8 data_804341C4[16 + 4 /* padding */];
// inline JAISoundID::JAISoundID(u32 pId) : mId(pId) {}
Z2SoundHandles::Z2SoundHandles() {
mNumHandles = 0;
}
Z2SoundHandles::~Z2SoundHandles() {
deleteHandlesPool();
}
void Z2SoundHandles::initHandlesPool(u8 pNumHandles) {
mNumHandles = pNumHandles;
}
/* 802AB120-802AB200 2A5A60 00E0+00 1/1 1/1 0/0 .text deleteHandlesPool__14Z2SoundHandlesFv */
#ifdef NONMATCHING
void Z2SoundHandles::deleteHandlesPool() {
JSULink<Z2SoundHandlePool>* link;
while (link = getFirst(), link != NULL) {
Z2SoundHandlePool* handle = link->getObject();
remove(handle);
delete handle;
}
mNumHandles = 0;
}
#else
void Z2SoundHandles::deleteHandlesPool() {
// NONMATCHING
}
#endif
/* 802AB200-802AB254 2A5B40 0054+00 3/3 1/1 0/0 .text __dt__31JASMemPool<17Z2SoundHandlePool>Fv */
extern "C" void func_802AB200(void* _this) {
// NONMATCHING
}
Z2SoundHandlePool* Z2SoundHandles::getHandleSoundID(JAISoundID pSoundId) {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
Z2SoundHandlePool* handle = link->getObject();
if (handle->isSoundAttached()) {
if ((*handle)->getID() == pSoundId) {
return handle;
}
}
}
return NULL;
}
Z2SoundHandlePool* Z2SoundHandles::getHandleUserData(u32 pUserData) {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
Z2SoundHandlePool* handle = link->getObject();
if (handle->isSoundAttached()) {
if ((*handle)->getUserData() == pUserData) {
return handle;
}
}
}
return NULL;
}
/* 802AB2D8-802AB3D0 2A5C18 00F8+00 0/0 3/3 0/0 .text getFreeHandle__14Z2SoundHandlesFv
*/
#ifdef NONMATCHING
Z2SoundHandlePool* Z2SoundHandles::getFreeHandle() {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
Z2SoundHandlePool* handle = link->getObject();
if (!handle->isSoundAttached()) {
return handle;
}
}
if (getNumHandles() < mNumHandles)
{
Z2SoundHandlePool* handle = new Z2SoundHandlePool();
if (handle != NULL) {
append(handle);
return handle;
}
}
return NULL;
}
#else
Z2SoundHandlePool* Z2SoundHandles::getFreeHandle() {
// NONMATCHING
}
#endif
/* 802AB3D0-802AB4A0 2A5D10 00D0+00 0/0 2/2 0/0 .text
* getLowPrioSound__14Z2SoundHandlesF10JAISoundID */
Z2SoundHandlePool* Z2SoundHandles::getLowPrioSound(JAISoundID pSoundId) {
JAISoundInfo* sound_info = JASGlobalInstance<JAISoundInfo>::getInstance();
Z2SoundHandlePool* handle;
u32 low_prio = 0xffff;
Z2SoundHandlePool* low_prio_handle = NULL;
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
handle = link->getObject();
if (!handle->isSoundAttached()) {
return handle;
}
u32 prio = sound_info->getPriority(handle->getSound()->getID());
if (prio < low_prio) {
low_prio = prio;
low_prio_handle = handle;
}
}
if (sound_info->getPriority(pSoundId) >= low_prio) {
return low_prio_handle;
}
return NULL;
}
void Z2SoundHandles::stopAllSounds(u32 fadeout) {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
JAISoundHandle* handle = link->getObject();
//! @meme: explicit operator bool call required to match and be similar
//! to CHN_debug; could more concisely write handle->isSoundAttached
//! (for some reason cast-to-bool doesn't work?)
if (handle && handle->operator bool()) {
(*handle)->stop(fadeout);
}
}
}
bool Z2SoundHandles::isActive() const {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
if (link->getObject()->isSoundAttached()) {
return true;
}
}
return false;
}
/* 802AB538-802AB64C 2A5E78 0114+00 0/0 1/1 0/0 .text
* setPos__14Z2SoundHandlesFRCQ29JGeometry8TVec3<f> */
#ifdef NONMATCHING
void Z2SoundHandles::setPos(JGeometry::TVec3<f32> const& param_0) {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
Z2SoundHandlePool* handle = link->getObject();
if (handle->isSoundAttached()) {
handle->getSound()->setPos(param_0);
}
else {
remove(handle);
delete handle;
}
}
}
#else
void Z2SoundHandles::setPos(JGeometry::TVec3<f32> const& param_0) {
// NONMATCHING
}
#endif
+456
View File
@@ -0,0 +1,456 @@
//
// Generated By: dol2asm
// Translation Unit: Z2SoundInfo
//
#include "Z2AudioLib/Z2SoundInfo.h"
#include "JSystem/JAudio2/JAISeq.h"
#include "JSystem/JAudio2/JAISe.h"
#include "JSystem/JAudio2/JAUSoundTable.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "Z2AudioLib/Z2Calc.h"
#include "dol2asm.h"
#include "dolphin/dvd.h"
//
// Types:
//
struct JAUStdSoundTableType {
static u32 STRM_CH_SHIFT;
struct StringOffset {
static inline const char* getString(const void* addr, u32 offset) {
return (const char*)addr + offset;
}
};
};
//
// Forward References:
//
extern "C" void getBgmSeqResourceID__11Z2SoundInfoCF10JAISoundID();
extern "C" void getSoundType__11Z2SoundInfoCF10JAISoundID();
extern "C" void getCategory__11Z2SoundInfoCF10JAISoundID();
extern "C" void getPriority__11Z2SoundInfoCF10JAISoundID();
extern "C" void getAudibleSwFull__11Z2SoundInfoF10JAISoundID();
extern "C" void getAudibleSw__11Z2SoundInfoCF10JAISoundID();
extern "C" void getSeInfo__11Z2SoundInfoCF10JAISoundIDP5JAISe();
extern "C" void getSeqInfo__11Z2SoundInfoCF10JAISoundIDP6JAISeq();
extern "C" void getStreamInfo__11Z2SoundInfoCF10JAISoundIDP9JAIStream();
extern "C" void getStreamFilePath__11Z2SoundInfoF10JAISoundID();
extern "C" void getStreamFileEntry__11Z2SoundInfoF10JAISoundID();
extern "C" void getSwBit__11Z2SoundInfoCF10JAISoundID();
extern "C" void getSoundInfo___11Z2SoundInfoCF10JAISoundIDP8JAISound();
extern "C" void __dt__11Z2SoundInfoFv();
extern "C" static void func_802BBCBC();
extern "C" static void func_802BBCC4();
extern "C" static void func_802BBCCC();
extern "C" static void func_802BBCD4();
extern "C" u32 STRM_CH_SHIFT__20JAUStdSoundTableType;
//
// External References:
//
extern "C" void __dt__12JAISoundInfoFv();
extern "C" void __dt__16JAIStreamDataMgrFv();
extern "C" void getTypeID__13JAUSoundTableCF10JAISoundID();
extern "C" void getData__13JAUSoundTableCF10JAISoundID();
extern "C" void linearTransform__6Z2CalcFfffffb();
extern "C" void getRandom_0_1__6Z2CalcFv();
extern "C" void __dl__FPv();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__12JAUSoundInfo[4 + 1 /* padding */];
extern "C" extern u8 data_80450B58[4];
extern "C" extern u8 __OSReport_disable;
/* 802BB00C-802BB090 2B594C 0084+00 2/1 0/0 0/0 .text
* getBgmSeqResourceID__11Z2SoundInfoCF10JAISoundID */
u16 Z2SoundInfo::getBgmSeqResourceID(JAISoundID param_0) const {
JUT_ASSERT(20, isValid());
JAUSoundTableItem* data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_0);
u8 typeID = JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_0);
if (data != NULL) {
switch ((typeID & 0xf0)) {
case 0x60:
return data->mResourceId;
}
}
return 0xffff;
}
/* 802BB090-802BB0D8 2B59D0 0048+00 1/0 0/0 0/0 .text getSoundType__11Z2SoundInfoCF10JAISoundID */
int Z2SoundInfo::getSoundType(JAISoundID param_0) const {
switch (param_0.mId.mBytes.b0) {
case 0:
return 0;
case 1:
return 1;
case 2:
return 2;
}
return -1;
}
/* 802BB0D8-802BB0E0 2B5A18 0008+00 1/0 0/0 0/0 .text getCategory__11Z2SoundInfoCF10JAISoundID */
int Z2SoundInfo::getCategory(JAISoundID param_0) const {
return param_0.mId.mBytes.b1;
}
/* 802BB0E0-802BB158 2B5A20 0078+00 1/0 0/0 0/0 .text getPriority__11Z2SoundInfoCF10JAISoundID */
u32 Z2SoundInfo::getPriority(JAISoundID param_0) const {
JUT_ASSERT(63, isValid());
JAUSoundTableItem* data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_0);
u8 typeID = JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_0);
if (data != NULL && (typeID & 0x40) != 0) {
return data->mPriority;
}
return 0;
}
/* 802BB158-802BB448 2B5A98 02F0+00 0/0 1/1 0/0 .text getAudibleSwFull__11Z2SoundInfoF10JAISoundID
*/
JAUAudibleParam Z2SoundInfo::getAudibleSwFull(JAISoundID param_0) {
JAUAudibleParam local_28;
JUT_ASSERT(82, isValid());
switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_0)) {
case 81:
local_28.field_0x0.bytes.b0_0 = (u32)getSwBit(param_0) >> 8;
if ((getSwBit(param_0) & 1) != 0) {
local_28.field_0x0.bytes.b0_4 = 0;
} else {
local_28.field_0x0.bytes.b0_4 = 1;
}
if ((getSwBit(param_0) & 2) != 0) {
local_28.field_0x0.bytes.b0_5 = 0;
} else {
local_28.field_0x0.bytes.b0_5 = 1;
}
if ((getSwBit(param_0) & 4) != 0) {
local_28.field_0x0.bytes.b0_6 = 0;
} else {
local_28.field_0x0.bytes.b0_6 = 1;
}
if ((getSwBit(param_0) & 0x800000) != 0) {
local_28.field_0x0.bytes.b0_7 = 1;
} else {
local_28.field_0x0.bytes.b0_7 = 0;
}
if ((getSwBit(param_0) & 0x1000) != 0) {
local_28.field_0x0.bytes.b1_0 = 0;
} else {
local_28.field_0x0.bytes.b1_0 = 1;
}
if ((getSwBit(param_0) & 0x2000) != 0) {
local_28.field_0x0.bytes.b1_1 = 0;
} else {
local_28.field_0x0.bytes.b1_1 = 1;
}
int iVar1;
int uVar7 = 0;
if ((getSwBit(param_0) & 0x80000) != 0) {
uVar7 = 8;
}
iVar1 = (getSwBit(param_0) >> 16) & 0x7;
iVar1 += (getSwBit(param_0) >> 16) & 0x70;
iVar1 += (getSwBit(param_0) >> 16) & 0xf00;
local_28.field_0x0.bytes.b1_2_7 = uVar7;
local_28.field_0x0.half.f1 = iVar1;
break;
default:
local_28.field_0x0.bytes.b0_0 = 0;
local_28.field_0x0.bytes.b0_4 = 1;
local_28.field_0x0.bytes.b0_5 = 1;
local_28.field_0x0.bytes.b0_6 = 1;
local_28.field_0x0.bytes.b0_7 = 0;
local_28.field_0x0.bytes.b1_0 = 1;
local_28.field_0x0.bytes.b1_1 = 1;
local_28.field_0x0.bytes.b1_2_7 = 0;
local_28.field_0x0.half.f1 = 0;
break;
}
return local_28;
}
/* 802BB448-802BB6DC 2B5D88 0294+00 2/1 0/0 0/0 .text getAudibleSw__11Z2SoundInfoCF10JAISoundID */
u16 Z2SoundInfo::getAudibleSw(JAISoundID param_0) const {
JAUAudibleParam local_28;
JUT_ASSERT(184, isValid());
switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_0)) {
case 81:
local_28.field_0x0.bytes.b0_0 = (u32)getSwBit(param_0) >> 8;
if ((getSwBit(param_0) & 1) != 0) {
local_28.field_0x0.bytes.b0_4 = 0;
} else {
local_28.field_0x0.bytes.b0_4 = 1;
}
if ((getSwBit(param_0) & 2) != 0) {
local_28.field_0x0.bytes.b0_5 = 0;
} else {
local_28.field_0x0.bytes.b0_5 = 1;
}
if ((getSwBit(param_0) & 4) != 0) {
local_28.field_0x0.bytes.b0_6 = 0;
} else {
local_28.field_0x0.bytes.b0_6 = 1;
}
if ((getSwBit(param_0) & 0x800000) != 0) {
local_28.field_0x0.bytes.b0_7 = 1;
} else {
local_28.field_0x0.bytes.b0_7 = 0;
}
if ((getSwBit(param_0) & 0x1000) != 0) {
local_28.field_0x0.bytes.b1_0 = 0;
} else {
local_28.field_0x0.bytes.b1_0 = 1;
}
if ((getSwBit(param_0) & 0x2000) != 0) {
local_28.field_0x0.bytes.b1_1 = 0;
} else {
local_28.field_0x0.bytes.b1_1 = 1;
}
int iVar1;
int uVar7 = 0;
if ((getSwBit(param_0) & 0x80000) != 0) {
uVar7 = 8;
}
iVar1 = (getSwBit(param_0) >> 16) & 0x7;
iVar1 += (getSwBit(param_0) >> 16) & 0x70;
iVar1 += (getSwBit(param_0) >> 16) & 0xf00;
local_28.field_0x0.bytes.b1_2_7 = uVar7;
local_28.field_0x0.half.f1 = iVar1;
break;
default:
local_28.field_0x0.half.f0 = 0xffff;
local_28.field_0x0.half.f1 = 0xffff;
break;
}
return local_28.field_0x0.half.f0;
}
/* ############################################################################################## */
/* 80455A68-80455A6C 004068 0004+00 1/1 0/0 0/0 .sdata2 @963 */
SECTION_SDATA2 static f32 lit_963 = 8.0f;
/* 80455A6C-80455A70 00406C 0004+00 1/1 0/0 0/0 .sdata2 @964 */
SECTION_SDATA2 static f32 lit_964 = 15.0f;
/* 80455A70-80455A74 004070 0004+00 1/1 0/0 0/0 .sdata2 @965 */
SECTION_SDATA2 static f32 lit_965 = 16.0f;
/* 80455A74-80455A78 004074 0004+00 1/1 0/0 0/0 .sdata2 @966 */
SECTION_SDATA2 static f32 lit_966 = 24.0f;
/* 80455A78-80455A7C 004078 0004+00 1/1 0/0 0/0 .sdata2 @967 */
SECTION_SDATA2 static f32 lit_967 = 48.0f;
/* 80455A7C-80455A80 00407C 0004+00 2/2 0/0 0/0 .sdata2 @968 */
SECTION_SDATA2 static u8 lit_968[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80455A80-80455A88 004080 0004+04 2/2 0/0 0/0 .sdata2 @969 */
SECTION_SDATA2 static f32 lit_969[1 + 1 /* padding */] = {
1.0f,
/* padding */
0.0f,
};
/* 80455A88-80455A90 004088 0008+00 2/2 0/0 0/0 .sdata2 @973 */
SECTION_SDATA2 static f64 lit_973 = 4503599627370496.0 /* cast u32 to float */;
/* 802BB6DC-802BB8B4 2B601C 01D8+00 1/0 0/0 0/0 .text
* getSeInfo__11Z2SoundInfoCF10JAISoundIDP5JAISe */
void Z2SoundInfo::getSeInfo(JAISoundID param_1, JAISe* param_2) const {
getSoundInfo_(param_1, param_2);
JUT_ASSERT(292, isValid());
JAUSoundTableItem* data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_1);
u8 typeID = JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_1);
if (data == NULL) {
return;
}
switch(typeID) {
case 81:
param_2->getProperty().field_0x8 *= data->field_0x8;
u32 uStack_6c = (getSwBit(param_1) & 0xf0) >> 4;
if (uStack_6c > 8) {
f32 dVar18 = Z2Calc::getRandom_0_1();
f32 dVar19 = Z2Calc::linearTransform(uStack_6c, 8.0f, 15.0f, 16.0f, 24.0f, true);
dVar19 = dVar19 / 48.0f * dVar18;
param_2->getProperty().field_0x8 += dVar19;
} else {
f32 dVar18 = Z2Calc::getRandom_0_1();
dVar18 = (uStack_6c / 48.0f) * dVar18;
param_2->getProperty().field_0x8 += dVar18;
}
u32 uVar1 = (u32)getSwBit(param_1) >> 0x1c;
if (uVar1 != 0) {
f32 dVar18 = (uVar1 / 15.0f) * Z2Calc::getRandom_0_1();
param_2->getProperty().field_0x0 -= dVar18 < 0.0f ? 0.0f : (dVar18 > 1.0f ? 1.0f : dVar18);
}
break;
}
}
/* 802BB8B4-802BB8E0 2B61F4 002C+00 1/0 0/0 0/0 .text
* getSeqInfo__11Z2SoundInfoCF10JAISoundIDP6JAISeq */
void Z2SoundInfo::getSeqInfo(JAISoundID param_0, JAISeq* param_1) const {
getSoundInfo_(param_0, param_1);
}
/* ############################################################################################## */
/* 80455A90-80455A94 004090 0004+00 1/1 0/0 0/0 .sdata2 STRM_CH_SHIFT__20JAUStdSoundTableType */
SECTION_SDATA2 u32 JAUStdSoundTableType::STRM_CH_SHIFT = 0x00000002;
/* 80455A94-80455A98 004094 0004+00 1/1 0/0 0/0 .sdata2 @1010 */
SECTION_SDATA2 static f32 lit_1010 = 0.5f;
/* 802BB8E0-802BBA10 2B6220 0130+00 1/0 0/0 0/0 .text
* getStreamInfo__11Z2SoundInfoCF10JAISoundIDP9JAIStream */
// regalloc
#ifdef NONMATCHING
void Z2SoundInfo::getStreamInfo(JAISoundID param_1, JAIStream* param_2) const {
int numChild;
JAUSoundTableItem* data;
getSoundInfo_(param_1, param_2);
JUT_ASSERT(349, isValid());
switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_1) & 0xf0) {
case 0x70:
int chShift;
u32 uVar1;
s32 iVar4;
u16 uVar3;
data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_1);
JUT_ASSERT(356, data);
uVar1 = data->mResourceId;
numChild = param_2->getNumChild();
iVar4 = 0;
chShift = JAUStdSoundTableType::STRM_CH_SHIFT;
for (uVar3 = uVar1; iVar4 < numChild && uVar3 != 0; uVar3 >>= chShift, iVar4++) {
u32 uVar2 = uVar3 & 3;
if (uVar2 != 0) {
JAISoundChild* child = param_2->getChild(iVar4);
if (child != NULL) {
switch (uVar2) {
case 1:
child->mMove.mParams.mPan = 0.5f;
break;
case 2:
child->mMove.mParams.mPan = 0.0f;
break;
case 3:
child->mMove.mParams.mPan = 1.0f;
break;
}
}
}
}
}
}
#else
void Z2SoundInfo::getStreamInfo(JAISoundID param_0, JAIStream* param_1) const {
// NONMATCHING
}
#endif
/* 802BBA10-802BBA88 2B6350 0078+00 1/1 0/0 0/0 .text
* getStreamFilePath__11Z2SoundInfoF10JAISoundID */
const char* Z2SoundInfo::getStreamFilePath(JAISoundID param_1) {
JUT_ASSERT(387, isValid());
switch (JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_1) & 0xf0) {
case 0x70:
JAUSoundTableItem* data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_1);
JUT_ASSERT(394, data);
const void* resource = JASGlobalInstance<JAUSoundTable>::getInstance()->getResource();
JUT_ASSERT(398, resource);
return JAUStdSoundTableType::StringOffset::getString(resource, data->field_0x4);
default:
return NULL;
break;
}
}
/* 802BBA88-802BBAC8 2B63C8 0040+00 2/1 0/0 0/0 .text
* getStreamFileEntry__11Z2SoundInfoF10JAISoundID */
s32 Z2SoundInfo::getStreamFileEntry(JAISoundID param_0) {
const char* path = getStreamFilePath(param_0);
return !path ? -1 : DVDConvertPathToEntrynum(path);
}
/* 802BBAC8-802BBB48 2B6408 0080+00 3/3 4/4 0/0 .text getSwBit__11Z2SoundInfoCF10JAISoundID */
int Z2SoundInfo::getSwBit(JAISoundID param_1) const {
JUT_ASSERT(418, isValid());
JAUSoundTableItem* data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_1);
u8 typeID = JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_1);
if (data != NULL) {
switch(typeID) {
case 81:
return data->field_0x4;
}
}
return 0xffffffff;
}
/* ############################################################################################## */
/* 80455A98-80455AA0 004098 0004+04 1/1 0/0 0/0 .sdata2 @1070 */
SECTION_SDATA2 static f32 lit_1070[1 + 1 /* padding */] = {
1.0f / 127.0f,
/* padding */
0.0f,
};
/* 802BBB48-802BBBE0 2B6488 0098+00 3/3 0/0 0/0 .text
* getSoundInfo___11Z2SoundInfoCF10JAISoundIDP8JAISound */
void Z2SoundInfo::getSoundInfo_(JAISoundID param_1, JAISound* param_2) const {
JUT_ASSERT(440, isValid());
JAUSoundTableItem* data = JASGlobalInstance<JAUSoundTable>::getInstance()->getData(param_1);
u8 typeID = JASGlobalInstance<JAUSoundTable>::getInstance()->getTypeID(param_1);
if (data != NULL && (typeID & 0x40) != 0) {
param_2->getProperty().field_0x0 = (1.0f / 127.0f) * data->field_0x1;
}
}
/* 802BBBE0-802BBCBC 2B6520 00DC+00 2/1 0/0 0/0 .text __dt__11Z2SoundInfoFv */
Z2SoundInfo::~Z2SoundInfo() {}
/* 802BBCBC-802BBCC4 2B65FC 0008+00 1/0 0/0 0/0 .text
* @4@getBgmSeqResourceID__11Z2SoundInfoCF10JAISoundID */
static void func_802BBCBC() {
// NONMATCHING
}
/* 802BBCC4-802BBCCC 2B6604 0008+00 1/0 0/0 0/0 .text @4@getAudibleSw__11Z2SoundInfoCF10JAISoundID
*/
static void func_802BBCC4() {
// NONMATCHING
}
/* 802BBCCC-802BBCD4 2B660C 0008+00 1/0 0/0 0/0 .text @8@__dt__11Z2SoundInfoFv */
static void func_802BBCCC() {
// NONMATCHING
}
/* 802BBCD4-802BBCDC 2B6614 0008+00 1/0 0/0 0/0 .text
* @8@getStreamFileEntry__11Z2SoundInfoF10JAISoundID */
static void func_802BBCD4() {
// NONMATCHING
}
+582
View File
@@ -0,0 +1,582 @@
//
// Generated By: dol2asm
// Translation Unit: Z2SoundMgr
//
#include "Z2AudioLib/Z2SoundMgr.h"
#include "Z2AudioLib/Z2Param.h"
#include "Z2AudioLib/Z2SceneMgr.h"
#include "Z2AudioLib/Z2SpeechMgr2.h"
#include "Z2AudioLib/Z2SeqMgr.h"
#include "Z2AudioLib/Z2SeMgr.h"
#include "Z2AudioLib/Z2SoundInfo.h"
#include "JSystem/JAudio2/JASCalc.h"
#include "JSystem/JAudio2/JASDriverIF.h"
#include "JSystem/JAudio2/JAUSectionHeap.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" void seqCallback__FP8JASTrackUs();
extern "C" void __ct__10Z2SoundMgrFv();
extern "C" void func_802A9EE8();
extern "C" void calc__10Z2SoundMgrFv();
extern "C" void setIIR__10Z2SoundMgrFP8JAISoundPCs();
extern "C" void setFilterOff__10Z2SoundMgrFP8JAISound();
extern "C" void resetFilterAll__10Z2SoundMgrFv();
extern "C" void mixOut__10Z2SoundMgrFv();
extern "C" void framework__10Z2SoundMgrFv();
extern "C" void pauseAllGameSound__10Z2SoundMgrFb();
extern "C" void stopSoundID__10Z2SoundMgrF10JAISoundID();
extern "C" void stopSync__10Z2SoundMgrFv();
extern "C" void stop__10Z2SoundMgrFv();
extern "C" void initParams__10Z2SoundMgrFv();
extern "C" void multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf();
extern "C" void isPlayingSoundID__10Z2SoundMgrF10JAISoundID();
extern "C" extern char const* const Z2SoundMgr__stringBase0;
void dComIfGs_staffroll_next_go();
//
// External References:
//
extern "C" void dComIfGs_staffroll_next_go__Fv();
extern "C" void setFIR__8JASTrackFPCs();
extern "C" void setIIR__8JASTrackFPCs();
extern "C" void writePort__8JASTrackFUlUs();
extern "C" void waitSubFrame__9JASDriverFv();
extern "C" void pause__16JAISeCategoryMgrFb();
extern "C" void __ct__8JAISeMgrFb();
extern "C" void stop__8JAISeMgrFv();
extern "C" void stopSoundID__8JAISeMgrF10JAISoundID();
extern "C" void initParams__8JAISeMgrFv();
extern "C" void calc__8JAISeMgrFv();
extern "C" void mixOut__8JAISeMgrFv();
extern "C" void func_802A0768();
extern "C" void getNumActiveSe__8JAISeMgrCFv();
extern "C" void __ct__9JAISeqMgrFb();
extern "C" void func_802A1B48();
extern "C" void calc__9JAISeqMgrFv();
extern "C" void stop__9JAISeqMgrFv();
extern "C" void stopSoundID__9JAISeqMgrF10JAISoundID();
extern "C" void mixOut__9JAISeqMgrFv();
extern "C" void moveVolume__18JAISoundParamsMoveFfUl();
extern "C" void __ct__12JAIStreamMgrFb();
extern "C" void func_802A3C3C();
extern "C" void calc__12JAIStreamMgrFv();
extern "C" void stop__12JAIStreamMgrFv();
extern "C" void stop__12JAIStreamMgrFUl();
extern "C" void stopSoundID__12JAIStreamMgrF10JAISoundID();
extern "C" void mixOut__12JAIStreamMgrFv();
extern "C" void loadDynamicSeq__14JAUSectionHeapF10JAISoundIDb();
extern "C" void releaseIdleDynamicSeqDataBlock__14JAUSectionHeapFv();
extern "C" void seMoveVolumeAll__7Z2SeMgrFfUl();
extern "C" void bgmStart__8Z2SeqMgrFUlUll();
extern "C" void changeBgmStatus__8Z2SeqMgrFl();
extern "C" void onVariantBgmJumpEnd__8Z2SeqMgrFb();
extern "C" void setChildTrackVolume__8Z2SeqMgrFP14JAISoundHandleifUlff();
extern "C" void onFieldBgmJumpStart__8Z2SeqMgrFv();
extern "C" void onFieldBgmJumpEnd__8Z2SeqMgrFv();
extern "C" void getSwBit__11Z2SoundInfoCF10JAISoundID();
extern "C" void speakOneWord__12Z2SpeechMgr2Fb();
extern "C" void _savegpr_24();
extern "C" void _savegpr_25();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _restgpr_24();
extern "C" void _restgpr_25();
extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" u8 const CUTOFF_TO_IIR_TABLE__7JASCalc[1024];
extern "C" extern u8 data_80450B4C[4];
extern "C" extern u8 data_80450B70[4];
extern "C" extern u8 data_80450B80[4];
extern "C" extern u8 data_80450B84[4];
extern "C" extern u8 data_80450B88[4];
extern "C" extern u8 data_80450CC0[4 + 4 /* padding */];
extern "C" extern u8 __OSReport_disable;
//
// Declarations:
//
/* ############################################################################################## */
/* 803C9D18-803C9D70 -00001 0058+00 1/1 0/0 0/0 .data @3690 */
SECTION_DATA static void* lit_3690[22] = {
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x40),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x7C),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x88),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x94),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0xA4),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0xB4),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0xC4),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1AC),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1BC),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1D0),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x1CC),
(void*)(((char*)seqCallback__FP8JASTrackUs) + 0x148),
};
/* 80455838-8045583C 003E38 0004+00 5/5 0/0 0/0 .sdata2 @3688 */
SECTION_SDATA2 static f32 lit_3688 = 1.0f;
/* 8045583C-80455840 003E3C 0004+00 1/1 0/0 0/0 .sdata2 @3689 */
SECTION_SDATA2 static f32 lit_3689 = -1.0f;
/* 802A9BC8-802A9E80 2A4508 02B8+00 1/0 1/1 0/0 .text seqCallback__FP8JASTrackUs */
u16 seqCallback(JASTrack* i_track, u16 param_1) {
JSUList<JAISe>* list;
switch (param_1) {
case 0x1000:
Z2GetSeqMgr()->setChildTrackVolume(Z2GetSeqMgr()->getSubBgmHandle(),
3, 1.0f, 0, -1.0f, -1.0f);
Z2GetSoundMgr()->getSeqMgr()->calc();
Z2GetSoundMgr()->getSeqMgr()->mixOut();
break;
case 0x1001:
Z2GetSeqMgr()->onFieldBgmJumpStart();
break;
case 0x1002:
Z2GetSeqMgr()->onFieldBgmJumpEnd();
break;
case 0x1003:
Z2GetSpeechMgr2()->speakOneWord(true);
break;
case 0x1004:
Z2GetSeqMgr()->onVariantBgmJumpEnd(true);
break;
case 0x1005:
Z2GetSeqMgr()->onVariantBgmJumpEnd(false);
break;
case 0x1006:
list = Z2GetSoundMgr()->getSeMgr()->getCategory(5)->getSeList();
for (JSULink<JAISe>* link = list->getFirst(); link != NULL; link = link->getNext()) {
switch (link->getObject()->getID()) {
case Z2SE_GRO_MV_SINGING:
case Z2SE_GRR_MV_SINGING:
case Z2SE_CLERK_MV_SONG_HO:
case Z2SE_WAD_A_MV_DANCE:
case Z2SE_MCN_A_V_DANCE:
case Z2SE_WCN_A_V_DANCE:
link->getObject()->getTrack()->writePort(14, 1);
break;
}
}
break;
case 0x1015:
list = Z2GetSoundMgr()->getSeMgr()->getCategory(5)->getSeList();
for (JSULink<JAISe>* link = list->getFirst(); link != NULL; link = link->getNext()) {
switch (link->getObject()->getID()) {
case Z2SE_MCN_A_V_DANCE:
case Z2SE_WCN_A_V_DANCE:
link->getObject()->getTrack()->writePort(14, 1);
break;
}
}
break;
case 0x1007:
Z2GetSeqMgr()->changeBgmStatus(7);
break;
case 0x1008:
Z2GetSeqMgr()->changeBgmStatus(8);
break;
case 0x1014:
dComIfGs_staffroll_next_go();
break;
}
if (param_1 >= 0x1009 && param_1 <= 0x1013) {
JAISoundID sound_id = Z2SE_CSL_TOWN_BAND_VOCAL;
if (param_1 <= 0x100a) {
sound_id = Z2SE_CSL_TOWN_BAND_GT_1;
} else if (param_1 <= 0x100c) {
sound_id = Z2SE_CSL_TOWN_BAND_GT_2;
} else if (param_1 <= 0x100f) {
sound_id = Z2SE_CSL_TOWN_BAND_GT_3;
} else if (param_1 <= 0x1011) {
sound_id = Z2SE_CSL_TOWN_BAND_FLUTE;
}
list = Z2GetSoundMgr()->getSeMgr()->getCategory(6)->getSeList();
for (JSULink<JAISe>* link = list->getFirst(); link != NULL; link = link->getNext()) {
if (link->getObject()->getID() == sound_id) {
link->getObject()->getTrack()->writePort(14, param_1);
break;
}
}
}
return 0;
}
/* ############################################################################################## */
/* 803C9D70-803C9D80 026E90 000C+04 1/1 1/1 0/0 .data __vt__10Z2SoundMgr */
SECTION_DATA extern void* __vt__10Z2SoundMgr[3 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)func_802A9EE8,
/* padding */
NULL,
};
/* 802A9E80-802A9EE8 2A47C0 0068+00 0/0 1/1 0/0 .text __ct__10Z2SoundMgrFv */
#ifdef NONMATCHING
// matches but generates an extra weak function
Z2SoundMgr::Z2SoundMgr() :
JASGlobalInstance<Z2SoundMgr>(this),
mSeMgr(true),
mSeqMgr(true),
mStreamMgr(true)
{
mSoundID.setAnonymous();
}
#else
Z2SoundMgr::Z2SoundMgr() : JASGlobalInstance<Z2SoundMgr>(this),
mSeMgr(true),
mSeqMgr(true),
mStreamMgr(true) {
// NONMATCHING
}
#endif
/* ############################################################################################## */
/* 8039B9D0-8039B9D0 028030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8039B9D0 = "Unknown Sound-Type id :%08x\n";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_8039B9ED = "\0\0";
#pragma pop
/* 80455840-80455844 003E40 0004+00 1/1 0/0 0/0 .sdata2 @3904 */
SECTION_SDATA2 static f32 lit_3904 = 3.0f / 10.0f;
/* 80455844-80455848 003E44 0004+00 3/3 0/0 0/0 .sdata2 @3905 */
SECTION_SDATA2 static u8 lit_3905[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80455848-80455850 003E48 0008+00 2/2 0/0 0/0 .sdata2 @3909 */
SECTION_SDATA2 static f64 lit_3909 = 4503599627370496.0 /* cast u32 to float */;
/* 802A9EE8-802AA1B0 2A4828 02C8+00 1/0 0/0 0/0 .text
* startSound__10Z2SoundMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */
bool Z2SoundMgr::startSound(JAISoundID i_soundID, JAISoundHandle* i_handle,
JGeometry::TVec3<f32> const* i_pos) {
switch (Z2GetSoundInfo()->getSoundType(i_soundID)) {
case 0:
if (Z2GetSoundInfo()->getSwBit(i_soundID) & 8) {
Z2GetSeqMgr()->bgmAllMute(3, 0.3f);
mSoundID = i_soundID;
}
return mSeMgr.startSound(i_soundID, i_handle, i_pos);
case 1:
if (i_soundID == Z2BGM_LUTERA_DEMO) {
Z2GetSeqMgr()->bgmStart(Z2BGM_LUTERA2, 0, 0);
Z2GetSeqMgr()->i_unMuteSceneBgm(0);
Z2GetSeqMgr()->changeBgmStatus(0);
return mSeMgr.startSound(Z2SE_NO_SOUND, i_handle, i_pos);
} else {
bool loaded = false;
JAUSectionHeap* heap = JASGlobalInstance<JAUSectionHeap>::getInstance();
JAUSeqDataBlocks const& loaded_blocks =
heap->getSectionHeapData().seqDataBlocks.getLoadedBlocks();
JSULink<JAUSeqDataBlock>* link;
for (link = loaded_blocks.getFirst(); link != NULL; link = link->getNext()) {
if (link->getObject()->field_0x10 == i_soundID) {
loaded = true;
break;
}
}
if (!loaded) {
heap->releaseIdleDynamicSeqDataBlock();
if (!heap->loadDynamicSeq(i_soundID, true)) {
JAUSeqDataBlocks const& free_blocks =
heap->getSectionHeapData().seqDataBlocks.getFreeBlocks();
for (link = free_blocks.getFirst(); link != NULL; link = link->getNext()) {
}
}
}
return mSeqMgr.startSound(i_soundID, i_handle, i_pos);
}
case 2:
if (i_soundID == 0x2000001 || i_soundID == 0x200004d) {
mStreamMgr.stop(180);
return mSeMgr.startSound(Z2SE_NO_SOUND, i_handle, i_pos);
}
if (i_soundID == 0x2000005) {
mSeMgr.getCategory(9)->pause(false);
mSeMgr.getCategory(9)->getParams()->moveVolume(1.0f, 45);
}
return mStreamMgr.startSound(i_soundID, i_handle, i_pos);
default:
char error[32];
sprintf(error, "Unknown Sound-Type id :%08x\n", (u32)i_soundID);
return false;
}
}
/* 802AA1B0-802AA270 2A4AF0 00C0+00 2/2 0/0 0/0 .text calc__10Z2SoundMgrFv */
#ifdef NONMATCHING
void Z2SoundMgr::calc() {
mSeMgr.calc();
if (!mSoundID.isAnonymous() && !isPlayingSoundID(mSoundID)) {
if (Z2GetSceneMgr()->isSceneExist()) {
Z2GetSeqMgr()->bgmAllUnMute(3);
}
mSoundID.setAnonymous();
}
mSeqMgr.calc();
mStreamMgr.calc();
}
#else
void Z2SoundMgr::calc() {
// NONMATCHING
}
#endif
/* 802AA270-802AA33C 2A4BB0 00CC+00 1/1 2/2 0/0 .text setIIR__10Z2SoundMgrFP8JAISoundPCs
*/
void Z2SoundMgr::setIIR(JAISound* param_0, s16 const* param_1) {
if (param_0 != NULL) {
JASTrack* track = param_0->getTrack();
for (u32 i = 0; i < 4; i++) {
JASTrack* child = track->getChild(i);
if (child != NULL && child->getStatus() == 1) {
child->setIIR(param_1);
for (u32 j = 0; j < 4; j++) {
JASTrack* child2 = child->getChild(j);
if (child2 != NULL && child2->getStatus() == 1) {
child2->setIIR(param_1);
}
}
}
}
}
}
/* 8039B9C0-8039B9D0 028020 0010+00 1/1 0/0 0/0 .rodata cResetFilterTable */
static s16 const cResetFilterTable[8] = {
0x7FFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
/* 802AA33C-802AA430 2A4C7C 00F4+00 1/1 0/0 0/0 .text setFilterOff__10Z2SoundMgrFP8JAISound */
void Z2SoundMgr::setFilterOff(JAISound* param_0) {
if (param_0 != NULL) {
JASTrack* track = param_0->getTrack();
for (u32 i = 0; i < 4; i++) {
JASTrack* child = track->getChild(i);
if (child != NULL && child->getStatus() == 1) {
child->setIIR(cResetFilterTable);
child->setFIR(cResetFilterTable);
for (u32 j = 0; j < 4; j++) {
JASTrack* child2 = child->getChild(j);
if (child2 != NULL && child2->getStatus() == 1) {
child2->setIIR(cResetFilterTable);
child2->setFIR(cResetFilterTable);
}
}
}
}
}
}
/* 802AA430-802AA528 2A4D70 00F8+00 0/0 1/1 0/0 .text resetFilterAll__10Z2SoundMgrFv */
void Z2SoundMgr::resetFilterAll() {
int i = 1;
if (struct_80451342 != 0) {
i = 0;
}
for (; i < 9; i++) {
JAISeCategoryMgr* category = mSeMgr.getCategory(i);
int se_count = category->getMaxActiveSe();
if (se_count > 0) {
for (JSULink<JAISe>* link = category->getSeList()->getFirst();
link != NULL && se_count > 0 && !link->getObject()->isFarAway();
link = link->getNext(), se_count--)
{
setFilterOff(link->getObject());
}
} else {
for (JSULink<JAISe>* link = category->getSeList()->getFirst();
link != NULL && !link->getObject()->isFarAway();
link = link->getNext())
{
setFilterOff(link->getObject());
}
}
}
}
/* 802AA528-802AA67C 2A4E68 0154+00 2/2 0/0 0/0 .text mixOut__10Z2SoundMgrFv */
void Z2SoundMgr::mixOut() {
if (struct_80451340 != 0 && Z2GetSceneMgr()->isInDarkness()) {
int i = 1;
if (struct_80451342 != 0) {
i = 0;
}
for (; i < 9; i++) {
JAISeCategoryMgr* category = mSeMgr.getCategory(i);
int se_count = category->getMaxActiveSe();
if (se_count > 0) {
for (JSULink<JAISe>* link = category->getSeList()->getFirst();
link != NULL && se_count > 0 && !link->getObject()->isFarAway();
link = link->getNext(), se_count--)
{
setIIR(link->getObject(), JASCalc::CUTOFF_TO_IIR_TABLE[struct_80451341]);
}
} else {
for (JSULink<JAISe>* link = category->getSeList()->getFirst();
link != NULL && !link->getObject()->isFarAway();
link = link->getNext())
{
setIIR(link->getObject(), JASCalc::CUTOFF_TO_IIR_TABLE[struct_80451341]);
}
}
}
}
mSeMgr.mixOut();
mSeqMgr.mixOut();
mStreamMgr.mixOut();
}
/* 802AA67C-802AA6B0 2A4FBC 0034+00 0/0 1/1 0/0 .text framework__10Z2SoundMgrFv */
void Z2SoundMgr::framework() {
calc();
mixOut();
}
/* 802AA6B0-802AA7DC 2A4FF0 012C+00 0/0 1/1 0/0 .text pauseAllGameSound__10Z2SoundMgrFb
*/
void Z2SoundMgr::pauseAllGameSound(bool i_pause) {
mSeMgr.getCategory(0)->pause(i_pause);
mSeMgr.getCategory(1)->pause(i_pause);
mSeMgr.getCategory(2)->pause(i_pause);
mSeMgr.getCategory(3)->pause(i_pause);
mSeMgr.getCategory(4)->pause(i_pause);
mSeMgr.getCategory(5)->pause(i_pause);
mSeMgr.getCategory(6)->pause(i_pause);
mSeMgr.getCategory(7)->pause(i_pause);
mSeMgr.getCategory(8)->pause(i_pause);
mSeMgr.getCategory(9)->pause(i_pause);
mSeqMgr.pause(i_pause);
mStreamMgr.pause(i_pause);
if (i_pause) {
Z2GetSeMgr()->seMoveVolumeAll(0.0f, 10);
mSeqMgr.getParams()->moveVolume(0.0f, 10);
mStreamMgr.getParams()->moveVolume(0.0f, 10);
}
else {
Z2GetSeMgr()->seMoveVolumeAll(1.0f, 10);
mSeqMgr.getParams()->moveVolume(1.0f, 10);
mStreamMgr.getParams()->moveVolume(1.0f, 10);
}
}
/* 802AA7DC-802AA84C 2A511C 0070+00 0/0 1/1 0/0 .text stopSoundID__10Z2SoundMgrF10JAISoundID */
void Z2SoundMgr::stopSoundID(JAISoundID i_soundID) {
mSeMgr.stopSoundID(i_soundID);
mSeqMgr.stopSoundID(i_soundID);
mStreamMgr.stopSoundID(i_soundID);
}
/* 802AA84C-802AA8C8 2A518C 007C+00 0/0 1/1 0/0 .text stopSync__10Z2SoundMgrFv */
void Z2SoundMgr::stopSync() {
stop();
while (mSeMgr.getNumActiveSe() > 0 || mSeqMgr.getNumActiveSeqs() > 0) {
calc();
if (mSeMgr.getNumActiveSe() == 0 && mSeqMgr.getNumActiveSeqs() == 0) {
break;
}
mixOut();
JASDriver::waitSubFrame();
}
}
/* 802AA8C8-802AA908 2A5208 0040+00 1/1 0/0 0/0 .text stop__10Z2SoundMgrFv */
void Z2SoundMgr::stop() {
mSeMgr.stop();
mSeqMgr.stop();
mStreamMgr.stop();
}
/* ############################################################################################## */
/* 80455850-80455858 003E50 0004+04 1/1 0/0 0/0 .sdata2 @4313 */
SECTION_SDATA2 static f32 lit_4313[1 + 1 /* padding */] = {
0.5f,
/* padding */
0.0f,
};
/* 802AA908-802AA9E8 2A5248 00E0+00 0/0 1/1 0/0 .text initParams__10Z2SoundMgrFv */
void Z2SoundMgr::initParams() {
mSeMgr.initParams();
mSeqMgr.getParams()->init();
mStreamMgr.getParams()->init();
}
/* 802AA9E8-802AAAC4 2A5328 00DC+00 0/0 1/1 0/0 .text
* multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf */
#ifdef NONMATCHING
void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) {
if (!i_soundID.isAnonymous() && Z2GetSoundInfo()->getSoundType(i_soundID) == 0) {
JSUList<JAISe>* list =
mSeMgr.getCategory(Z2GetSoundInfo()->getCategory(i_soundID))->getSeList();
for (JSULink<JAISe>* link = list->getFirst(); link != NULL; link = link->getNext()) {
if (link->getObject()->getID() == i_soundID) {
link->getObject()->getAuxiliary().mParams.mVolume *= i_multi;
}
}
}
}
#else
void Z2SoundMgr::multiVolumeSoundID(JAISoundID param_0, f32 param_1) {
// NONMATCHING
}
#endif
/* 802AAAC4-802AAB94 2A5404 00D0+00 1/1 0/0 0/0 .text isPlayingSoundID__10Z2SoundMgrF10JAISoundID
*/
#ifdef NONMATCHING
bool Z2SoundMgr::isPlayingSoundID(JAISoundID i_soundID) {
if (i_soundID.isAnonymous()) {
return 0;
}
if (Z2GetSoundInfo()->getSoundType(i_soundID) == 0) {
JSUList<JAISe>* list =
mSeMgr.getCategory(Z2GetSoundInfo()->getCategory(i_soundID))->getSeList();
for (JSULink<JAISe>* link = list->getFirst(); link != NULL; link = link->getNext()) {
if (link->getObject()->getID() == i_soundID) {
return true;
}
}
}
return false;
}
#else
bool Z2SoundMgr::isPlayingSoundID(JAISoundID param_0) {
// NONMATCHING
}
#endif
/* 8039B9D0-8039B9D0 028030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+443
View File
@@ -0,0 +1,443 @@
//
// Generated By: dol2asm
// Translation Unit: Z2SoundObjMgr
//
#include "Z2AudioLib/Z2SoundObjMgr.h"
#include "Z2AudioLib/Z2Creature.h"
#include "Z2AudioLib/Z2SeqMgr.h"
#include "Z2AudioLib/Z2Calc.h"
#include "Z2AudioLib/Z2SceneMgr.h"
#include "dol2asm.h"
/* 802BF920-802BF980 2BA260 0060+00 0/0 1/1 0/0 .text __ct__13Z2SoundObjMgrFv */
// order wrong because this needs to inherit from JASGlobalInstance<T>
Z2SoundObjMgr::Z2SoundObjMgr() : JASGlobalInstance<Z2SoundObjMgr>(this) {
mGhostEnemyState = 0;
mTwilightBattle = 0;
setBattleInit();
setForceBattleArea(false, 700, 1100, 1500);
}
/* 802BF980-802BF994 2BA2C0 0014+00 1/1 3/3 3/3 .text setForceBattleArea__13Z2SoundObjMgrFbUsUsUs
*/
void Z2SoundObjMgr::setForceBattleArea(bool forceBattle, u16 param_1, u16 param_2, u16 param_3) {
mForceBattle = forceBattle;
mEnemyArea.field_0x2 = param_1;
mEnemyArea.field_0x4 = param_2;
mEnemyArea.field_0x6 = param_3;
}
struct EnemyInfo {
u8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
u32 field_0x8;
u32 field_0xc;
};
/* 803CAD70-803CB170 027E90 0400+00 3/3 0/0 0/0 .data mEnemyInfo */
SECTION_DATA static EnemyInfo mEnemyInfo[64] = {
{0x44, 0x75, 0x6D, 0x6D, 0x79, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x73, 0x31, 0x00, 0x00, 0x00, 0x00, 0x010002BC, 0x04B007D0},
{0x45, 0x5F, 0x79, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x79, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x79, 0x67, 0x00, 0x00, 0x00, 0x00, 0x0100012C, 0x01F402BC},
{0x45, 0x5F, 0x79, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x79, 0x64, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x038405DC},
{0x45, 0x5F, 0x72, 0x64, 0x79, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x79, 0x6D, 0x62, 0x00, 0x00, 0x00, 0x0000000A, 0x0014001E},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x77, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x64, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x6B, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x74, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x010002BC, 0x05DC09C4},
{0x45, 0x5F, 0x74, 0x6B, 0x32, 0x00, 0x00, 0x00, 0x010002BC, 0x05DC09C4},
{0x45, 0x5F, 0x63, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x64, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x66, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x53, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x50, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x64, 0x62, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x03840708},
{0x45, 0x5F, 0x6B, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x73, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x73, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x62, 0x73, 0x00, 0x00, 0x00, 0x00, 0x010000C8, 0x01900258},
{0x45, 0x5F, 0x53, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x62, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x62, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x48, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x67, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x68, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x000001F4, 0x03200514},
{0x45, 0x5F, 0x77, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x6F, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x66, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x66, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x62, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x6D, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x032005DC},
{0x45, 0x5F, 0x6E, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC044C},
{0x45, 0x5F, 0x70, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x72, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x73, 0x67, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC0384},
{0x45, 0x5F, 0x68, 0x62, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x038405DC},
{0x45, 0x5F, 0x67, 0x62, 0x00, 0x00, 0x00, 0x00, 0x01000640, 0x0BB80FA0},
{0x45, 0x5F, 0x6D, 0x73, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC044C},
{0x45, 0x5F, 0x64, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x62, 0x69, 0x00, 0x00, 0x00, 0x00, 0x010001F4, 0x02BC0384},
{0x45, 0x5F, 0x74, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x61, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x64, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x77, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x67, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x73, 0x6D, 0x32, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x73, 0x77, 0x00, 0x00, 0x00, 0x00, 0x01000190, 0x025805DC},
{0x45, 0x5F, 0x72, 0x64, 0x62, 0x00, 0x00, 0x00, 0x010001F4, 0x03E805DC},
{0x45, 0x5F, 0x6B, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x7A, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x67, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x42, 0x5F, 0x47, 0x47, 0x00, 0x00, 0x00, 0x00, 0x000003E8, 0x07D00FA0},
{0x45, 0x5F, 0x6D, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x45, 0x5F, 0x7A, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
{0x42, 0x5F, 0x74, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00000000, 0x00000000},
};
/* 80455B80-80455B84 004180 0004+00 1/1 0/0 0/0 .sdata2 sAreaDefault */
SECTION_SDATA2 static u32 sAreaDefault = 0x010002BC;
/* 80455B84-80455B88 004184 0004+00 1/1 0/0 0/0 .sdata2 None */
SECTION_SDATA2 static u32 data_80455B84 = 0x044C05DC;
/* 80455B88-80455B8C 004188 0004+00 1/1 0/0 0/0 .sdata2 sAreaFloating */
SECTION_SDATA2 static u32 sAreaFloating = 0x000002BC;
/* 80455B8C-80455B90 00418C 0004+00 1/1 0/0 0/0 .sdata2 None */
SECTION_SDATA2 static u32 data_80455B8C = 0x044C05DC;
/* 80455B90-80455B94 004190 0004+00 1/1 0/0 0/0 .sdata2 sAreaWide */
SECTION_SDATA2 static u32 sAreaWide = 0x010002BC;
/* 80455B94-80455B98 004194 0004+00 1/1 0/0 0/0 .sdata2 None */
SECTION_SDATA2 static u32 data_80455B94 = 0x05DC0CE4;
/* 80455B98-80455B9C 004198 0004+00 1/1 0/0 0/0 .sdata2 sAreaWideFloating */
SECTION_SDATA2 static u32 sAreaWideFloating = 0x000002BC;
/* 80455B9C-80455BA0 00419C 0004+00 1/1 0/0 0/0 .sdata2 None */
SECTION_SDATA2 static u32 data_80455B9C = 0x05DC0CE4;
/* 80455BA0-80455BA4 0041A0 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmall */
SECTION_SDATA2 static u32 sAreaSmall = 0x0100012C;
/* 80455BA4-80455BA8 0041A4 0004+00 1/1 0/0 0/0 .sdata2 None */
SECTION_SDATA2 static u32 data_80455BA4 = 0x02BC03E8;
/* 80455BA8-80455BAC 0041A8 0004+00 1/1 0/0 0/0 .sdata2 sAreaSmallFloating */
SECTION_SDATA2 static u32 sAreaSmallFloating = 0x000001F4;
/* 80455BAC-80455BB0 0041AC 0004+00 1/1 0/0 0/0 .sdata2 None */
SECTION_SDATA2 static u32 data_80455BAC = 0x032004B0;
/* 802BF994-802BFFEC 2BA2D4 0658+00 1/0 1/1 0/0 .text searchEnemy__13Z2SoundObjMgrFv */
void Z2SoundObjMgr::searchEnemy() {
mTwilightBattle = 0;
Z2CreatureLink* link = Z2GetLink();
if (link == 0) {
Z2GetSeqMgr()->stopBattleBgm(1, 1);
return;
}
bool bVar7 = false;
bool local_96 = false;
bool iVar8 = false;
if (Z2GetSeqMgr()->getMainBgmID() == 0x1000041) {
iVar8 = true;
}
u8 iVar16 = 0;
if (Z2GetSeqMgr()->getSubBgmID() == Z2BGM_HORSE_BATTLE) {
iVar16 = 1;
} else if (Z2GetSeqMgr()->getSubBgmID() == Z2BGM_FACE_OFF_BATTLE2) {
iVar16 = 2;
}
field_0x14 = 0;
mEnemyNumNear = 0;
field_0x16 = 0;
mEnemyNumVeryFar = 0;
field_0x1a = false;
field_0x18 = 0;
f32 dVar18 = Z2Calc::getParamByExp(
Z2GetLink()->getMoveSpeed(),
0.0f,
100.0f,
0.3f,
1.0f,
2.5f,
Z2Calc::CURVE_SIGN_1);
f32 dVar19 = 5000.0f;
for (JSULink<Z2CreatureEnemy>* local_8c = getFirst(); local_8c != NULL; local_8c = local_8c->getNext()) {
Z2CreatureEnemy* this_00 = local_8c->getObject();
if (this_00 == NULL) {
continue;
}
if (this_00->field_0xa1 < 1) {
continue;
}
bool bVar6 = false;
u8 enemyId = this_00->mEnemyID;
switch (enemyId) {
case 0x36:
if (Z2GetSceneMgr()->getCurrentSceneNum() == 0x1c)
continue;
break;
case 0x11:
if (Z2GetSceneMgr()->getCurrentSceneNum() == 0x1e)
continue;
break;
case 0x27:
case 0x28:
case 0x39:
bVar6 = true;
break;
case 0x37:
if (iVar16 == 0)
continue;
break;
case 0xa:
case 0xb:
if (iVar16 != 0)
continue;
case 0xc:
case 0x16:
case 0x1f:
case 0x22:
case 0x26:
case 0x29:
case 0x2b:
case 0x30:
case 0x35:
if (!Z2GetLink()->isRiding())
break;
if (Z2GetLink()->getMoveSpeed() <= 0x26)
break;
continue;
}
Vec* iVar10 = this_00->getCurrentPos();
if (iVar10 != NULL) {
Vec* iVar14 = Z2GetLink()->getCurrentPos();
if (iVar14 != NULL) {
Z2EnemyArea local_88;
__memcpy(&local_88, &mEnemyInfo[enemyId].field_0x8, 8);
if (mForceBattle) {
local_88 = mEnemyArea;
}
f32 fVar2 = 2.0f;
if (local_88.field_0x0 == 1) {
fVar2 = 4.0f;
}
Vec local_80 = {0.0f, 0.0f, 0.0f};
VECSubtract(iVar10, iVar14, &local_80);
local_80.y *= fVar2;
f32 dVar20 = VECMag(&local_80);
if (dVar20 < local_88.field_0x6 * dVar18) {
if (bVar6) {
field_0x1a++;
if (dVar20 < local_88.field_0x4 * dVar18) {
mGhostEnemyState |= 1;
if (mGhostEnemyState >= 0x10) {
mEnemyNumNear++;
if (dVar20 < local_88.field_0x2 * dVar18) {
field_0x14++;
}
}
}
if (mGhostEnemyState >= 0x11) {
field_0x16++;
if (this_00->mLinkSearch) {
local_96 = true;
}
}
} else {
field_0x16++;
if (enemyId != 0 && enemyId < 9) {
if (mTwilightBattle == 0) {
mTwilightBattle = 1;
}
if (enemyId == 0x1 || enemyId == 0x5) {
mTwilightBattle = 2;
}
if (enemyId == 0x8) {
mTwilightBattle = 2;
} else {
Z2GetSeqMgr()->changeSubBgmStatus(mTwilightBattle);
}
}
if (enemyId != 0x2c && this_00->mLinkSearch) {
local_96 = true;
}
if (dVar20 < local_88.field_0x4 * dVar18)
{
mEnemyNumNear++;
if (dVar20 < local_88.field_0x2 * dVar18)
{
field_0x14++;
}
}
}
}
if (dVar20 < dVar19 * dVar18) {
mEnemyNumVeryFar++;
}
if (this_00->field_0xa3 != 0) {
bVar7 = true;
field_0x18++;
}
}
}
}
if (mGhostEnemyState == 0x11) {
if (field_0x1a >= field_0x16) {
Z2GetSeqMgr()->setBattleGhostMute(false);
} else {
Z2GetSeqMgr()->setBattleGhostMute(true);
}
} else if (mGhostEnemyState < 0x20 && field_0x1a == 0x0) {
setGhostEnemyState(0);
}
if (iVar16 == 1) {
if (field_0x14 != 0x0) {
Z2GetSeqMgr()->changeSubBgmStatus(1);
} else {
Z2GetSeqMgr()->changeSubBgmStatus(0);
}
} else if (iVar16 == 2) {
if (mEnemyNumNear != 0x0) {
Z2GetSeqMgr()->changeSubBgmStatus(1);
} else {
Z2GetSeqMgr()->changeSubBgmStatus(0);
}
} else if (iVar8) {
if (field_0x16 != 0x0) {
Z2GetSeqMgr()->changeBgmStatus(1);
} else {
Z2GetSeqMgr()->changeBgmStatus(0);
}
} else if (!bVar7) {
Z2GetSeqMgr()->setBattleSearched(local_96);
if (field_0x14 != 0x0) {
Z2GetSeqMgr()->setBattleDistState(0);
} else {
if (mEnemyNumNear != 0x0) {
Z2GetSeqMgr()->setBattleDistState(1);
} else {
if (field_0x16 != 0x0) {
Z2GetSeqMgr()->setBattleDistState(2);
} else {
Z2GetSeqMgr()->setBattleDistState(3);
}
}
}
}
}
void Z2SoundObjMgr::setGhostEnemyState(u8 p1) {
if (p1 == 0x20) {
if (field_0x1a >= field_0x16) {
JASGlobalInstance<Z2SeqMgr>::getInstance()->setBattleGhostMute(true);
}
} else {
if (field_0x1a == false) {
mGhostEnemyState = 0;
return;
}
}
mGhostEnemyState = p1 + (mGhostEnemyState & 1);
}
/* 802C0074-802C0100 2BA9B4 008C+00 0/0 1/1 0/0 .text
* getEnemyID__13Z2SoundObjMgrFPCcP26JSULink<15Z2CreatureEnemy> */
u8 Z2SoundObjMgr::getEnemyID(char const* param_0, JSULink<Z2CreatureEnemy>* param_1) {
if (param_0 != NULL) {
for (u8 uVar2 = 0; uVar2 < 0x40; uVar2++) {
if (strcmp(param_0, (char*)&mEnemyInfo[(u32)uVar2].field_0x0) == 0) {
append(param_1);
return uVar2;
}
}
}
return Z2_ENEMY_ID_0;
}
/* 802C0100-802C0120 2BAA40 0020+00 1/1 1/1 0/0 .text setBattleInit__13Z2SoundObjMgrFv */
void Z2SoundObjMgr::setBattleInit() {
field_0x14 = 0;
mEnemyNumNear = 0;
field_0x16 = 0;
mEnemyNumVeryFar = 0;
field_0x18 = 0;
field_0x1a = false;
}
/* 802C0120-802C013C 2BAA60 001C+00 0/0 1/1 0/0 .text checkBattleFinish__13Z2SoundObjMgrFv */
bool Z2SoundObjMgr::checkBattleFinish() {
return mEnemyNumVeryFar - field_0x18 <= 0;
}
/* 802C013C-802C0190 2BAA7C 0054+00 0/0 1/1 0/0 .text deleteEnemyAll__13Z2SoundObjMgrFv
*/
void Z2SoundObjMgr::deleteEnemyAll() {
JSULink<Z2CreatureEnemy>* link;
// not moving the link pointer forward looks like a bug, but deleteObject() actually unlinks the
// enemy from its owning list
while (link = this->getFirst(), link != NULL) {
Z2CreatureEnemy* enemy = link->getObject();
if (enemy == NULL) {
// setWarningMessage_f((JUTAssertion *)0x1,(ulong)"Z2SoundObjMgr.cpp",(char
// *)0x16f,(int)&*fill*,
// "[Z2SoundObjMgr::searchEnemy] remain remove enemy\n",in_r8);
} else {
enemy->deleteObject();
}
}
}
/* 802C0190-802C01E4 2BAAD0 0054+00 0/0 2/2 0/0 .text
* removeEnemy__13Z2SoundObjMgrFP26JSULink<15Z2CreatureEnemy> */
bool Z2SoundObjMgr::removeEnemy(JSULink<Z2CreatureEnemy>* param_0) {
if (param_0 == NULL) {
return false;
}
Z2CreatureEnemy* enemy = param_0->getObject();
if (enemy->field_0xa3 != 0 && field_0x18 != 0) {
field_0x18--;
}
return remove(param_0);
}
/* 802C01E4-802C01EC 2BAB24 0008+00 0/0 4/4 0/0 .text isTwilightBattle__13Z2SoundObjMgrFv
*/
u8 Z2SoundObjMgr::isTwilightBattle() {
return mTwilightBattle;
}
/* 802C01EC-802C03C8 2BAB2C 01DC+00 0/0 1/0 0/0 .text __sinit_Z2SoundObjMgr_cpp */
void __sinit_Z2SoundObjMgr_cpp() {
// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x802C01EC, __sinit_Z2SoundObjMgr_cpp);
#pragma pop
+534
View File
@@ -0,0 +1,534 @@
//
// Generated By: dol2asm
// Translation Unit: Z2SoundObject
//
#include "Z2AudioLib/Z2SoundObject.h"
#include "Z2AudioLib/Z2Calc.h"
#include "Z2AudioLib/Z2SeMgr.h"
#include "Z2AudioLib/Z2SoundInfo.h"
#include "Z2AudioLib/Z2SoundMgr.h"
#include "Z2AudioLib/Z2SoundStarter.h"
#include "Z2AudioLib/Z2Audience.h"
#include "JSystem/JAudio2/JAUSoundAnimator.h"
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 = JASGlobalInstance<Z2SoundStarter>::getInstance(); // sInstance
field_0x1c = 0;
field_0x1e = 0;
}
Z2SoundObjBase::~Z2SoundObjBase() {
deleteObject();
}
void Z2SoundObjBase::init(Vec* pSoundPos, u8 pNumHandles) {
initHandlesPool(pNumHandles);
mSoundPos = (JGeometry::TVec3<f32>*)pSoundPos;
mIsInitialized = true;
}
/* 802BDFF8-802BE038 2B8938 0040+00 1/1 8/8 61/61 .text deleteObject__14Z2SoundObjBaseFv
*/
void Z2SoundObjBase::deleteObject() {
dispose();
deleteHandlesPool();
}
void Z2SoundObjBase::framework(u32 p1, s8 p2) {
if (mIsInitialized) {
field_0x1c = p1;
field_0x1e = p2;
setPos(*mSoundPos);
}
}
/* 802BE070-802BE104 2B89B0 0094+00 5/0 3/0 0/0 .text dispose__14Z2SoundObjBaseFv */
void Z2SoundObjBase::dispose() {
JAISoundHandle* handle;
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
handle = link->getObject();
if (handle != NULL && (bool)*handle) {
u32 swBit = JASGlobalInstance<Z2SoundInfo>::sInstance->getSwBit((*handle)->getID());
if ((swBit & 0x8000) != 0) {
handle->releaseSound();
} else {
(*handle)->stop();
}
}
}
mIsInitialized = false;
}
/* 802BE104-802BE144 2B8A44 0040+00 5/0 3/0 0/0 .text
* stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool */
bool Z2SoundObjBase::stopOK(Z2SoundHandlePool& pSoundHandlePool) {
return !(JASGlobalInstance<Z2SoundInfo>::sInstance->
getSwBit(pSoundHandlePool->getID()) & 0x8000);
}
/* 802BE144-802BE2D4 2B8A84 0190+00 5/3 3/1 0/0 .text
* startSound__14Z2SoundObjBaseF10JAISoundIDUlSc */
Z2SoundHandlePool* Z2SoundObjBase::startSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
if (!mIsInitialized) {
return NULL;
}
if (JASGlobalInstance<Z2SeMgr>::getInstance()->isSoundCulling(pSoundId)) {
return NULL;
}
if (param_1 == 0) {
param_1 = (u32)field_0x1c;
}
if (param_2 < 0) {
param_2 = field_0x1e;
}
f32 local_0 = (f32)param_2 / 127.0f;
Z2SoundHandlePool* handle = getHandleSoundID(pSoundId);
if (handle != NULL) {
if ((JASGlobalInstance<Z2SoundInfo>::getInstance()->getSwBit(pSoundId) & 0x4000) != 0) {
handle = NULL;
} else {
return NULL;
}
}
if (handle == NULL) {
handle = getFreeHandle();
}
if (handle == NULL) {
handle = getLowPrioSound(pSoundId);
}
if (handle != NULL) {
mSoundStarter->startSound(pSoundId, handle, mSoundPos, param_1, local_0,
1.0f, 1.0f, -1.0f, -1.0f, 0);
}
return handle;
}
/* 802BE2D4-802BE4A4 2B8C14 01D0+00 4/2 3/0 0/0 .text
* startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc */
Z2SoundHandlePool* Z2SoundObjBase::startLevelSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
if (!mIsInitialized) {
return NULL;
}
if (param_1 == 0) {
param_1 = (u32)field_0x1c;
}
if (param_2 < 0) {
param_2 = field_0x1e;
}
f32 local_0 = (f32)param_2 / 127.0f;
Z2SoundHandlePool* handle = getHandleSoundID(pSoundId);
if (handle != NULL) {
handle->getSound()->updateLifeTime(1);
mSoundStarter->setPortData(handle, 6, (u16)param_1, -1);
handle->getSound()->getAuxiliary().moveFxMix(local_0, 0);
} else {
if (JASGlobalInstance<Z2SeMgr>::getInstance()->isSoundCulling(pSoundId)) {
return NULL;
}
handle = getFreeHandle();
if (handle == NULL) {
handle = getLowPrioSound(pSoundId);
}
if (handle != NULL) {
mSoundStarter->startSound(pSoundId, handle, mSoundPos, param_1, local_0,
1.0f, 1.0f, -1.0f, -1.0f, 0);
if (handle != NULL && handle->getSound() != NULL) {
handle->getSound()->setLifeTime(1, false);
}
}
}
return handle;
}
/* 802BE4A4-802BE5A0 2B8DE4 00FC+00 0/0 5/5 21/21 .text
* startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase */
Z2SoundHandlePool* Z2SoundObjBase::startCollisionSE(u32 pId, u32 pUserData, Z2SoundObjBase* pOther) {
if (pOther != NULL) {
return pOther->startCollisionSE(pId, pUserData, NULL);
}
if (53 < pUserData) {
pUserData = 0;
}
for (JSULink<JAISe>* link =
Z2GetSoundMgr()->getSeMgr()->getCategory(4)->getSeList()->getFirst();
link != NULL; link = link->getNext()) {
if (pId == link->getObject()->getID() && pUserData == link->getObject()->getUserData()) {
link->getObject()->stop();
}
}
Z2SoundHandlePool* handle = Z2SoundObjBase::startSound(JAISoundID(pId), pUserData, -1);
if (handle != NULL && handle->getSound() != NULL) {
handle->getSound()->setUserData(pUserData);
if (30 <= pUserData && pUserData <= 52) {
Z2Audible* audible = (Z2Audible*)handle->getSound()->getAudible();
if (audible != NULL) {
JAUAudibleParam* param = audible->getAudibleParam();
param->field_0x0.bytes.b1_2_7 = 8;
}
}
}
return handle;
}
/* ############################################################################################## */
/* 8039C230-8039C240 028890 000C+04 1/1 0/0 0/0 .rodata cNullVec__6Z2Calc */
static Vec const cNullVec__6Z2Calc = {0.0f, 0.0f, 0.0f};
/* 802BE5A0-802BE5FC 2B8EE0 005C+00 1/1 0/0 0/0 .text __ct__21Z2DopplerSoundObjBaseFv */
Z2DopplerSoundObjBase::Z2DopplerSoundObjBase() : Z2SoundObjBase() {
field_0x20 = cNullVec__6Z2Calc;
field_0x2c = cNullVec__6Z2Calc;
}
/* 802BE5FC-802BE65C 2B8F3C 0060+00 0/0 0/0 1/1 .text __dt__21Z2DopplerSoundObjBaseFv */
Z2DopplerSoundObjBase::~Z2DopplerSoundObjBase() {}
/* 802BE65C-802BE6B8 2B8F9C 005C+00 1/0 0/0 0/0 .text init__21Z2DopplerSoundObjBaseFP3VecUc */
void Z2DopplerSoundObjBase::init(Vec* param_0, u8 param_1) {
Z2SoundObjBase::init(param_0, param_1);
if (mSoundPos != NULL) {
// field_0x20 = *mSoundPos;
JGeometry::setTVec3f(&mSoundPos->x, &field_0x20.x);
// field_0x2c = *mSoundPos;
JGeometry::setTVec3f(&mSoundPos->x, &field_0x2c.x);
}
}
/* 802BE6B8-802BE714 2B8FF8 005C+00 2/0 0/0 0/0 .text framework__21Z2DopplerSoundObjBaseFUlSc */
void Z2DopplerSoundObjBase::framework(u32 param_0, s8 param_1) {
Z2SoundObjBase::framework(param_0, param_1);
if (mSoundPos != NULL) {
// field_0x20 = field_0x2c;
JGeometry::setTVec3f(&field_0x2c.x, &field_0x20.x);
// field_0x2c = *mSoundPos;
JGeometry::setTVec3f(&mSoundPos->x, &field_0x2c.x);
}
}
/* 802BE714-802BE7AC 2B9054 0098+00 2/0 0/0 0/0 .text
* startSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc */
Z2SoundHandlePool* Z2DopplerSoundObjBase::startSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
JGeometry::TVec3<f32>* pos = mSoundPos;
mSoundPos = NULL;
Z2SoundHandlePool* handle = Z2SoundObjBase::startSound(pSoundId, param_1, param_2);
if (pos != NULL && handle != NULL && handle->getSound() != NULL) {
if (handle->getSound()->acceptsNewAudible()) {
handle->getSound()->newAudible(*pos, &field_0x20, 0, NULL);
}
}
mSoundPos = pos;
return handle;
}
/* 802BE7AC-802BE844 2B90EC 0098+00 2/0 0/0 0/0 .text
* startLevelSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc */
Z2SoundHandlePool* Z2DopplerSoundObjBase::startLevelSound(JAISoundID pSoundId,
u32 param_1, s8 param_2) {
JGeometry::TVec3<f32>* pos = mSoundPos;
mSoundPos = NULL;
Z2SoundHandlePool* handle = Z2SoundObjBase::startLevelSound(pSoundId, param_1, param_2);
if (pos != NULL && handle != NULL && handle->getSound() != NULL) {
if (handle->getSound()->acceptsNewAudible()) {
handle->getSound()->newAudible(*pos, &field_0x20, 0, NULL);
}
}
mSoundPos = pos;
return handle;
}
/* 802BE844-802BE880 2B9184 003C+00 0/0 8/8 65/65 .text __ct__16Z2SoundObjSimpleFv */
Z2SoundObjSimple::Z2SoundObjSimple() : Z2SoundObjBase() {}
void Z2SoundObjSimple::init(Vec* pSoundPos, u8 pNumHandles) {
Z2SoundObjBase::init(pSoundPos, pNumHandles);
}
/* 802BE8A0-802BE9B0 2B91E0 0110+00 1/0 0/0 0/0 .text
* startSound__16Z2SoundObjSimpleF10JAISoundIDUlSc */
Z2SoundHandlePool* Z2SoundObjSimple::startSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
Z2SoundHandlePool* handle = Z2SoundObjBase::startSound(pSoundId, param_1, param_2);
if (pSoundId == 0x200c7 && handle != NULL && handle->getSound() != NULL) {
f32 local_0 = Z2Calc::getParamByExp((f32)param_1, 0.0f, 127.0f, 0.2f, 0.4f, 1.0f,
Z2Calc::CURVE_SIGN_1);
f32 local_1 = Z2Calc::getParamByExp((f32)param_1, 0.0f, 127.0f, 0.2f, 0.6f, 1.2f,
Z2Calc::CURVE_SIGN_1);
handle->getSound()->getAuxiliary().movePitch(local_1, 0);
handle->getSound()->getAuxiliary().moveVolume(local_0, 0);
}
return handle;
}
/* 802BE9B0-802BEB38 2B92F0 0188+00 1/0 0/0 0/0 .text
* startLevelSound__16Z2SoundObjSimpleF10JAISoundIDUlSc */
Z2SoundHandlePool* Z2SoundObjSimple::startLevelSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
Z2SoundHandlePool* handle = Z2SoundObjBase::startLevelSound(pSoundId, param_1, param_2);
if (handle != NULL && handle->getSound() != NULL) {
f32 local_0 = 1.0f;
f32 local_1 = 1.0f;
switch (pSoundId) {
case 0x200c6:
local_1 = Z2Calc::getParamByExp((f32)param_1, 0.0f, 127.0f, 0.2f, 0.4f, 1.0f,
Z2Calc::CURVE_SIGN_1);
local_0 = Z2Calc::getParamByExp((f32)param_1, 0.0f, 127.0f, 0.2f, 0.6f, 1.2f,
Z2Calc::CURVE_SIGN_1);
break;
case 0x8025c:
if (param_1 > 100) {
local_0 = 2.0f;
} else if (param_1 > 21) {
local_0 = Z2Calc::getParamByExp((f32)param_1, 22.0f, 50.0f, 0.4f, 1.0f, 1.5f,
Z2Calc::CURVE_SIGN_0);
}
break;
}
handle->getSound()->getAuxiliary().movePitch(local_0, 0);
handle->getSound()->getAuxiliary().moveVolume(local_1, 0);
}
return handle;
}
/* 802BEB38-802BEB74 2B9478 003C+00 0/0 0/0 2/2 .text __ct__15Z2SoundObjArrowFv */
Z2SoundObjArrow::Z2SoundObjArrow() : Z2DopplerSoundObjBase() {}
/* 802BEB74-802BEB94 2B94B4 0020+00 1/0 0/0 0/0 .text init__15Z2SoundObjArrowFP3VecUc */
void Z2SoundObjArrow::init(Vec* param_0, u8 param_1) {
Z2SoundObjBase::init(param_0, param_1);
}
/* 802BEB94-802BEBDC 2B94D4 0048+00 0/0 2/2 0/0 .text __ct__15Z2SoundObjAnimeFv */
Z2SoundObjAnime::Z2SoundObjAnime() : Z2SoundObjBase() {
mpAnimation = NULL;
mReverse = false;
}
/* 802BEBDC-802BEBFC 2B951C 0020+00 1/0 1/0 0/0 .text init__15Z2SoundObjAnimeFP3VecUc */
void Z2SoundObjAnime::init(Vec* param_0, u8 param_1) {
Z2SoundObjBase::init(param_0, param_1);
}
/* 802BEBFC-802BED68 2B953C 016C+00 0/0 2/2 0/0 .text initAnime__15Z2SoundObjAnimeFPvbff
*/
void Z2SoundObjAnime::initAnime(void* param_0, bool param_1, f32 param_2, f32 param_3) {
ageSounds_();
mpAnimation = (JAUSoundAnimation*)param_0;
if (mpAnimation != NULL) {
mReverse = !param_1;
field_0x3c = 0;
if (mReverse) {
mCurSoundIndex = mpAnimation->getNumSounds() - 1;
mCurSoundFrame = FLT_MAX;
setLoopFrame(0.0f, param_2);
} else {
mCurSoundIndex = 0;
mCurSoundFrame = 0.0f;
setLoopFrame(param_2, 0.0f);
}
mCurSoundFrame = param_3;
mCurSoundIndex = mpAnimation->getStartSoundIndex(param_3);
if (mReverse && mCurSoundIndex > 0) {
mCurSoundIndex--;
}
}
}
/* 802BED68-802BEED4 2B96A8 016C+00 1/1 0/0 0/0 .text ageSounds___15Z2SoundObjAnimeFv */
void Z2SoundObjAnime::ageSounds_() {
for (int i = 0; i < getNumHandles(); i++) {
if (getHandle(i)->getSound() != NULL) {
switch (getHandle(i)->getSound()->getAnimationState()) {
case 0:
break;
case 1:
if (getHandle(i)->getSound()->hasLifeTime()) {
getHandle(i)->getSound()->stop();
} else {
JAUSoundAnimationSound* sound =
(JAUSoundAnimationSound*)getHandle(i)->getSound()->getUserData();
if (sound->stopsWhenAnimationChanges()) {
getHandle(i)->getSound()->stop();
} else {
getHandle(i)->getSound()->setAnimationState(2);
}
}
break;
case 2:
break;
}
}
}
}
/* 802BEED4-802BF304 2B9814 0430+00 0/0 2/2 0/0 .text updateAnime__15Z2SoundObjAnimeFff
*/
void Z2SoundObjAnime::updateAnime(f32 param_0, f32 param_1) {
for (int i = 0; i < getNumHandles(); i++) {
if (getHandle(i)->getSound() != NULL && getHandle(i)->getSound()->isAnimated()) {
getHandle(i)->getSound()->setPos(*mSoundPos);
}
}
if (mpAnimation == NULL || mpAnimation->getNumSounds() == 0) {
return;
}
if (!mReverse) {
if (param_0 < mCurSoundFrame) {
while (mCurSoundIndex < mEndSoundIndex) {
startSoundInner(*mSoundPos, param_1, mSoundStarter, field_0x1c, field_0x1e);
}
mCurSoundIndex = mStartSoundIndex;
mCurSoundFrame = param_0;
if (field_0x3c < 0xffff) {
field_0x3c++;
}
}
updateSoundLifeTime_(param_0, param_1);
while (mCurSoundIndex < mpAnimation->getNumSounds() &&
mpAnimation->getSound(mCurSoundIndex)->isNotingOn(param_0, false)) {
startSoundInner(*mSoundPos, param_1, mSoundStarter, field_0x1c, field_0x1e);
}
} else {
if (param_0 > mCurSoundFrame) {
while (mCurSoundIndex >= mStartSoundIndex) {
startSoundInner(*mSoundPos, param_1, mSoundStarter, field_0x1c, field_0x1e);
}
mCurSoundIndex = mEndSoundIndex - 1;
mCurSoundFrame = param_0;
if (field_0x3c < 0xffff) {
field_0x3c++;
}
}
updateSoundLifeTime_(param_0, param_1);
while (mCurSoundIndex >= 0 &&
mpAnimation->getSound(mCurSoundIndex)->isNotingOn(param_0, true)) {
startSoundInner(*mSoundPos, param_1, mSoundStarter, field_0x1c, field_0x1e);
}
}
mCurSoundFrame = param_0;
}
/* 802BF304-802BF660 2B9C44 035C+00 1/1 0/0 0/0 .text updateSoundLifeTime___15Z2SoundObjAnimeFff
*/
void Z2SoundObjAnime::updateSoundLifeTime_(f32 param_0, f32 param_1) {
if (mpAnimation == NULL) {
return;
}
for (int i = 0; i < getNumHandles(); i++) {
if (getHandle(i)->getSound() != NULL) {
switch (getHandle(i)->getSound()->getAnimationState()) {
case 0:
break;
case 1:
JAUSoundAnimationSound* sound =
(JAUSoundAnimationSound*)getHandle(i)->getSound()->getUserData();
bool bvar1 = param_1 == 0.0f && sound->stopsWhenSpeedIsZero();
if (sound->setsLifeTime()) {
if (bvar1) {
getHandle(i)->getSound()->pause(true);
} else {
if (sound->isNoting(param_0)) {
getHandle(i)->getSound()->updateLifeTime(1);
getHandle(i)->getSound()->pause(false);
} else {
getHandle(i)->getSound()->stop();
}
}
} else {
if (bvar1) {
getHandle(i)->getSound()->stop();
} else if (sound->stopsWhenNoteOff() &&
sound->isNotingOff(param_0, mReverse)) {
getHandle(i)->getSound()->stop();
}
}
break;
case 2:
break;
}
}
}
}
/* 802BF660-802BF890 2B9FA0 0230+00 1/1 0/0 0/0 .text
* startSoundInner__15Z2SoundObjAnimeFRCQ29JGeometry8TVec3<f>fP14Z2SoundStarterUlSc */
void Z2SoundObjAnime::startSoundInner(JGeometry::TVec3<f32> const& param_0, f32 param_1,
Z2SoundStarter* param_2, u32 param_3, s8 param_4) {
const JAUSoundAnimationSound* sound = mpAnimation->getSound(mCurSoundIndex);
u32 user_data = (u32)sound;
if (mReverse) {
mCurSoundIndex--;
} else {
mCurSoundIndex++;
}
if (sound->field_0x1a > 0) {
param_3 = sound->field_0x1a;
}
if (playsSound(sound, param_0, param_1)) {
u32 id = getSoundID(sound, param_0, param_1);
if (!Z2GetSeMgr()->isSoundCulling(id)) {
JAISoundHandle* handle = getHandleUserData(user_data);
if (handle != NULL && handle->getSound() != NULL &&
handle->getSound()->getAnimationState() != 1) {
handle = NULL;
}
if (handle == NULL) {
handle = getFreeHandle();
}
if (handle != NULL) {
param_2->startSound(id, handle, &param_0, param_3, (f32)param_4 / 127.0f,
sound->field_0x0c, (f32)sound->field_0x14 / 127.0f,
-1.0f, -1.0f, 0);
if (handle->getSound() != NULL) {
handle->getSound()->setAnimationState(1);
handle->getSound()->setUserData(user_data);
if (sound->setsLifeTime()) {
handle->getSound()->setLifeTime(1, false);
}
}
}
}
}
}
/* 802BF890-802BF898 2BA1D0 0008+00 1/1 0/0 0/0 .text
* getSoundID__15Z2SoundObjAnimeFPC22JAUSoundAnimationSoundRCQ29JGeometry8TVec3<f>f */
u32 Z2SoundObjAnime::getSoundID(JAUSoundAnimationSound const* i_sound,
JGeometry::TVec3<f32> const& param_1, f32 param_2) {
return i_sound->mSoundId;
}
/* 802BF898-802BF920 2BA1D8 0088+00 1/1 0/0 0/0 .text
* playsSound__15Z2SoundObjAnimeFPC22JAUSoundAnimationSoundRCQ29JGeometry8TVec3<f>f */
bool Z2SoundObjAnime::playsSound(JAUSoundAnimationSound const* i_sound,
JGeometry::TVec3<f32> const& param_1, f32 param_2) {
if (i_sound->playsOnlyOnce()) {
if (field_0x3c != i_sound->field_0x16) {
return false;
}
} else {
if (i_sound->playsAtIntervals() &&
i_sound->field_0x16 != field_0x3c % i_sound->field_0x19) {
return false;
}
}
if (mReverse) {
if (i_sound->playsOnlyForward()) {
return false;
}
} else {
if (i_sound->playsOnlyReverse()) {
return false;
}
}
return true;
}
+110
View File
@@ -0,0 +1,110 @@
//
// Z2SoundStarter
//
#include "Z2AudioLib/Z2SoundStarter.h"
#include "Z2AudioLib/Z2EnvSeMgr.h"
#include "Z2AudioLib/Z2AudioMgr.h"
/* 802AAB94-802AABF4 2A54D4 0060+00 0/0 4/4 0/0 .text __ct__14Z2SoundStarterFb */
Z2SoundStarter::Z2SoundStarter(bool param_0) : JAISoundStarter(param_0), JASGlobalInstance<Z2SoundStarter>(param_0) {
}
/* 802AABF4-802AAC3C 2A5534 0048+00 1/0 5/0 0/0 .text
* startSound__14Z2SoundStarterF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */
bool Z2SoundStarter::startSound(JAISoundID i_soundID, JAISoundHandle* i_handlePtr,
JGeometry::TVec3<f32> const* i_pos) {
return Z2SoundStarter::startSound(i_soundID, i_handlePtr, i_pos,
0, 0.0f, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
/* 802AAC3C-802AAEDC 2A557C 02A0+00 2/1 2/2 0/0 .text
* startSound__14Z2SoundStarterF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f>UlfffffUl */
bool Z2SoundStarter::startSound(JAISoundID i_soundID, JAISoundHandle* handlePtr,
JGeometry::TVec3<f32> const* i_pos, u32 param_4, f32 i_fxMix,
f32 i_pitch, f32 i_volume, f32 i_pan, f32 i_dolby, u32 i_count) {
JUT_ASSERT(45, handlePtr);
if (param_4 == 6) {
switch (i_soundID) {
case Z2SE_CM_BODYFALL_S:
i_soundID = Z2SE_CM_BODYFALL_ASASE_S;
break;
case Z2SE_CM_BODYFALL_M:
i_soundID = Z2SE_CM_BODYFALL_ASASE_M;
break;
case Z2SE_CM_BODYFALL_L:
i_soundID = Z2SE_CM_BODYFALL_ASASE_L;
break;
}
}
if (i_soundID.mId.mBytes.b1 != 0 && i_soundID.mId.mBytes.b1 != 9) {
if (Z2GetSceneMgr()->isInDarkness()) {
i_fxMix = 1.0f;
} else {
f32 ratio = Z2GetStatusMgr()->getCameraInWaterDepthRatio();
f32 uStack_8c = ratio > 0.0f;
if (uStack_8c) {
i_fxMix = uStack_8c;
} else {
i_fxMix += 0.5f * Z2GetEnvSeMgr()->getFogDensity();
if (i_fxMix > 1.0f) {
i_fxMix = 1.0f;
}
}
}
}
bool startSoundRes = Z2GetAudioMgr()->startSound(i_soundID, handlePtr, i_pos);
if (*handlePtr) {
if (param_4 != 0) {
setPortData(handlePtr, 6, param_4, -1);
}
if (i_fxMix > 0.0f) {
(*handlePtr)->getAuxiliary().moveFxMix(i_fxMix, i_count);
}
if (i_pitch != 1.0f) {
(*handlePtr)->getAuxiliary().movePitch(i_pitch, i_count);
}
if (i_volume != 1.0f) {
(*handlePtr)->getAuxiliary().moveVolume(i_volume, i_count);
}
if (i_pan != -1.0f) {
(*handlePtr)->getAuxiliary().movePan(i_pan, i_count);
}
if (i_dolby != -1.0f) {
(*handlePtr)->getAuxiliary().moveDolby(i_dolby, i_count);
}
}
return startSoundRes;
}
/* 802AAEDC-802AAF74 2A581C 0098+00 1/1 10/10 0/0 .text
* setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc */
void Z2SoundStarter::setPortData(JAISoundHandle* param_1, u32 param_2, u16 param_3, s8 param_4) {
if (param_1 != NULL && *param_1) {
JASTrack* track = param_1->getSound()->getTrack();
if (param_4 != -1) {
if (track->getChild(param_4) == NULL) {
track->openChild(param_4);
}
track = track->getChild(param_4);
}
JUT_ASSERT(122, track);
track->writePort(param_2, param_3);
}
}
/* 802AAF74-802AAFF0 2A58B4 007C+00 0/0 1/1 0/0 .text
* getPortData__14Z2SoundStarterFP14JAISoundHandleUlSc */
u16 Z2SoundStarter::getPortData(JAISoundHandle* param_1, u32 param_2, s8 param_3) {
if (param_1 != NULL && *param_1) {
JASTrack* track;
if (param_3 == -1) {
track = param_1->getSound()->getTrack();
} else {
track = param_1->getSound()->getChildTrack(param_3);
}
JUT_ASSERT(140, track);
return track->readPort(param_2);
}
return 0;
}
File diff suppressed because it is too large Load Diff
+339
View File
@@ -0,0 +1,339 @@
//
// Z2StatusMgr
//
#include "Z2AudioLib/Z2StatusMgr.h"
#include "Z2AudioLib/Z2Creature.h"
#include "Z2AudioLib/Z2Param.h"
#include "d/d_com_inf_game.h"
#include "d/d_s_play.h"
#include "dol2asm.h"
/* 802B5F1C-802B5F70 2B085C 0054+00 0/0 1/1 0/0 .text __ct__11Z2StatusMgrFv */
Z2StatusMgr::Z2StatusMgr() : JASGlobalInstance(this) {
mHour = 0;
mMinute = 0;
mWeekday = 0;
field_0x03 = 0;
mTime = 3072;
mEventBit = NULL;
mIsMenuIn = false;
mCameraMapInfo = 0;
mPolygonPosition.x = 10000000.0f;
mPolygonPosition.y = 10000000.0f;
mPolygonPosition.z = 10000000.0f;
mUnderwaterDepth = 0.0f;
mCameraInWaterDepthRatio = 0.0f;
mDemoStatus = 0;
mHeartGaugeOn = 0;
}
/* 802B5F70-802B5F7C 2B08B0 000C+00 0/0 1/1 0/0 .text heartGaugeOn__11Z2StatusMgrFv */
void Z2StatusMgr::heartGaugeOn() {
mHeartGaugeOn = 2;
}
/* 802B5F7C-802B60CC 2B08BC 0150+00 0/0 1/1 0/0 .text processHeartGaugeSound__11Z2StatusMgrFv */
void Z2StatusMgr::processHeartGaugeSound() {
if (!dComIfGp_event_runCheck() && mHeartGaugeOn != 0) {
if (dScnPly_c::isPause()) {
mHeartGaugeOn--;
}
if (Z2GetLink() == NULL) {
return;
}
u32 linkHp = Z2GetLink()->getLinkHp();
if (linkHp == 0) {
return;
}
if (Z2GetSeqMgr()->isItemGetDemo()) {
return;
}
if (linkHp <= 2) {
Z2GetSeMgr()->seStartLevel(Z2SE_ALMOST_DIE_ALERM_3, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
} else if (linkHp <= 4) {
Z2GetSeMgr()->seStartLevel(Z2SE_ALMOST_DIE_ALERM_2, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
} else if (linkHp <= 6) {
Z2GetSeMgr()->seStartLevel(Z2SE_ALMOST_DIE_ALERM_1, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
}
}
/* 802B60CC-802B6104 2B0A0C 0038+00 0/0 1/1 0/0 .text talkIn__11Z2StatusMgrFv */
void Z2StatusMgr::talkIn() {
if (!isMovieDemo()) {
Z2GetSeqMgr()->talkInBgm();
Z2GetSeMgr()->talkInSe();
}
}
/* 802B6104-802B613C 2B0A44 0038+00 0/0 1/1 0/0 .text talkOut__11Z2StatusMgrFv */
void Z2StatusMgr::talkOut() {
if (!isMovieDemo()) {
Z2GetSeqMgr()->talkOutBgm();
Z2GetSeMgr()->talkOutSe();
}
}
/* 802B613C-802B617C 2B0A7C 0040+00 0/0 1/1 0/0 .text menuIn__11Z2StatusMgrFv */
void Z2StatusMgr::menuIn() {
Z2GetSeqMgr()->menuInBgm();
Z2GetSeMgr()->menuInSe();
mIsMenuIn = true;
}
/* 802B617C-802B61BC 2B0ABC 0040+00 0/0 3/3 0/0 .text menuOut__11Z2StatusMgrFv */
void Z2StatusMgr::menuOut() {
Z2GetSeqMgr()->menuOutBgm();
Z2GetSeMgr()->talkOutSe();
mIsMenuIn = false;
}
/* 802B61BC-802B61E8 2B0AFC 002C+00 2/2 1/1 0/0 .text isMovieDemo__11Z2StatusMgrFv */
bool Z2StatusMgr::isMovieDemo() {
return mDemoStatus == 2 || mDemoStatus == 8 || mDemoStatus == 9;
}
static void dummyStrings() {
DEAD_STRING("F_SP00");
DEAD_STRING("F_SP103");
DEAD_STRING("R_SP01");
DEAD_STRING("F_SP104");
DEAD_STRING("R_SP107");
DEAD_STRING("F_SP108");
DEAD_STRING("R_SP108");
DEAD_STRING("F_SP117");
DEAD_STRING("F_SP109");
DEAD_STRING("R_SP109");
DEAD_STRING("R_SP209");
DEAD_STRING("F_SP110");
DEAD_STRING("R_SP110");
DEAD_STRING("F_SP111");
DEAD_STRING("F_SP128");
DEAD_STRING("R_SP128");
DEAD_STRING("F_SP115");
DEAD_STRING("F_SP112");
DEAD_STRING("F_SP126");
DEAD_STRING("F_SP127");
DEAD_STRING("R_SP127");
DEAD_STRING("F_SP113");
DEAD_STRING("F_SP116");
DEAD_STRING("R_SP116");
DEAD_STRING("R_SP160");
DEAD_STRING("R_SP161");
DEAD_STRING("F_SP114");
DEAD_STRING("F_SP118");
DEAD_STRING("F_SP124");
DEAD_STRING("F_SP125");
DEAD_STRING("F_SP121");
DEAD_STRING("F_SP122");
DEAD_STRING("F_SP123");
DEAD_STRING("F_SP200");
DEAD_STRING("F_SP102");
DEAD_STRING("");
DEAD_STRING("R_SP300");
DEAD_STRING("R_SP301");
DEAD_STRING("T_ENEMY");
DEAD_STRING("D_MN54");
DEAD_STRING("D_MN05");
DEAD_STRING("D_MN05B");
DEAD_STRING("D_MN05A");
DEAD_STRING("D_MN04");
DEAD_STRING("D_MN04B");
DEAD_STRING("D_MN04A");
DEAD_STRING("D_MN01");
DEAD_STRING("D_MN01B");
DEAD_STRING("D_MN01A");
DEAD_STRING("D_MN10");
DEAD_STRING("D_MN10B");
DEAD_STRING("D_MN10A");
DEAD_STRING("D_MN11");
DEAD_STRING("D_MN11B");
DEAD_STRING("D_MN11A");
DEAD_STRING("D_MN06");
DEAD_STRING("D_MN06B");
DEAD_STRING("D_MN06A");
DEAD_STRING("D_MN07");
DEAD_STRING("D_MN07B");
DEAD_STRING("D_MN07A");
DEAD_STRING("D_MN08");
DEAD_STRING("D_MN08B");
DEAD_STRING("D_MN08C");
DEAD_STRING("D_MN08A");
DEAD_STRING("D_MN08D");
DEAD_STRING("D_MN09");
DEAD_STRING("D_MN09A");
DEAD_STRING("D_MN09B");
DEAD_STRING("D_MN09C");
DEAD_STRING("D_SB00");
DEAD_STRING("D_SB01");
DEAD_STRING("D_SB02");
DEAD_STRING("D_SB03");
DEAD_STRING("D_SB04");
DEAD_STRING("D_SB05");
DEAD_STRING("D_SB06");
DEAD_STRING("D_SB07");
DEAD_STRING("D_SB08");
DEAD_STRING("D_SB09");
DEAD_STRING("D_SB10");
}
/* 802B61E8-802B671C 2B0B28 0534+00 1/0 7/7 11/11 .text setDemoName__11Z2StatusMgrFPc */
void Z2StatusMgr::setDemoName(char* demoName) {
if (mDemoStatus == 11) {
mDemoStatus = 0;
if (Z2GetSceneMgr()->isInGame()) {
Z2GetSceneMgr()->sceneBgmStart();
}
}
if (demoName == NULL) {
if (mDemoStatus == 3) {
Z2GetSeqMgr()->setBattleBgmOff(false);
} else if (mDemoStatus == 4) {
Z2GetSeqMgr()->i_unMuteSceneBgm(struct_80450861);
} else if (mDemoStatus == 5) {
Z2GetSeqMgr()->subBgmStop();
} else if (mDemoStatus == 9) {
Z2GetSeqMgr()->bgmStreamStop(0x3c);
}
if (mDemoStatus != 8) {
mDemoStatus = 0;
}
} else {
bool bVar1 = false;
if (mDemoStatus == 8) {
if (strcmp(demoName, "force_end") == 0) {
mDemoStatus = 0;
}
} else if (strcmp(demoName, "SAVEREQ") == 0 || strcmp(demoName, "SAVEGID") == 0) {
mDemoStatus = 11;
} else if (strcmp(demoName, "demo36_01") == 0 || strcmp(demoName, "demo36_02") == 0) {
mDemoStatus = 4;
Z2GetSeqMgr()->i_muteSceneBgm(0x1e, 0.0f);
} else if (strcmp(demoName, "demo37_01") == 0) {
mDemoStatus = 12;
Z2GetSoundMgr()->getSeMgr()->getCategory(9)->getParams()->moveVolume(0.0f, 0);
} else if (strncmp(demoName, "demo31", 6) == 0) {
mDemoStatus = 13;
Z2GetSeMgr()->seMoveVolumeAll(0.0f, 0);
} else if (strncmp(demoName, "demo", 4) == 0) {
mDemoStatus = 2;
} else if (strcmp(demoName, "force_start") == 0) {
mDemoStatus = 8;
} else if (strcmp(demoName, "force_end") == 0) {
mDemoStatus = 0;
} else if (strcmp(demoName, "KAGO_HIKARI") == 0) {
mDemoStatus = 6;
} else if (strcmp(demoName, "KAGO_YAMI") == 0) {
mDemoStatus = 7;
} else if (strcmp(demoName, "HYRULEOP") == 0) {
mDemoStatus = 10;
} else {
switch (Z2GetSceneMgr()->getCurrentSceneNum()) {
case 0xe:
if (strcmp(demoName, "R00_start") == 0) {
mDemoStatus = 5;
Z2GetSeqMgr()->subBgmStart(Z2BGM_HIDDEN_VIL_D1);
}
break;
case 5:
if (strcmp(demoName, "B_W_START") == 0) {
Z2GetSeqMgr()->bgmStreamPrepare(0x200005f);
Z2GetSeqMgr()->bgmStreamPlay();
mDemoStatus = 9;
}
break;
case 4:
if (strcmp(demoName, "L0_rampart01") == 0) {
bVar1 = true;
}
break;
case 0x28:
if (strcmp(demoName, "R22-opening") == 0) {
bVar1 = true;
}
break;
case 0x2b:
if (strcmp(demoName, "R01-start") == 0) {
bVar1 = true;
}
break;
case 0x2e:
if (strcmp(demoName, "LV3R00OP") == 0) {
bVar1 = true;
}
break;
case 0x31:
if (strcmp(demoName, "R00_start") == 0) {
bVar1 = true;
}
break;
}
if (bVar1) {
Z2GetSeqMgr()->setBattleBgmOff(true);
mDemoStatus = 3;
} else if (mDemoStatus == 0) {
mDemoStatus = 1;
}
}
}
}
/* 802B671C-802B6734 2B105C 0018+00 0/0 1/1 0/0 .text processTime__11Z2StatusMgrFv */
void Z2StatusMgr::processTime() {
u16 processed_hour = mHour * 256;
mTime = processed_hour + mMinute;
}
/* 802B6734-802B6758 2B1074 0024+00 0/0 5/5 0/0 .text checkDayTime__11Z2StatusMgrFv */
bool Z2StatusMgr::checkDayTime() {
if (mHour >= 6 && mHour < 19) {
return true;
}
return false;
}
/* 802B6758-802B6760 -00001 0008+00 0/0 0/0 0/0 .text setEventBit__11Z2StatusMgrFPv */
void Z2StatusMgr::setEventBit(void* i_eventBit) {
mEventBit = i_eventBit;
}
/* 802B6760-802B6784 2B10A0 0024+00 0/0 1/1 0/0 .text setCameraPolygonPos__11Z2StatusMgrFP3Vec */
void Z2StatusMgr::setCameraPolygonPos(Vec* i_polygonPos) {
if (i_polygonPos != NULL) {
mPolygonPosition = *i_polygonPos;
}
}
/* 802B6784-802B6788 2B10C4 0004+00 0/0 1/1 0/0 .text setCameraGroupInfo__11Z2StatusMgrFUc */
void Z2StatusMgr::setCameraGroupInfo(u8) {}
/* 802B6788-802B6840 2B10C8 00B8+00 0/0 2/2 0/0 .text setCameraInWaterDepth__11Z2StatusMgrFf */
void Z2StatusMgr::setCameraInWaterDepth(f32 depth) {
if (0.0f == depth) {
mCameraInWaterDepthRatio = 0.0f;
Z2GetFxLineMgr()->setUnderWaterFx(false);
} else {
if (Z2GetLink() != NULL) {
if (Z2GetLink()->isInWater()) {
if (depth >= 2000.0f) {
mCameraInWaterDepthRatio = 1.0f;
} else {
mCameraInWaterDepthRatio =
Z2Calc::getParamByExp(depth, 0.0f, 2000.0f, 0.2f, 0.0f, 1.0f, Z2Calc::CURVE_SIGN_0);
}
Z2GetFxLineMgr()->setUnderWaterFx(true);
}
}
}
mUnderwaterDepth = depth;
}
/* 8039BC88-8039BC88 0282E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+516
View File
@@ -0,0 +1,516 @@
//
// Z2WolfHowlMgr
//
#include "Z2AudioLib/Z2WolfHowlMgr.h"
#include "Z2AudioLib/Z2Creature.h"
#include "Z2AudioLib/Z2Calc.h"
#include "Z2AudioLib/Z2SeqMgr.h"
#include "Z2AudioLib/Z2SeMgr.h"
#include "Z2AudioLib/Z2SceneMgr.h"
#include "Z2AudioLib/Z2SoundMgr.h"
#include "Z2AudioLib/Z2Audience.h"
#include "d/d_demo.h"
/* ############################################################################################## */
/* 804508A0-804508A8 000320 0008+00 1/0 0/0 0/0 .sdata sHowlTobikusa */
extern SongNote sHowlTobikusa[4];
/* 803CBC50-803CBC5C 028D70 000C+00 1/0 0/0 0/0 .data sHowlUmakusa */
static SongNote sHowlUmakusa[6] = {
{0x01, 0x0F}, {0x02, 0x0F}, {0x03, 0x3C}, {0x01, 0x0F}, {0x02, 0x0F}, {0x03, 0x3C},
};
/* 803CBC5C-803CBC68 028D7C 000C+00 1/0 0/0 0/0 .data sHowlZeldaSong */
static SongNote sHowlZeldaSong[6] = {
{0x02, 0x1E}, {0x01, 0x0F}, {0x03, 0x2D}, {0x02, 0x1E}, {0x01, 0x0F}, {0x03, 0x2D},
};
/* 803CBC68-803CBC74 028D88 000C+00 1/0 0/0 0/0 .data sHowlLightPrelude */
static SongNote sHowlLightPrelude[6] = {
{0x01, 0x14}, {0x03, 0x28}, {0x01, 0x14}, {0x03, 0x14}, {0x02, 0x14}, {0x01, 0x1E},
};
/* 803CBC74-803CBC80 028D94 000C+00 1/0 0/0 0/0 .data sHowlSoulRequiem */
static SongNote sHowlSoulRequiem[6] = {
{0x03, 0x1E}, {0x02, 0x0F}, {0x03, 0x0F}, {0x01, 0x1E}, {0x02, 0x1E}, {0x03, 0x1E},
};
/* 803CBC80-803CBC8C 028DA0 000C+00 1/0 0/0 0/0 .data sHealingSong */
static SongNote sHealingSong[6] = {
{0x01, 0x1E}, {0x02, 0x1E}, {0x03, 0x1E}, {0x01, 0x1E}, {0x02, 0x1E}, {0x03, 0x1E},
};
/* 803CBC8C-803CBC9C 028DAC 000E+02 1/0 0/0 0/0 .data sNewSong1 */
static SongNote sNewSong1[7] = {
{0x03, 0x1E}, {0x02, 0x1E}, {0x01, 0x1E}, {0x03, 0x28}, {0x02, 0x14}, {0x03, 0x1E}, {0x01, 0x1E},
};
/* 803CBC9C-803CBCAC 028DBC 0010+00 1/0 0/0 0/0 .data sNewSong2 */
static SongNote sNewSong2[8] = {
{0x01, 0x14}, {0x02, 0x14}, {0x03, 0x14}, {0x02, 0x3C}, {0x03, 0x14}, {0x01, 0x14}, {0x02, 0x14}, {0x03, 0x1E},
};
/* 803CBCAC-803CBCC0 028DCC 0012+02 1/0 0/0 0/0 .data sNewSong3 */
static SongNote sNewSong3[9] = {
{0x02, 0x1E}, {0x03, 0x3C}, {0x02, 0x28}, {0x01, 0x14}, {0x03, 0x3C}, {0x01, 0x14}, {0x02, 0x14}, {0x01, 0x14}, {0x02, 0x2D},
};
/* 803CBCC0-803CBD08 -00001 0048+00 1/1 0/0 0/0 .data sGuideData */
static Z2WolfHowlData sGuideData[9] = {
{4, sHowlTobikusa}, {6, sHowlUmakusa}, {6, sHowlZeldaSong},
{6, sHealingSong}, {6, sHowlSoulRequiem}, {6, sHowlLightPrelude},
{7, sNewSong1}, {8, sNewSong2}, {9, sNewSong3},
};
/* 80450880-80450884 000300 0004+00 2/2 0/0 0/0 .sdata cPitchDown */
static f32 cPitchDown = 0.8909000158309937f;
/* 80450884-80450888 000304 0004+00 4/4 0/0 0/0 .sdata cPitchCenter */
static f32 cPitchCenter = 1.0f;
/* 80450888-8045088C 000308 0004+00 2/2 0/0 0/0 .sdata cPitchUp */
static f32 cPitchUp = 1.1892000436782837f;
static u8 struct_8045088C = 7;
static u8 struct_8045088D = 7;
/* 8045088E-80450890 00030E 0002+00 4/4 0/0 0/0 .sdata None */
static u8 data_8045088E = 0x1E;
static u8 data_8045088F = 0x00;
/* 80450890-80450894 000310 0004+00 1/1 0/0 0/0 .sdata cR_FlatWidth */
static f32 cR_FlatWidth = 0.9438700079917908f;
/* 80450894-80450898 -00001 0004+00 3/3 0/0 0/0 .sdata None */
static u8 struct_80450894 = 0x05;
static u8 struct_80450895 = 0x1E;
/* 80450898-8045089C 000318 0004+00 1/1 0/0 0/0 .sdata sStickHigh */
static f32 sStickHigh = 0.5f;
/* 8045089C-804508A0 00031C 0004+00 1/1 0/0 0/0 .sdata sStickCenter */
static f32 sStickCenter = 1.0f / 5.0f;
/* 804508A0-804508A8 000320 0008+00 1/0 0/0 0/0 .sdata sHowlTobikusa */
static SongNote sHowlTobikusa[4] = {
{0x01, 0x1E},
{0x03, 0x1E},
{0x01, 0x1E},
{0x03, 0x1E},
};
/* 802CAAC0-802CAB8C 2C5400 00CC+00 0/0 1/1 0/0 .text __ct__13Z2WolfHowlMgrFv */
Z2WolfHowlMgr::Z2WolfHowlMgr() : JASGlobalInstance(this) {
mpCurSong = NULL;
mNowInputValue = 0.0f;
field_0x18 = 1.0f;
field_0x1c = 1.0f;
field_0x20 = cPitchCenter;
field_0x24 = cPitchCenter;
field_0x28 = 1.0f;
mTimer = 0;
mReleaseTimer = 0;
mCorrectCurveID = -1;
field_0x90 = -1;
field_0xba = 0;
field_0xbb = 0;
field_0xbc = 0;
for (u8 i = 0; i < 20; i++) {
field_0x92[i] = 0;
}
for (u8 i = 0; i < 10; i++) {
field_0x38[i] = 0.0f;
field_0x60[i] = 0.0f;
}
field_0x34 = 0.0f;
field_0x30 = 0.0f;
mpSongList = (Z2WolfHowlData*)&sGuideData;
}
/* 802CAB8C-802CABEC 2C54CC 0060+00 1/1 0/0 0/0 .text resetState__13Z2WolfHowlMgrFv */
void Z2WolfHowlMgr::resetState() {
field_0x18 = 1.0f;
field_0x24 = cPitchCenter;
field_0x28 = 1.0f;
mTimer = 0;
mReleaseTimer = 0;
field_0xba = 0;
for (u8 i = 0; i < 10; i++) {
field_0x38[i] = 0.0f;
field_0x60[i] = 0.0f;
}
field_0x34 = 0.0f;
field_0x30 = 0.0f;
}
/* 802CABEC-802CACB0 2C552C 00C4+00 1/1 0/0 0/0 .text calcVolumeMod__13Z2WolfHowlMgrFf */
void Z2WolfHowlMgr::calcVolumeMod(f32 param_0) {
if (field_0x00) {
if (mTimer < data_8045088E) {
field_0x00->getAuxiliary().moveVolume(1.0f, 0);
} else {
f32 dVar7 = 1.0f;
if (mReleaseTimer != 0x0) {
dVar7 = getParamByExp(mReleaseTimer, 30.0f, 0.0f, 2.0f, 0.0f, 1.0f, Z2Calc::CURVE_SIGN_1);
}
field_0x18 = dVar7;
if (field_0x00) {
field_0x00->getAuxiliary().moveVolume(field_0x18, 0);
}
field_0x1c = field_0x18;
}
}
}
/* 802CACB0-802CACCC 2C55F0 001C+00 1/1 0/0 0/0 .text getNowPitch__13Z2WolfHowlMgrFv */
f32 Z2WolfHowlMgr::getNowPitch() {
if (field_0x00) {
return field_0x00->getAuxiliary().mParams.mPitch;
}
return 1.0f;
}
/* 802CACCC-802CACD4 2C560C 0008+00 0/0 2/2 0/0 .text getNowInputValue__13Z2WolfHowlMgrFv
*/
f32 Z2WolfHowlMgr::getNowInputValue() {
return mNowInputValue;
}
/* 802CACD4-802CAED4 2C5614 0200+00 1/1 0/0 0/0 .text calcPitchMod__13Z2WolfHowlMgrFff */
void Z2WolfHowlMgr::calcPitchMod(f32 param_0, f32 param_1) {
f32 dVar12 = 1.0f;
field_0x20 = getNowPitch();
if (mReleaseTimer != 0) {
f32 dVar11 = getParamByExp(mReleaseTimer, 30.0f, 0.0f, 1.0f, 0.97f, 1.0f, Z2Calc::CURVE_SIGN_0);
dVar11 = field_0x24 * dVar11;
if (field_0x00) {
field_0x00->getAuxiliary().movePitch(dVar11, 0);
}
} else {
if (mTimer < data_8045088E) {
field_0x34 = 0.0f;
} else {
f32 dVar11 = 1.0f;
if (mNowInputValue < 0.0f) {
dVar11 = Z2Calc::linearTransform(mNowInputValue, -1.0f, 0.0f, cPitchDown, 1.0f, false);
} else if (mNowInputValue > 0.0f) {
dVar11 = Z2Calc::linearTransform(mNowInputValue, 1.0f, 0.0f,cPitchUp, 1.0f, false);
}
f32 temp = dVar11 * cPitchCenter;
f32 fVar5 = temp - (dVar12 = field_0x24);
if (fVar5 == 0.0f) {
dVar12 = dVar12;
} else if (fVar5 > 0.0f) {
dVar12 += fVar5 / struct_8045088C;
} else {
dVar12 += fVar5 / struct_8045088D;
}
}
field_0x24 = dVar12;
f32 dVar11 = Z2Calc::linearTransform(param_1, 0.0f, 1.0f, 1.0f, cR_FlatWidth, true);
f32 fVar5 = field_0x28 + (dVar11 - field_0x28) / struct_80450894;
field_0x28 = fVar5;
dVar12 *= fVar5;
if (field_0x00) {
field_0x00->getAuxiliary().movePitch(dVar12, 0);
}
}
}
/* 802CAED4-802CB100 2C5814 022C+00 0/0 1/1 0/0 .text startWolfHowlSound__13Z2WolfHowlMgrFffbf */
s8 Z2WolfHowlMgr::startWolfHowlSound(f32 param_0, f32 param_1, bool param_2, f32 param_3) {
if (mCorrectCurveID > 1) {
Z2GetSeqMgr()->i_setWindStoneVol(0.0f, 0);
}
if (Z2GetSeqMgr()->isItemGetDemo() || (mReleaseTimer != 0)) {
param_2 = false;
} else {
if (param_1 > sStickCenter) {
mNowInputValue = Z2Calc::linearTransform(param_1, sStickCenter, sStickHigh, 0.0f, 1.0f, false);
} else {
f32 fVar1 = -1.0f * sStickCenter;
if (param_1 < fVar1) {
mNowInputValue = Z2Calc::linearTransform(param_1, fVar1, -1.0f * sStickHigh, 0.0f, -1.0f, false);
} else {
mNowInputValue = 0.0f;
}
}
}
if (param_2) {
if (mTimer > data_8045088E) {
Z2GetSoundStarter()->startLevelSound(0x10035, &field_0x00, NULL);
}
if (field_0x00) {
calcPitchMod(0.0f, 0.0f);
calcVolumeMod(param_3);
}
mTimer++;
} else {
if (mTimer > data_8045088E) {
if (mReleaseTimer < 0x1e) {
Z2GetSoundStarter()->startLevelSound(0x10035, &field_0x00, NULL);
if (field_0x00) {
calcPitchMod(0.0f, 0.0f);
calcVolumeMod(param_3);
}
mReleaseTimer++;
mTimer++;
} else {
resetState();
}
} else {
resetState();
}
}
return checkLine();
}
/* 802CB100-802CB320 2C5A40 0220+00 0/0 1/1 0/0 .text
* setCorrectData__13Z2WolfHowlMgrFScP14Z2WolfHowlData */
void Z2WolfHowlMgr::setCorrectData(s8 param_0, Z2WolfHowlData* param_1) {
if (param_0 == mCorrectCurveID) {
return;
}
if (param_0 == -1) {
mCorrectCurveID = -1;
mpCurSong = 0;
return;
}
if (param_1 == NULL) {
if (param_0 >= 9) {
mCorrectCurveID = -1;
mpCurSong = 0;
return;
}
param_1 = &mpSongList[param_0];
}
mCorrectCurveID = param_0;
mpCurSong = param_1;
switch(param_0) {
case 3:
cPitchUp = 1.1224600076675415f;
cPitchCenter = 1.0594600439071655f;
cPitchDown = 0.7936859726905823f;
break;
case 4:
cPitchUp = 1.2599060535430908f;
cPitchCenter = 0.9438700079917908f;
cPitchDown = 0.8408849835395813f;
break;
case 6:
cPitchUp = 1.3348400592803955f;
cPitchCenter = 0.8909000158309937f;
cPitchDown = 0.8909000158309937f;
break;
case 7:
cPitchUp = 1.2599060535430908f;
cPitchCenter = 0.9438700079917908f;
cPitchDown = 0.8909000158309937f;
break;
case 8:
cPitchUp = 1.1224600076675415f;
cPitchCenter = 0.9438700079917908f;
cPitchDown = 0.7491499781608582f;
break;
default:
cPitchUp = 1.1892000436782837f;
cPitchCenter = 1.0f;
cPitchDown = 0.8909000158309937f;
break;
}
field_0xbe = 0;
u32 uVar4 = 0;
for (u8 bVar5 = 0; bVar5 < getCorrectLineNum(); bVar5++) {
uVar4 += getCorrectLine(bVar5).length;
if (getCorrectLine(bVar5).barType != 0) {
field_0xbe += struct_80450895;
field_0xbe += getCorrectLine(bVar5).length;
}
}
field_0xbe -= uVar4 >> 2;
}
/* 802CB320-802CB370 2C5C60 0050+00 3/3 2/2 0/0 .text getCorrectLine__13Z2WolfHowlMgrFUc
*/
SongNote Z2WolfHowlMgr::getCorrectLine(u8 param_0) {
u16 local_18;
if (mpCurSong == 0 || param_0 >= mpCurSong->mLineNum) {
SongNote note;
note.barType = 0;
note.length = 0;
return note;
}
return mpCurSong->mSongData[param_0];
}
/* 802CB370-802CB38C 2C5CB0 001C+00 2/2 1/1 0/0 .text getCorrectLineNum__13Z2WolfHowlMgrFv */
u8 Z2WolfHowlMgr::getCorrectLineNum() {
if (mpCurSong != NULL) {
return mpCurSong->mLineNum;
}
return 0;
}
/* ############################################################################################## */
/* 804341F8-8043421C 060F18 0024+00 2/2 0/0 0/0 .bss sCorrectPhrase */
static JAISoundID sCorrectPhrase[9] = {
0x1000052, 0x1000053, 0x1000054, 0x1000072, 0x1000068,
0x1000055, 0x1000075, 0x100007c, 0x100007f,
};
/* 8043421C-80434240 060F3C 0024+00 2/3 0/0 0/0 .bss sWindStoneSound */
static JAISoundID sWindStoneSound[9] = {
0xffffffff, 0xffffffff, 0x100005b, 0x1000071, 0x1000067,
0x100005c, 0x1000074, 0x100007b, 0x100007e,
};
/* 80434240-80434268 060F60 0024+04 1/2 0/0 0/0 .bss sCorrectDuo */
static JAISoundID sCorrectDuo[9] = {
0xffffffff, 0xffffffff, 0xffffffff, 0x1000073, 0x1000069,
0x1000066, 0x1000076, 0x100007d, 0x1000080,
};
/* 802CB38C-802CB650 2C5CCC 02C4+00 1/1 0/0 0/0 .text checkLine__13Z2WolfHowlMgrFv */
s8 Z2WolfHowlMgr::checkLine() {
if (mCorrectCurveID == -1 || mpCurSong == NULL) {
return -1;
}
if (Z2GetSeqMgr()->isItemGetDemo()) {
return mCorrectCurveID;
}
if (mTimer == 0) {
if (field_0x90 > 0) {
field_0x90 = -1;
}
return -1;
} else if (field_0x90 >= field_0xbe) {
u32 uVar1 = 0;
for (u8 i = 0; i < getCorrectLineNum(); i++) {
uVar1 += getCorrectLine(i).length;
}
if (mTimer - data_8045088E < uVar1) {
return -1;
}
Z2GetSeMgr()->seStart(0xd, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
if (mCorrectCurveID > 2) {
if (Z2GetSceneMgr()->getCurrentSceneNum() == 0x21) {
Z2GetSeqMgr()->subBgmStart(sCorrectDuo[mCorrectCurveID]);
}
} else {
Z2GetSeqMgr()->subBgmStart(sCorrectPhrase[mCorrectCurveID]);
}
field_0x90 = 0xffff;
return mCorrectCurveID;
} else {
if (mTimer == 1) {
field_0x90 = 0;
field_0xba = 0;
field_0xbc = 0;
} else if (mTimer >= data_8045088E) {
u32 r29 = mTimer - data_8045088E;
u32 uVar1 = 0;
for (u8 i = 0; i <= field_0xba; i++) {
uVar1 += getCorrectLine(i).length;
}
if (r29 > uVar1 && field_0xba < getCorrectLineNum()) {
field_0x90 += field_0xbc;
if (field_0xbc > getCorrectLine(field_0xba).length / 6) {
field_0x90 += struct_80450895;
}
field_0xba++;
field_0xbc = 0;
} else {
if (getOnLineNum() > -1) {
field_0xbc++;
}
}
}
return -1;
}
return mCorrectCurveID;
}
/* 802CB650-802CB6EC 2C5F90 009C+00 1/1 1/1 0/0 .text getOnLineNum__13Z2WolfHowlMgrFv */
s8 Z2WolfHowlMgr::getOnLineNum() {
SongNote note = getCorrectLine(field_0xba);
if ((note.barType == 1 && mNowInputValue == 1.0f) ||
(note.barType == 2 && mNowInputValue == 0.0f) ||
(note.barType == 3 && mNowInputValue == -1.0f)) {
s8 rv = field_0xba;
return rv;
}
return -1;
}
/* 802CB6EC-802CBA88 2C602C 039C+00 0/0 0/0 2/2 .text startWindStoneSound__13Z2WolfHowlMgrFScP3Vec
*/
void Z2WolfHowlMgr::startWindStoneSound(s8 param_0, Vec* param_1) {
if (param_1 == NULL || Z2GetLink() == NULL || Z2GetLink()->getCurrentPos() == NULL) {
return;
}
Vec local_60 = Z2GetAudience()->getAudioCamPos();
f32 dVar13 = sqrtf(VECSquareDistance(param_1, &local_60));
if (dVar13 > 2100.0f && field_0x04) {
field_0x04->stop();
} else if (dVar13 < 2100.0f && !field_0x04) {
Z2GetSoundMgr()->startSound(sWindStoneSound[param_0], &field_0x04, (const JGeometry::TVec3<f32>*)param_1);
}
if (field_0x04) {
field_0x04->fadeIn(0);
field_0x04->stop(0x1e);
if (Z2GetLink()->getLinkState() == 1) {
f32 fVar14 = sqrtf(VECSquareDistance(param_1, Z2GetLink()->getCurrentPos()));
f32 dVar13 = 1.0f;
if (fVar14 < 150.0f) {
dVar13 = 0.0f;
} else if (fVar14 < 2000.0f) {
dVar13 = Z2Calc::getParamByExp(fVar14, 150.0f, 2000.0f,
0.45f, 0.05f, dVar13, Z2Calc::CURVE_SIGN_0);
}
Z2GetSeqMgr()->i_setWindStoneVol(dVar13, 0);
field_0x04->getAuxiliary().moveVolume(0.4f, 0);
} else {
field_0x04->getAuxiliary().moveVolume(0.04f, 0);
}
}
}
/* 802CBA88-802CBB58 2C63C8 00D0+00 0/0 1/1 0/0 .text startGuideMelody__13Z2WolfHowlMgrFb
*/
int Z2WolfHowlMgr::startGuideMelody(bool param_0) {
Z2GetSeqMgr()->i_setWindStoneVol(0.0f, 0);
if (param_0) {
Z2GetSoundMgr()->startSound(sWindStoneSound[mCorrectCurveID], &field_0x08, NULL);
}
if (field_0x08) {
field_0x08->fadeIn(0);
field_0x08->stop(0x1e);
return field_0x08->getCount();
}
return 0;
}
/* 802CBB58-802CBB7C 2C6498 0024+00 0/0 1/1 0/0 .text skipCorrectDemo__13Z2WolfHowlMgrFv
*/
void Z2WolfHowlMgr::skipCorrectDemo() {
Z2GetSeqMgr()->stopWolfHowlSong();
}