move / fix bunch of stuff (#133)

* fix some class structures / d_event wip

* d_event wip

* move gamepad stuff

* move m_Do_main

* move d_bomb / partial m_Do_reset

* format

* remove asm

* add Z2SoundID enum

* move some Z2 classes

* fix

* move more Z2 stuff

* fix fopAc_ac_c more
This commit is contained in:
TakaRikka
2021-06-12 15:22:36 -07:00
committed by GitHub
parent 5be309a186
commit 4448c08ac0
132 changed files with 6755 additions and 3217 deletions
+69 -121
View File
@@ -17,24 +17,10 @@ struct Z2StatusMgr {
/* 802B61BC */ void isMovieDemo();
};
struct Vec {};
struct Z2SpeechMgr2 {
/* 802CCA18 */ void playOneShotVoice(u8, u16, Vec*, s8);
};
struct JAISoundHandle {
/* 80007838 */ ~JAISoundHandle();
/* 802A2184 */ void releaseSound();
/* 802A4AC4 */ JAISoundHandle();
};
struct Z2SoundStarter {
/* 802AAEDC */ void setPortData(JAISoundHandle*, u32, u16, s8);
};
struct JAISoundID {};
struct Z2SoundMgr {
/* 802AA7DC */ void stopSoundID(JAISoundID);
/* 802AA9E8 */ void multiVolumeSoundID(JAISoundID, f32);
@@ -44,29 +30,6 @@ struct Z2SeqMgr {
/* 802AF010 */ void bgmStart(u32, u32, s32);
};
struct Z2SeMgr {
/* 802AB64C */ Z2SeMgr();
/* 802AB750 */ void initSe();
/* 802AB80C */ void resetModY();
/* 802AB830 */ void modHeightAtCamera(Vec const**);
/* 802AB93C */ void incrCrowdSize();
/* 802AB960 */ void decrCrowdSize();
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
/* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
/* 802AD8B0 */ void seStop(JAISoundID, u32);
/* 802AD94C */ void seStopAll(u32);
/* 802AD9F4 */ void seMoveVolumeAll(f32, u32);
/* 802ADB14 */ void messageSePlay(u16, Vec*, s8);
/* 802ADB50 */ void talkInSe();
/* 802ADC54 */ void talkOutSe();
/* 802ADD58 */ void menuInSe();
/* 802ADE5C */ void setLevObjSE(u32, Vec*, s8);
/* 802ADFF4 */ void setMultiTriggerSE(u32, Vec*, s8);
/* 802AE184 */ void processSeFramework();
/* 802AE524 */ void isLevelSe(JAISoundID);
/* 802AE5B0 */ void isSoundCulling(JAISoundID);
};
struct Z2Param {
static f32 VOL_SE_SYSTEM_DEFAULT;
static f32 VOL_SE_LINK_VOICE_DEFAULT;
@@ -94,20 +57,6 @@ struct Z2Param {
static f32 VOL_SE_ATMOSPHERE_PAUSING;
};
struct Z2MultiSeObj {
/* 80007888 */ ~Z2MultiSeObj();
/* 802AB710 */ Z2MultiSeObj();
};
struct Z2MultiSeMgr {
/* 802AEB04 */ Z2MultiSeMgr();
/* 802AEB34 */ ~Z2MultiSeMgr();
/* 802AEB70 */ void registMultiSePos(Vec*);
/* 802AECBC */ void resetMultiSePos();
/* 802AECE0 */ void getPanPower();
/* 802AEDC0 */ void getDolbyPower();
};
struct Z2CreatureLink {
static u8 mLinkPtr[4 + 4 /* padding */];
};
@@ -135,15 +84,6 @@ struct JAISoundParamsMove {
/* 802A2F14 */ void moveDolby(f32, u32);
};
struct JAISoundHandles {
/* 802A2C98 */ void getHandleSoundID(JAISoundID);
/* 802A2CF4 */ void getFreeHandle();
};
struct JAISound {
/* 802A24DC */ void stop(u32);
};
struct JAISeCategoryMgr {
/* 8029FDE0 */ void stop(u32);
};
@@ -213,7 +153,6 @@ extern "C" void calcRelPosPan__10Z2AudienceFRC3Veci();
extern "C" void calcRelPosDolby__10Z2AudienceFRC3Veci();
extern "C" void playOneShotVoice__12Z2SpeechMgr2FUcUsP3VecSc();
extern "C" void __dl__FPv();
extern "C" void PSVECSquareDistance();
extern "C" void __construct_array();
extern "C" void __cvt_fp2unsigned();
extern "C" void _savegpr_26();
@@ -254,7 +193,7 @@ extern "C" extern u8 data_80450B74[4];
extern "C" extern u8 data_80450B7C[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 Z2SeMgr* data_80450B88; // JASGlobalInstance<Z2SeMgr>::sInstance
extern "C" u8 mLinkPtr__14Z2CreatureLink[4 + 4 /* padding */];
//
@@ -262,6 +201,23 @@ extern "C" u8 mLinkPtr__14Z2CreatureLink[4 + 4 /* padding */];
//
/* 802AB64C-802AB710 2A5F8C 00C4+00 0/0 1/1 0/0 .text __ct__7Z2SeMgrFv */
// almost matches, JASGlobalInstance stuff needs to be setup properly
#ifdef NONMATCHING
Z2SeMgr::Z2SeMgr() : field_0x60(&mSoundHandle[0], 0x18) {
// data_80450B88 = this;
field_0x3c0 = 0;
field_0x3c1 = 0;
field_0x3c2 = 0;
field_0x3c3 = 0;
field_0x3c4 = 0;
field_0x3c5 = 0;
field_0x3c9 = 0;
field_0x3ca = 0;
field_0x3cb = 0;
mCrowdSize = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -270,18 +226,32 @@ asm Z2SeMgr::Z2SeMgr() {
#include "asm/Z2AudioLib/Z2SeMgr/__ct__7Z2SeMgrFv.s"
}
#pragma pop
#endif
/* 802AB710-802AB750 2A6050 0040+00 1/1 0/0 0/0 .text __ct__12Z2MultiSeObjFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2MultiSeObj::Z2MultiSeObj() {
nofralloc
#include "asm/Z2AudioLib/Z2SeMgr/__ct__12Z2MultiSeObjFv.s"
Z2MultiSeObj::Z2MultiSeObj() {
field_0x1c = 0xffffffff;
field_0x20 = 0;
}
#pragma pop
/* 802AB750-802AB80C 2A6090 00BC+00 0/0 1/1 0/0 .text initSe__7Z2SeMgrFv */
#ifdef NONMATCHING
void Z2SeMgr::initSe() {
for (int i = 0; i < 10; i++) {
mLevelObjSe[i].resetMultiSePos();
mLevelObjSe[i].field_0x1c = 0xffffffff;
mLevelObjSe[i].field_0x20 = 0;
}
mLevelObjectSeCount = 0;
for (int i = 0; i < 10; i++) {
mMultiTriggerSe[i].resetMultiSePos();
mMultiTriggerSe[i].field_0x1c = 0xffffffff;
mMultiTriggerSe[i].field_0x20 = 0;
}
mMultiTriggerSeCount = 0;
resetModY();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -290,16 +260,13 @@ asm void Z2SeMgr::initSe() {
#include "asm/Z2AudioLib/Z2SeMgr/initSe__7Z2SeMgrFv.s"
}
#pragma pop
#endif
/* 802AB80C-802AB830 2A614C 0024+00 1/1 1/1 0/0 .text resetModY__7Z2SeMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SeMgr::resetModY() {
nofralloc
#include "asm/Z2AudioLib/Z2SeMgr/resetModY__7Z2SeMgrFv.s"
void Z2SeMgr::resetModY() {
for (int i = 0; i < 8; i++) {
mModY[i] = 0;
}
}
#pragma pop
/* 802AB830-802AB93C 2A6170 010C+00 1/1 0/0 0/0 .text modHeightAtCamera__7Z2SeMgrFPPC3Vec
*/
@@ -312,25 +279,21 @@ asm void Z2SeMgr::modHeightAtCamera(Vec const** param_0) {
}
#pragma pop
/* 802AB93C-802AB960 2A627C 0024+00 0/0 1/1 0/0 .text incrCrowdSize__7Z2SeMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SeMgr::incrCrowdSize() {
nofralloc
#include "asm/Z2AudioLib/Z2SeMgr/incrCrowdSize__7Z2SeMgrFv.s"
}
#pragma pop
void Z2SeMgr::incrCrowdSize() {
mCrowdSize++;
/* 802AB960-802AB984 2A62A0 0024+00 0/0 3/3 0/0 .text decrCrowdSize__7Z2SeMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SeMgr::decrCrowdSize() {
nofralloc
#include "asm/Z2AudioLib/Z2SeMgr/decrCrowdSize__7Z2SeMgrFv.s"
if (mCrowdSize > 100)
mCrowdSize = 100;
}
void Z2SeMgr::decrCrowdSize() {
mCrowdSize--;
//! @bug probably copypasta from incrCrowdSize(), but semantically it's still correct:
//! mCrowdSize is a u8, so an underflow would result in mCrowdSize > 100, triggering the clamp.
if (mCrowdSize > 100)
mCrowdSize = 0;
}
#pragma pop
/* ############################################################################################## */
/* 80455870-80455874 003E70 0004+00 1/1 0/0 0/0 .sdata2 @4038 */
@@ -716,25 +679,11 @@ asm void Z2SeMgr::isSoundCulling(JAISoundID param_0) {
}
#pragma pop
/* 802AEB04-802AEB34 2A9444 0030+00 1/1 1/1 0/0 .text __ct__12Z2MultiSeMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2MultiSeMgr::Z2MultiSeMgr() {
nofralloc
#include "asm/Z2AudioLib/Z2SeMgr/__ct__12Z2MultiSeMgrFv.s"
Z2MultiSeMgr::Z2MultiSeMgr() {
resetMultiSePos();
}
#pragma pop
/* 802AEB34-802AEB70 2A9474 003C+00 0/0 2/2 0/0 .text __dt__12Z2MultiSeMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2MultiSeMgr::~Z2MultiSeMgr() {
nofralloc
#include "asm/Z2AudioLib/Z2SeMgr/__dt__12Z2MultiSeMgrFv.s"
}
#pragma pop
Z2MultiSeMgr::~Z2MultiSeMgr() {}
/* 802AEB70-802AECBC 2A94B0 014C+00 2/2 6/6 0/0 .text registMultiSePos__12Z2MultiSeMgrFP3Vec */
#pragma push
@@ -746,16 +695,15 @@ asm void Z2MultiSeMgr::registMultiSePos(Vec* param_0) {
}
#pragma pop
/* 802AECBC-802AECE0 2A95FC 0024+00 3/3 6/6 0/0 .text resetMultiSePos__12Z2MultiSeMgrFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2MultiSeMgr::resetMultiSePos() {
nofralloc
#include "asm/Z2AudioLib/Z2SeMgr/resetMultiSePos__12Z2MultiSeMgrFv.s"
void Z2MultiSeMgr::resetMultiSePos(void) {
mPosCount = -1;
f32 _0 = FLOAT_LABEL(lit_4040);
mMaxPowL = _0;
mMaxPowR = _0;
mMaxPowB = _0;
mMaxPowF = _0;
mMaxVolume = _0;
}
#pragma pop
/* 802AECE0-802AEDC0 2A9620 00E0+00 1/1 8/8 0/0 .text getPanPower__12Z2MultiSeMgrFv */
#pragma push