Z2Creature mostly done (#2049)

This commit is contained in:
Caroline Madsen
2024-01-26 21:11:28 -05:00
committed by GitHub
parent 238f875e39
commit e2a84aef47
67 changed files with 924 additions and 3692 deletions
+5 -2
View File
@@ -1513,5 +1513,8 @@ REGISTER_CTORS(0x802BDEDC, __sinit_Z2Audience_cpp);
/* 80451358-80451360 -00001 0008+00 0/0 1/1 0/0 .sbss None */
/* 80451358 0001+00 data_80451358 None */
/* 80451359 0007+00 data_80451359 None */
extern u8 struct_80451358[8];
u8 struct_80451358[8];
// extern u8 struct_80451358[8];
// u8 struct_80451358[8];
s8 data_80451358;
s8 data_80451359;
u8 data_8045135a[6]; // padding?
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -583,7 +583,7 @@ void Z2CreatureLink::startLinkSwordSound(JAISoundID i_soundID, u32 id, s8 ch) {
}
/* 802C4784-802C4814 2BF0C4 0090+00 1/0 0/0 0/0 .text startCollisionSE__14Z2CreatureLinkFUlUl */
void Z2CreatureLink::startCollisionSE(u32 hitID, u32 mapinfo) {
Z2SoundHandlePool* Z2CreatureLink::startCollisionSE(u32 hitID, u32 mapinfo) {
switch (mapinfo) {
case 0x28:
case 0x29:
@@ -597,7 +597,7 @@ void Z2CreatureLink::startCollisionSE(u32 hitID, u32 mapinfo) {
break;
}
mSoundObjAnime.startCollisionSE(hitID, mapinfo, NULL);
return mSoundObjAnime.startCollisionSE(hitID, mapinfo, NULL);
}
/* ############################################################################################## */
+14 -22
View File
@@ -129,30 +129,22 @@ u8 struct_80450862 = 0x3C;
u8 struct_80450863 = 0x1E;
/* 80450864-80450868 -00001 0004+00 0/0 2/2 0/0 .sdata None */
extern u8 struct_80450864[4];
u8 struct_80450864[4] = {
/* 80450864 0001+00 data_80450864 None */
0x14,
/* 80450865 0001+00 data_80450865 None */
0x1E,
/* 80450866 0001+00 data_80450866 None */
0x0A,
/* 80450867 0001+00 data_80450867 None */
0x1E,
};
#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 */
extern u8 struct_80450868[4];
u8 struct_80450868[4] = {
/* 80450868 0001+00 data_80450868 None */
0x01,
/* 80450869 0001+00 data_80450869 None */
0x0A,
/* 8045086A 0001+00 data_8045086A None */
0x1E,
/* 8045086B 0001+00 data_8045086B None */
0x14,
};
#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 */
extern u32 data_8045086C = 0x01000000;
+3 -2
View File
@@ -712,7 +712,7 @@ asm void Z2SceneMgr::setSceneName(char* param_0, s32 param_1, s32 param_2) {
//! @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_ = soundIdToSet;
this_->mId = soundIdToSet.mId;
}
/* 802B9968-802B9978 2B42A8 0010+00 1/1 0/0 0/0 .text setFieldBgmPlay__8Z2SeqMgrFb */
@@ -734,7 +734,8 @@ asm bool JAIStreamMgr::isActive() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JAISoundID JAISound::getID() const {
// asm JAISoundID JAISound::getID() const {
extern "C" asm void getID__8JAISoundCFv() {
nofralloc
#include "asm/Z2AudioLib/Z2SceneMgr/getID__8JAISoundCFv.s"
}
-2
View File
@@ -145,8 +145,6 @@ extern "C" void _restgpr_29();
extern "C" f32 VOL_BGM_DEFAULT__7Z2Param;
extern "C" f32 VOL_BGM_TALKING__7Z2Param;
extern "C" f32 VOL_BGM_PAUSING__7Z2Param;
extern "C" extern u8 struct_80450864[4];
extern "C" extern u8 struct_80450868[4];
extern "C" extern u32 data_8045086C;
extern "C" extern u8 data_80450B48[4];
extern "C" extern u8 data_80450B60[4];
+10 -14
View File
@@ -40,10 +40,6 @@ u8 data_804341C4[16 + 4 /* padding */];
// inline JAISoundID::JAISoundID(u32 pId) : mId(pId) {}
inline JAISoundID JAISound::getID() const {
return JAISoundID((u32)soundID);
}
Z2SoundHandles::Z2SoundHandles() {
mNumHandles = 0;
}
@@ -88,10 +84,10 @@ extern "C" asm void func_802AB200(void* _this) {
}
#pragma pop
JAISoundHandle* Z2SoundHandles::getHandleSoundID(JAISoundID pSoundId) {
Z2SoundHandlePool* Z2SoundHandles::getHandleSoundID(JAISoundID pSoundId) {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
JAISoundHandle* handle = link->getObject();
Z2SoundHandlePool* handle = link->getObject();
if (handle->isSoundAttached()) {
if ((*handle)->getID() == pSoundId) {
return handle;
@@ -102,10 +98,10 @@ JAISoundHandle* Z2SoundHandles::getHandleSoundID(JAISoundID pSoundId) {
return NULL;
}
JAISoundHandle* Z2SoundHandles::getHandleUserData(u32 pUserData) {
Z2SoundHandlePool* Z2SoundHandles::getHandleUserData(u32 pUserData) {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
JAISoundHandle* handle = link->getObject();
Z2SoundHandlePool* handle = link->getObject();
if (handle->isSoundAttached()) {
if ((*handle)->getUserData() == pUserData) {
return handle;
@@ -119,10 +115,10 @@ JAISoundHandle* Z2SoundHandles::getHandleUserData(u32 pUserData) {
/* 802AB2D8-802AB3D0 2A5C18 00F8+00 0/0 3/3 0/0 .text getFreeHandle__14Z2SoundHandlesFv
*/
#ifdef NONMATCHING
JAISoundHandle* Z2SoundHandles::getFreeHandle() {
Z2SoundHandlePool* Z2SoundHandles::getFreeHandle() {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
JAISoundHandle* handle = link->getObject();
Z2SoundHandlePool* handle = link->getObject();
if (!handle->isSoundAttached()) {
return handle;
}
@@ -143,7 +139,7 @@ JAISoundHandle* Z2SoundHandles::getFreeHandle() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JAISoundHandle* Z2SoundHandles::getFreeHandle() {
asm Z2SoundHandlePool* Z2SoundHandles::getFreeHandle() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundHandles/getFreeHandle__14Z2SoundHandlesFv.s"
}
@@ -152,11 +148,11 @@ asm JAISoundHandle* Z2SoundHandles::getFreeHandle() {
/* 802AB3D0-802AB4A0 2A5D10 00D0+00 0/0 2/2 0/0 .text
* getLowPrioSound__14Z2SoundHandlesF10JAISoundID */
JAISoundHandle* Z2SoundHandles::getLowPrioSound(JAISoundID pSoundId) {
Z2SoundHandlePool* Z2SoundHandles::getLowPrioSound(JAISoundID pSoundId) {
JAISoundInfo* sound_info = JASGlobalInstance<JAISoundInfo>::getInstance();
JAISoundHandle* handle;
Z2SoundHandlePool* handle;
u32 low_prio = 0xffff;
JAISoundHandle* low_prio_handle = NULL;
Z2SoundHandlePool* low_prio_handle = NULL;
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
handle = link->getObject();
-4
View File
@@ -145,10 +145,6 @@ 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;
inline JAISoundID JAISound::getID() const {
return JAISoundID((u32)soundID);
}
/* 802BF994-802BFFEC 2BA2D4 0658+00 1/0 1/1 0/0 .text searchEnemy__13Z2SoundObjMgrFv */
void Z2SoundObjMgr::searchEnemy() {
mTwilightBattle = 0;
+14 -18
View File
@@ -13,10 +13,6 @@
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JAudio2/JAUSoundAnimator.h"
inline JAISoundID JAISound::getID() const {
return JAISoundID((u32)soundID);
}
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.
@@ -80,7 +76,7 @@ bool Z2SoundObjBase::stopOK(Z2SoundHandlePool& pSoundHandlePool) {
/* 802BE144-802BE2D4 2B8A84 0190+00 5/3 3/1 0/0 .text
* startSound__14Z2SoundObjBaseF10JAISoundIDUlSc */
JAISoundHandle* Z2SoundObjBase::startSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
Z2SoundHandlePool* Z2SoundObjBase::startSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
if (!mIsInitialized) {
return NULL;
}
@@ -94,7 +90,7 @@ JAISoundHandle* Z2SoundObjBase::startSound(JAISoundID pSoundId, u32 param_1, s8
param_2 = field_0x1e;
}
f32 local_0 = (f32)param_2 / 127.0f;
JAISoundHandle* handle = getHandleSoundID(pSoundId);
Z2SoundHandlePool* handle = getHandleSoundID(pSoundId);
if (handle != NULL) {
if ((JASGlobalInstance<Z2SoundInfo>::getInstance()->getSwBit(pSoundId) & 0x4000) != 0) {
handle = NULL;
@@ -117,7 +113,7 @@ JAISoundHandle* Z2SoundObjBase::startSound(JAISoundID pSoundId, u32 param_1, s8
/* 802BE2D4-802BE4A4 2B8C14 01D0+00 4/2 3/0 0/0 .text
* startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc */
JAISoundHandle* Z2SoundObjBase::startLevelSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
Z2SoundHandlePool* Z2SoundObjBase::startLevelSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
if (!mIsInitialized) {
return NULL;
}
@@ -128,7 +124,7 @@ JAISoundHandle* Z2SoundObjBase::startLevelSound(JAISoundID pSoundId, u32 param_1
param_2 = field_0x1e;
}
f32 local_0 = (f32)param_2 / 127.0f;
JAISoundHandle* handle = getHandleSoundID(pSoundId);
Z2SoundHandlePool* handle = getHandleSoundID(pSoundId);
if (handle != NULL) {
handle->getSound()->updateLifeTime(1);
mSoundStarter->setPortData(handle, 6, (u16)param_1, -1);
@@ -154,7 +150,7 @@ JAISoundHandle* Z2SoundObjBase::startLevelSound(JAISoundID pSoundId, u32 param_1
/* 802BE4A4-802BE5A0 2B8DE4 00FC+00 0/0 5/5 21/21 .text
* startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase */
JAISoundHandle* Z2SoundObjBase::startCollisionSE(u32 pId, u32 pUserData, Z2SoundObjBase* pOther) {
Z2SoundHandlePool* Z2SoundObjBase::startCollisionSE(u32 pId, u32 pUserData, Z2SoundObjBase* pOther) {
if (pOther != NULL) {
return pOther->startCollisionSE(pId, pUserData, NULL);
}
@@ -168,7 +164,7 @@ JAISoundHandle* Z2SoundObjBase::startCollisionSE(u32 pId, u32 pUserData, Z2Sound
link->getObject()->stop();
}
}
JAISoundHandle* handle = Z2SoundObjBase::startSound(JAISoundID(pId), pUserData, -1);
Z2SoundHandlePool* handle = Z2SoundObjBase::startSound(JAISoundID(pId), pUserData, -1);
if (handle != NULL && handle->getSound() != NULL) {
handle->getSound()->setUserData(pUserData);
if (30 <= pUserData && pUserData <= 52) {
@@ -219,10 +215,10 @@ void Z2DopplerSoundObjBase::framework(u32 param_0, s8 param_1) {
/* 802BE714-802BE7AC 2B9054 0098+00 2/0 0/0 0/0 .text
* startSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc */
JAISoundHandle* Z2DopplerSoundObjBase::startSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
Z2SoundHandlePool* Z2DopplerSoundObjBase::startSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
JGeometry::TVec3<f32>* pos = mSoundPos;
mSoundPos = NULL;
JAISoundHandle* handle = Z2SoundObjBase::startSound(pSoundId, param_1, param_2);
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);
@@ -234,11 +230,11 @@ JAISoundHandle* Z2DopplerSoundObjBase::startSound(JAISoundID pSoundId, u32 param
/* 802BE7AC-802BE844 2B90EC 0098+00 2/0 0/0 0/0 .text
* startLevelSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc */
JAISoundHandle* Z2DopplerSoundObjBase::startLevelSound(JAISoundID pSoundId,
Z2SoundHandlePool* Z2DopplerSoundObjBase::startLevelSound(JAISoundID pSoundId,
u32 param_1, s8 param_2) {
JGeometry::TVec3<f32>* pos = mSoundPos;
mSoundPos = NULL;
JAISoundHandle* handle = Z2SoundObjBase::startLevelSound(pSoundId, param_1, param_2);
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);
@@ -257,8 +253,8 @@ void Z2SoundObjSimple::init(Vec* pSoundPos, u8 pNumHandles) {
/* 802BE8A0-802BE9B0 2B91E0 0110+00 1/0 0/0 0/0 .text
* startSound__16Z2SoundObjSimpleF10JAISoundIDUlSc */
JAISoundHandle* Z2SoundObjSimple::startSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
JAISoundHandle* handle = Z2SoundObjBase::startSound(pSoundId, param_1, param_2);
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);
@@ -272,8 +268,8 @@ JAISoundHandle* Z2SoundObjSimple::startSound(JAISoundID pSoundId, u32 param_1, s
/* 802BE9B0-802BEB38 2B92F0 0188+00 1/0 0/0 0/0 .text
* startLevelSound__16Z2SoundObjSimpleF10JAISoundIDUlSc */
JAISoundHandle* Z2SoundObjSimple::startLevelSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
JAISoundHandle* handle = Z2SoundObjBase::startLevelSound(pSoundId, param_1, param_2);
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;
+7 -8
View File
@@ -26,16 +26,15 @@ int Z2SoundStarter::startSound(JAISoundID param_1, JAISoundHandle* handlePtr,
f32 param_6, f32 param_7, f32 param_8, f32 param_9, u32 param_10) {
JUT_ASSERT(45, handlePtr);
if (param_4 == 6) {
switch ((u32)param_1) {
case 0x6002b:
// TODO: Fix JAISoundID fake match
param_1.stackCopyHelper(0x6002e);
switch (param_1) {
case Z2SE_CM_BODYFALL_S:
param_1 = Z2SE_CM_BODYFALL_ASASE_S;
break;
case 0x6002c:
param_1.stackCopyHelper(0x6002f);
case Z2SE_CM_BODYFALL_M:
param_1 = Z2SE_CM_BODYFALL_ASASE_M;
break;
case 0x6002d:
param_1.stackCopyHelper(0x60030);
case Z2SE_CM_BODYFALL_L:
param_1 = Z2SE_CM_BODYFALL_ASASE_L;
break;
}
}
+10 -11
View File
@@ -623,35 +623,34 @@ void Z2SpeechMgr2::setTextCount(s16 param_0) {
JAISoundID aJStack_18;
switch (field_0x3fe) {
case 0xb:
// TODO: Fix JAISoundID fake match
aJStack_18.stackCopyHelper(0x7b);
aJStack_18 = Z2SE_SY_TEXT_OUT;
break;
case 0xc:
aJStack_18.stackCopyHelper(0x7c);
aJStack_18 = Z2SE_SY_TEXT_OUT_FEMALE;
break;
case 0xd:
aJStack_18.stackCopyHelper(0x7d);
aJStack_18 = Z2SE_SY_TEXT_OUT_CHILD;
break;
case 0xe:
aJStack_18.stackCopyHelper(0x7e);
aJStack_18 = Z2SE_SY_TEXT_OUT_GORON;
break;
case 0xf:
aJStack_18.stackCopyHelper(0x7f);
aJStack_18 = Z2SE_SY_TEXT_OUT_ZORA;
break;
case 0x10:
aJStack_18.stackCopyHelper(0x80);
aJStack_18 = Z2SE_SY_TEXT_OUT_GREY;
break;
case 0x11:
aJStack_18.stackCopyHelper(0x81);
aJStack_18 = Z2SE_SY_TEXT_OUT_SPIRIT;
break;
case 0x12:
aJStack_18.stackCopyHelper(0x82);
aJStack_18 = Z2SE_SY_TEXT_OUT_BRAVE;
break;
case 0x1e:
aJStack_18.stackCopyHelper(0x83);
aJStack_18 = Z2SE_SY_TEXT_OUT_GANON;
break;
case 0x1f:
aJStack_18.stackCopyHelper(0x84);
aJStack_18 = Z2SE_SY_TEXT_OUT_ZANT;
break;
}
mSpeech.startSound(aJStack_18, &field_0x4, NULL, 0, 0.0f, 1.0f, 1.0f, -1.0f, -1.0f,