diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2022-12-19 11:06:32 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-19 12:06:32 -0700 |
| commit | ca71275bbecc7db9a4eeca3a6ac4215b66de4318 (patch) | |
| tree | c2851f8cec211216fe0cb6a31a0260a62fc3bf53 /rel | |
| parent | 1114b13da81ab0b52fd4bb56a32f32331a21e581 (diff) | |
big d_a_alink pass (#214)
* d_a_alink pass1 wip
* more d_a_alink work
* remove asm
* more daalink work
* 20% dol code decompiled
* fixed some nonmatchings for building
* a few daalink functions and labeling some HIO data
Diffstat (limited to 'rel')
| -rw-r--r-- | rel/d/a/b/d_a_b_go/d_a_b_go.cpp | 4 | ||||
| -rw-r--r-- | rel/d/a/d_a_alldie/d_a_alldie.cpp | 4 | ||||
| -rw-r--r-- | rel/d/a/d_a_arrow/d_a_arrow.cpp | 336 | ||||
| -rw-r--r-- | rel/d/a/d_a_boomerang/d_a_boomerang.cpp | 113 | ||||
| -rw-r--r-- | rel/d/a/d_a_canoe/d_a_canoe.cpp | 318 | ||||
| -rw-r--r-- | rel/d/a/d_a_cstatue/d_a_cstatue.cpp | 386 | ||||
| -rw-r--r-- | rel/d/a/d_a_mg_rod/d_a_mg_rod.cpp | 2 | ||||
| -rw-r--r-- | rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp | 12 | ||||
| -rw-r--r-- | rel/d/a/d_a_skip_2D/d_a_skip_2D.cpp | 235 | ||||
| -rw-r--r-- | rel/d/a/d_a_swc00/d_a_swc00.cpp | 2 | ||||
| -rw-r--r-- | rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.cpp | 4 | ||||
| -rw-r--r-- | rel/d/a/tag/d_a_tag_TWgate/d_a_tag_TWgate.cpp | 6 | ||||
| -rw-r--r-- | rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit.cpp | 154 | ||||
| -rw-r--r-- | rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.cpp | 2 | ||||
| -rw-r--r-- | rel/d/a/tag/d_a_tag_lv5soup/d_a_tag_lv5soup.cpp | 2 | ||||
| -rw-r--r-- | rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart.cpp | 227 | ||||
| -rw-r--r-- | rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.cpp | 231 |
17 files changed, 376 insertions, 1662 deletions
diff --git a/rel/d/a/b/d_a_b_go/d_a_b_go.cpp b/rel/d/a/b/d_a_b_go/d_a_b_go.cpp index 14fa344b20..4d4c48ce26 100644 --- a/rel/d/a/b/d_a_b_go/d_a_b_go.cpp +++ b/rel/d/a/b/d_a_b_go/d_a_b_go.cpp @@ -531,7 +531,7 @@ static void action(b_go_class* b_go) { break; } - cLib_addCalcAngleS2(&b_go->mCollisionRot.y, b_go->current.angle.y, 4, 0x2000); + cLib_addCalcAngleS2(&b_go->shape_angle.y, b_go->current.angle.y, 4, 0x2000); mDoMtx_stack_c::YrotS(b_go->current.angle.y); cXyz speed; @@ -579,7 +579,7 @@ static int daB_GO_Execute(b_go_class* b_go) { damage_check(b_go); mDoMtx_stack_c::transS(b_go->current.pos.x, b_go->current.pos.y, b_go->current.pos.z); - mDoMtx_stack_c::YrotM(b_go->mCollisionRot.y); + mDoMtx_stack_c::YrotM(b_go->shape_angle.y); mDoMtx_stack_c::scaleM((*(daB_GO_HIO_c*)l_HIO).mSmallSize, (*(daB_GO_HIO_c*)l_HIO).mSmallSize, (*(daB_GO_HIO_c*)l_HIO).mSmallSize); mDoMtx_stack_c::copy(b_go->mpMorf->getModel()->getBaseTRMtx()); b_go->mpMorf->play(0, dComIfGp_getReverb(b_go->current.mRoomNo)); diff --git a/rel/d/a/d_a_alldie/d_a_alldie.cpp b/rel/d/a/d_a_alldie/d_a_alldie.cpp index 333d8087b5..768142b1a4 100644 --- a/rel/d/a/d_a_alldie/d_a_alldie.cpp +++ b/rel/d/a/d_a_alldie/d_a_alldie.cpp @@ -185,8 +185,8 @@ int daAlldie_c::create() { mAction = ACT_WAIT; } - mCollisionRot.z = 0; - mCollisionRot.x = 0; + shape_angle.z = 0; + shape_angle.x = 0; current.angle.z = 0; current.angle.x = 0; diff --git a/rel/d/a/d_a_arrow/d_a_arrow.cpp b/rel/d/a/d_a_arrow/d_a_arrow.cpp index e4e0cf05ba..3982cbdb6a 100644 --- a/rel/d/a/d_a_arrow/d_a_arrow.cpp +++ b/rel/d/a/d_a_arrow/d_a_arrow.cpp @@ -5,301 +5,7 @@ #include "rel/d/a/d_a_arrow/d_a_arrow.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct csXyz { - /* 802673F4 */ csXyz(s16, s16, s16); -}; - -struct mDoMtx_stack_c { - /* 8000CD9C */ void transM(f32, f32, f32); - /* 8000CF44 */ void ZXYrotM(csXyz const&); - - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct Vec {}; - -struct cXyz { - /* 80266AE4 */ void operator+(Vec const&) const; - /* 80266B34 */ void operator-(Vec const&) const; - /* 80266B84 */ void operator*(f32) const; - /* 80266F48 */ void normalizeZP(); - /* 80267150 */ void atan2sY_XZ() const; - /* 8049A334 */ ~cXyz(); -}; - -struct fopAcM_wt_c { - /* 8001DD84 */ void waterCheck(cXyz const*); - - static u8 mWaterCheck[84 + 4 /* padding */]; - static f32 mWaterY[1 + 1 /* padding */]; -}; - -struct fopAcM_gc_c { - /* 8001DCBC */ void gndCheck(cXyz const*); - - static u8 mGndCheck[84]; -}; - -struct daPy_actorKeep_c { - /* 8015EC48 */ void setActor(); - /* 8015ECB8 */ void setData(fopAc_ac_c*); - /* 8015ECFC */ void clearData(); -}; - -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 800840E4 */ ~dCcD_GObjInf(); - /* 800842C0 */ void ChkAtHit(); - /* 80084318 */ void ResetAtHit(); - /* 800843A8 */ void GetAtHitGObj(); - /* 80084460 */ void ChkTgHit(); - /* 80084548 */ void GetTgHitGObj(); - /* 80084658 */ void ChkCoHit(); -}; - -struct daArrow_c { - /* 80499C6C */ void createHeap(); - /* 80499D8C */ void atHitCallBack(dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*); - /* 80499FBC */ void decAlphaBlur(); - /* 8049A04C */ void setBlur(); - /* 8049A110 */ void setLightArrowHitMark(cXyz const*); - /* 8049A1EC */ void setLightChargeEffect(int); - /* 8049A370 */ void setArrowWaterNextPos(cXyz*, cXyz*); - /* 8049A76C */ void setArrowAt(f32); - /* 8049A9CC */ void arrowShooting(); - /* 8049AC84 */ void setBombArrowExplode(cXyz*); - /* 8049ACE0 */ void setRoomInfo(); - /* 8049AD74 */ void clearNearActorData(); - /* 8049AD94 */ void getVibAngle(); - /* 8049AE64 */ void setNormalMatrix(); - /* 8049AF18 */ void setSmokePos(); - /* 8049AFEC */ void setKeepMatrix(); - /* 8049B120 */ void setStopActorMatrix(); - /* 8049B214 */ void setBombMoveEffect(); - /* 8049B370 */ void checkReget(); - /* 8049B45C */ void procWait(); - /* 8049B764 */ void procMove(); - /* 8049C700 */ void procReturnInit(int); - /* 8049C874 */ void procReturn(); - /* 8049CB70 */ void procBGStop(); - /* 8049CC60 */ void procActorStop(); - /* 8049CCCC */ void procActorControllStop(); - /* 8049CCF0 */ void procSlingHitInit(cXyz*, dCcD_GObjInf*); - /* 8049CE50 */ void procSlingHit(); - /* 8049CEA0 */ void execute(); - /* 8049D0CC */ void draw(); - /* 8049D440 */ void create(); - /* 8049D98C */ ~daArrow_c(); -}; - -struct cBgS_PolyInfo {}; - -struct daAlink_c { - /* 8009D884 */ void getAlinkArcName(); - /* 800D1788 */ void notSwordHitVibActor(fopAc_ac_c*); - /* 800D6D94 */ void getFreezeR() const; - /* 800D6DA4 */ void getFreezeG() const; - /* 800D6DB4 */ void getFreezeB() const; - /* 800D7768 */ void checkIcePolygonDamage(cBgS_PolyInfo*); - /* 800DE64C */ void getArrowFlyData(f32*, f32*, int) const; - /* 800DE740 */ void getArrowIncAtR() const; - /* 800DE750 */ void getBombArrowFlyExplodeTime() const; - /* 800DE760 */ void getArrowIncAtMaxStart() const; - /* 800DE770 */ void getArrowIncAtMax() const; - /* 800DE884 */ void checkBowCameraArrowPosP(s16*, s16*); - /* 800E3760 */ void getBombExplodeTime() const; -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct dPa_levelEcallBack { - /* 8049D808 */ void cleanup(); - /* 8049D80C */ ~dPa_levelEcallBack(); -}; - -struct dPa_hermiteEcallBack_c { - /* 8004F6B8 */ void setOldPosP(cXyz const*, cXyz const*); -}; - -struct _GXColor {}; - -struct dPa_control_c { - struct level_c { - /* 8004B8B4 */ void forceOnEventMove(u32); - /* 8004B918 */ void getEmitter(u32); - }; - - /* 8004C218 */ void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32); - /* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, - cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*, - _GXColor const*, cXyz const*, f32); - /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, - u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, - cXyz const*, f32); - - static u8 mParticleTracePCB[4 + 4 /* padding */]; -}; - -struct dJntCol_c { - /* 80036AEC */ void getArrowOffsetPosAndAngle(cXyz const*, csXyz const*, cXyz*, cXyz*) const; - /* 80036FA8 */ void setArrowPosAndAngle(cXyz const*, cXyz const*, int, cXyz*, csXyz*); -}; - -struct cCcD_Obj {}; - -struct dCcMassS_Mng { - /* 80085D98 */ void Set(cCcD_Obj*, u8); -}; - -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcSph {}; - -struct dCcD_SrcCps {}; - -struct dCcD_Sph { - /* 80084A34 */ void Set(dCcD_SrcSph const&); -}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); - /* 8049D910 */ ~dCcD_GStts(); -}; - -struct dCcD_GAtTgCoCommonBase { - /* 80083688 */ void GetAc(); -}; - -struct dCcD_Cps { - /* 800847D0 */ void Set(dCcD_SrcCps const&); - /* 80084824 */ void CalcAtVec(); -}; - -struct dBgS_ObjLinChk { - /* 80077F5C */ dBgS_ObjLinChk(); - /* 80077FB8 */ ~dBgS_ObjLinChk(); -}; - -struct dBgS_LinChk { - /* 80077D64 */ void Set(cXyz const*, cXyz const*, fopAc_ac_c const*); -}; - -struct dBgS_ArrowLinChk { - /* 800781D8 */ dBgS_ArrowLinChk(); - /* 80078240 */ ~dBgS_ArrowLinChk(); -}; - -struct dBgS { - /* 80074ABC */ void ChkMoveBG(cBgS_PolyInfo const&); - /* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&); - /* 80074E50 */ void GetPolyAtt0(cBgS_PolyInfo const&); - /* 80075100 */ void GetRoomId(cBgS_PolyInfo const&); - /* 80075880 */ void MoveBgTransPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*); - /* 80075BF4 */ void ArrowStickCallBack(cBgS_PolyInfo const&, fopAc_ac_c*, cXyz&); -}; - -struct cM3dGSph { - /* 8026F648 */ void SetC(cXyz const&); - /* 8049D880 */ ~cM3dGSph(); -}; - -struct cM3dGPla { - /* 8049C6B8 */ ~cM3dGPla(); -}; - -struct cM3dGCps { - /* 8026EF88 */ cM3dGCps(); - /* 8026EFA4 */ ~cM3dGCps(); - /* 8026F000 */ void Set(cXyz const&, cXyz const&, f32); -}; - -struct cM3dGAab { - /* 8049D8C8 */ ~cM3dGAab(); -}; - -struct cCcS { - /* 80264BA8 */ void Set(cCcD_Obj*); -}; - -struct cCcD_GStts { - /* 8049DC00 */ ~cCcD_GStts(); -}; - -struct cBgS_LinChk {}; - -struct cBgS { - /* 800743B4 */ void LineCross(cBgS_LinChk*); - /* 80074660 */ void ChkPolySafe(cBgS_PolyInfo const&); - /* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const; -}; - -struct Z2SoundObjBase { - /* 802BDFF8 */ void deleteObject(); -}; - -struct Z2SoundObjArrow { - /* 802BEB38 */ Z2SoundObjArrow(); -}; - -struct JAISoundID {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2DopplerSoundObjBase { - /* 802BE5FC */ ~Z2DopplerSoundObjBase(); -}; - -struct Z2CreatureLink { - /* 802C4814 */ void startHitItemSE(u32, u32, Z2SoundObjBase*, f32); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct JPABaseEmitter {}; - -struct JPAEmitterCallBack { - /* 8027E6A4 */ ~JPAEmitterCallBack(); - /* 8049DC48 */ void execute(JPABaseEmitter*); - /* 8049DC4C */ void executeAfter(JPABaseEmitter*); - /* 8049DC50 */ void draw(JPABaseEmitter*); - /* 8049DC54 */ void drawAfter(JPABaseEmitter*); -}; - -struct JMath { - static u8 sincosTable_[65536]; -}; - -struct J3DModel {}; +#include "d/com/d_com_inf_game.h" // // Forward References: @@ -474,15 +180,6 @@ extern "C" void __dt__21Z2DopplerSoundObjBaseFv(); extern "C" void __ct__15Z2SoundObjArrowFv(); extern "C" void startHitItemSE__14Z2CreatureLinkFUlUlP14Z2SoundObjBasef(); extern "C" void __dl__FPv(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXConcat(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); -extern "C" void PSVECAdd(); -extern "C" void PSVECScale(); -extern "C" void PSVECSquareMag(); -extern "C" void C_VECReflect(); -extern "C" void PSVECSquareDistance(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_24(); extern "C" void _savegpr_25(); @@ -497,7 +194,6 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" extern void* __vt__22dPa_hermiteEcallBack_c[9]; extern "C" extern void* __vt__8dCcD_Sph[36]; extern "C" extern void* __vt__8dCcD_Cps[36]; @@ -510,14 +206,8 @@ extern "C" extern void* __vt__15Z2SoundObjArrow[8]; extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 mGndCheck__11fopAcM_gc_c[84]; extern "C" u8 mWaterCheck__11fopAcM_wt_c[84 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern void* calc_mtx[1 + 1 /* padding */]; -extern "C" extern u32 __float_nan; -extern "C" extern u32 __float_max; extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */]; -extern "C" extern u8 mStayNo__20dStage_roomControl_c[4]; extern "C" extern u8 m_count__9daArrow_c[4]; extern "C" u8 mParticleTracePCB__13dPa_control_c[4 + 4 /* padding */]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; @@ -728,7 +418,8 @@ asm void daArrow_c::setLightChargeEffect(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::~cXyz() { +// asm cXyz::~cXyz() { +extern "C" asm void __dt__4cXyzFv() { nofralloc #include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__4cXyzFv.s" } @@ -1345,7 +1036,8 @@ asm void daArrow_c::procMove() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGPla::~cM3dGPla() { +// asm cM3dGPla::~cM3dGPla() { +extern "C" asm void __dt__8cM3dGPlaFv() { nofralloc #include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__8cM3dGPlaFv.s" } @@ -1583,7 +1275,8 @@ void dPa_levelEcallBack::cleanup() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dPa_levelEcallBack::~dPa_levelEcallBack() { +// asm dPa_levelEcallBack::~dPa_levelEcallBack() { +extern "C" asm void __dt__18dPa_levelEcallBackFv() { nofralloc #include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__18dPa_levelEcallBackFv.s" } @@ -1593,7 +1286,8 @@ asm dPa_levelEcallBack::~dPa_levelEcallBack() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGSph::~cM3dGSph() { +// asm cM3dGSph::~cM3dGSph() { +extern "C" asm void __dt__8cM3dGSphFv() { nofralloc #include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__8cM3dGSphFv.s" } @@ -1603,7 +1297,8 @@ asm cM3dGSph::~cM3dGSph() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { +// asm cM3dGAab::~cM3dGAab() { +extern "C" asm void __dt__8cM3dGAabFv() { nofralloc #include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__8cM3dGAabFv.s" } @@ -1613,7 +1308,8 @@ asm cM3dGAab::~cM3dGAab() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_GStts::~dCcD_GStts() { +// asm dCcD_GStts::~dCcD_GStts() { +extern "C" asm void __dt__10dCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__10dCcD_GSttsFv.s" } @@ -1653,7 +1349,8 @@ static asm void daArrow_delete(daArrow_c* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cCcD_GStts::~cCcD_GStts() { +// asm cCcD_GStts::~cCcD_GStts() { +extern "C" asm void __dt__10cCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_arrow/d_a_arrow/__dt__10cCcD_GSttsFv.s" } @@ -1661,7 +1358,8 @@ asm cCcD_GStts::~cCcD_GStts() { /* 8049DC48-8049DC4C 0040C8 0004+00 2/0 0/0 0/0 .text * execute__18JPAEmitterCallBackFP14JPABaseEmitter */ -void JPAEmitterCallBack::execute(JPABaseEmitter* param_0) { +// void JPAEmitterCallBack::execute(JPABaseEmitter* param_0) { +extern "C" void execute__18JPAEmitterCallBackFP14JPABaseEmitter() { /* empty function */ } diff --git a/rel/d/a/d_a_boomerang/d_a_boomerang.cpp b/rel/d/a/d_a_boomerang/d_a_boomerang.cpp index 5bd6f439f4..d9b6feef7d 100644 --- a/rel/d/a/d_a_boomerang/d_a_boomerang.cpp +++ b/rel/d/a/d_a_boomerang/d_a_boomerang.cpp @@ -6,19 +6,12 @@ #include "rel/d/a/d_a_boomerang/d_a_boomerang.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" // // Types: // -struct mDoMtx_stack_c { - /* 8000CD64 */ void transS(cXyz const&); - /* 8000CD9C */ void transM(f32, f32, f32); - /* 8000CF44 */ void ZXYrotM(csXyz const&); - - static u8 now[48]; -}; - struct daMirror_c { /* 8003194C */ void entry(J3DModel*); }; @@ -32,100 +25,6 @@ struct daBoomerang_HIO_c0 { static f32 const m_lockWindScale; }; -struct daAlink_c { - /* 8009D884 */ void getAlinkArcName(); - /* 800A9248 */ void simpleAnmPlay(J3DAnmBase*); - /* 800B26FC */ void itemActionTrigger(); - /* 800DFFE0 */ void checkBoomerangLockAccept(); - /* 800E0010 */ void getBoomSpeed(); - /* 800E00B0 */ void getBoomCatchSpeed() const; - /* 800E00C0 */ void getBoomFlyMax() const; - /* 800E011C */ void getBoomLockMax(); - /* 800E0190 */ void getBoomBgThroughTime() const; - /* 800E08C4 */ void returnBoomerang(int); -}; - -struct dPa_levelEcallBack {}; - -struct dPa_control_c { - struct level_c { - /* 8004B918 */ void getEmitter(u32); - }; - - /* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, - cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*, - _GXColor const*, cXyz const*, f32); -}; - -struct dBgS { - /* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&); - /* 80074DAC */ void GetUnderwaterRoofCode(cBgS_PolyInfo const&); - /* 80074E50 */ void GetPolyAtt0(cBgS_PolyInfo const&); - /* 80075100 */ void GetRoomId(cBgS_PolyInfo const&); -}; - -struct cCcD_Obj {}; - -struct dCcMassS_Mng { - /* 80085D98 */ void Set(cCcD_Obj*, u8); -}; - -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcCyl {}; - -struct dCcD_SrcCps {}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); - /* 804A262C */ ~dCcD_GStts(); -}; - -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 800840E4 */ ~dCcD_GObjInf(); - /* 80084318 */ void ResetAtHit(); -}; - -struct dCcD_Cyl { - /* 800848B4 */ void Set(dCcD_SrcCyl const&); -}; - -struct dCcD_Cps { - /* 800847D0 */ void Set(dCcD_SrcCps const&); - /* 80084824 */ void CalcAtVec(); -}; - -struct cM3dGCps { - /* 8026EF88 */ cM3dGCps(); - /* 8026EFA4 */ ~cM3dGCps(); - /* 8026F000 */ void Set(cXyz const&, cXyz const&, f32); -}; - -struct cM3dGAab { - /* 804A25E4 */ ~cM3dGAab(); -}; - -struct cCcS { - /* 80264BA8 */ void Set(cCcD_Obj*); -}; - -struct cCcD_GStts { - /* 804A271C */ ~cCcD_GStts(); -}; - -struct cBgS { - /* 800743B4 */ void LineCross(cBgS_LinChk*); - /* 800744A0 */ void GroundCross(cBgS_GndChk*); - /* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const; -}; - -struct J2DAnmLoaderDataBase { - /* 80308A6C */ void load(void const*); -}; - // // Forward References: // @@ -341,7 +240,6 @@ extern "C" extern void* __vt__9cCcD_Stts[8]; extern "C" extern void* __vt__16Z2SoundObjSimple[8]; extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 mRoofCheck__11fopAcM_rc_c[80]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" u8 mCurrentMtx__6J3DSys[48]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" f32 mRoofY__11fopAcM_rc_c; @@ -1591,7 +1489,8 @@ extern "C" asm void __dt__8cM3dGCylFv() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { +// asm cM3dGAab::~cM3dGAab() { +extern "C" asm void __dt__8cM3dGAabFv() { nofralloc #include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__8cM3dGAabFv.s" } @@ -1601,7 +1500,8 @@ asm cM3dGAab::~cM3dGAab() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_GStts::~dCcD_GStts() { +// asm dCcD_GStts::~dCcD_GStts() { +extern "C" asm void __dt__10dCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__10dCcD_GSttsFv.s" } @@ -1638,7 +1538,8 @@ void draw__12dDlst_base_cFv() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cCcD_GStts::~cCcD_GStts() { +// asm cCcD_GStts::~cCcD_GStts() { +extern "C" asm void __dt__10cCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__10cCcD_GSttsFv.s" } diff --git a/rel/d/a/d_a_canoe/d_a_canoe.cpp b/rel/d/a/d_a_canoe/d_a_canoe.cpp index 7fa03a0217..69dc9952a3 100644 --- a/rel/d/a/d_a_canoe/d_a_canoe.cpp +++ b/rel/d/a/d_a_canoe/d_a_canoe.cpp @@ -5,287 +5,20 @@ #include "rel/d/a/d_a_canoe/d_a_canoe.h" #include "dol2asm.h" -#include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" // // Types: // -struct request_of_phase_process_class {}; - -struct csXyz {}; - -struct mDoMtx_stack_c { - /* 8000CD9C */ void transM(f32, f32, f32); - /* 8000CF44 */ void ZXYrotM(csXyz const&); - - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct Vec {}; - -struct cXyz { - /* 80266AE4 */ void operator+(Vec const&) const; - /* 80266B34 */ void operator-(Vec const&) const; - /* 80266B84 */ void operator*(f32) const; - /* 80267128 */ void atan2sX_Z() const; - /* 80267150 */ void atan2sY_XZ() const; - /* 804DA5B8 */ ~cXyz(); - - static f32 Zero[3]; -}; - -struct fopAcM_wt_c { - /* 8001DD84 */ void waterCheck(cXyz const*); - - static u8 mWaterCheck[84 + 4 /* padding */]; - static f32 mWaterY[1 + 1 /* padding */]; -}; - struct daTagWaterFall_c { /* 80D64768 */ void checkHitWaterFall(cXyz); }; -struct daPy_py_c { - /* 8015EA20 */ void checkFishingRodItem(int); -}; - struct daObjGOMIKABE_c { /* 80BFE52C */ void BreakSet(); }; -struct cBgS_PolyInfo { - /* 802680B0 */ ~cBgS_PolyInfo(); -}; - -struct daCanoe_c { - /* 804DA5F4 */ void createHeap(); - /* 804DA740 */ void create(); - /* 804DAEA8 */ ~daCanoe_c(); - /* 804DB008 */ void setRoomInfo(); - /* 804DB0B0 */ void setMatrix(); - /* 804DB3F4 */ void setCollision(); - /* 804DB578 */ void posMove(); - /* 804DB754 */ void checkGomikabe(cBgS_PolyInfo&); - /* 804DB7AC */ void setFrontBackPos(); - /* 804DB828 */ void frontBackBgCheck(); - /* 804DC330 */ void setPaddleEffect(); - /* 804DC554 */ void setCanoeSliderEffect(); - /* 804DC7B4 */ void execute(); - /* 804DD35C */ void draw(); -}; - -struct daAlink_c { - /* 800A21E0 */ void getMoveBGActorName(cBgS_PolyInfo&, int); - /* 800F3BB0 */ void getCanoeMaxSpeed() const; - /* 800F3BDC */ void getCanoeBackMaxSpeed() const; - /* 800F3BEC */ void getCanoeCres() const; - /* 800F3C44 */ void getCanoeMaxRotSpeed() const; - /* 800F3CCC */ void getCanoeLocalPaddleTop(); - /* 800F3DFC */ void getCanoePaddleMatrix(); - /* 800F3EB8 */ void checkCanoePaddleGrab(fopAc_ac_c*) const; -}; - -struct dVibration_c { - /* 8006FA24 */ void StartShock(int, int, cXyz); -}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct dPa_levelEcallBack {}; - -struct _GXColor {}; - -struct dPa_control_c { - struct level_c { - /* 8004B918 */ void getEmitter(u32); - }; - - /* 8004C838 */ void setWaterRipple(u32*, cBgS_PolyInfo&, cXyz const*, f32, dKy_tevstr_c const*, - cXyz const*, s8); - /* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, - cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*, - _GXColor const*, cXyz const*, f32); -}; - -struct dMeter2Info_c { - /* 8021E268 */ void setMiniGameCount(s8); -}; - -struct J3DModel {}; - -struct dDlst_shadowControl_c { - /* 80055F1C */ void addReal(u32, J3DModel*); - - static u8 mSimpleTexObj[32]; -}; - -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcCyl {}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); - /* 80083830 */ void Move(); - /* 804DAE2C */ ~dCcD_GStts(); -}; - -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 800840E4 */ ~dCcD_GObjInf(); - /* 80084658 */ void ChkCoHit(); -}; - -struct dCcD_GAtTgCoCommonBase { - /* 80083688 */ void GetAc(); -}; - -struct dCcD_Cyl { - /* 800848B4 */ void Set(dCcD_SrcCyl const&); - /* 804DAB18 */ ~dCcD_Cyl(); - /* 804DABE4 */ dCcD_Cyl(); -}; - -struct dBgS_PolyPassChk { - /* 80078E98 */ void SetLink(); -}; - -struct dBgS_LinkLinChk { - /* 80078030 */ dBgS_LinkLinChk(); - /* 8007808C */ ~dBgS_LinkLinChk(); -}; - -struct dBgS_LinkAcch { - /* 804DACF8 */ ~dBgS_LinkAcch(); - /* 804DAD68 */ dBgS_LinkAcch(); -}; - -struct dBgS_LinChk { - /* 80077D64 */ void Set(cXyz const*, cXyz const*, fopAc_ac_c const*); -}; - -struct dBgS_AcchCir { - /* 80075EAC */ dBgS_AcchCir(); - /* 80075F58 */ void SetWall(f32, f32); - /* 804DADBC */ ~dBgS_AcchCir(); -}; - -struct dBgS { - /* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&); - /* 80075100 */ void GetRoomId(cBgS_PolyInfo const&); -}; - -struct dBgS_Acch { - /* 80075F94 */ ~dBgS_Acch(); - /* 800760A0 */ dBgS_Acch(); - /* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*); - /* 80076288 */ void Set(fopAc_ac_c*, int, dBgS_AcchCir*); - /* 80076AAC */ void CrrPos(dBgS&); -}; - -struct cM3dGPla { - /* 804DC2E8 */ ~cM3dGPla(); -}; - -struct cM3dGCyl { - /* 8026F1DC */ void SetC(cXyz const&); - /* 804DAC68 */ ~cM3dGCyl(); -}; - -struct cM3dGCir { - /* 8026EF18 */ ~cM3dGCir(); -}; - -struct cM3dGAab { - /* 804DACB0 */ ~cM3dGAab(); -}; - -struct cCcD_Obj {}; - -struct cCcS { - /* 80264BA8 */ void Set(cCcD_Obj*); -}; - -struct cCcD_Stts { - /* 8026395C */ void ClrCcMove(); -}; - -struct cCcD_ObjCo { - /* 8026491C */ void SetVsGrp(u32); -}; - -struct cCcD_GStts { - /* 804DD574 */ ~cCcD_GStts(); -}; - -struct cBgS_LinChk {}; - -struct cBgS { - /* 800743B4 */ void LineCross(cBgS_LinChk*); - /* 80074618 */ void GetActorPointer(int) const; - /* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const; -}; - -struct _GXTexObj {}; - -struct Z2SoundObjSimple { - /* 802BE844 */ Z2SoundObjSimple(); -}; - -struct Z2SoundObjBase { - /* 802BDF48 */ ~Z2SoundObjBase(); - /* 802BDFF8 */ void deleteObject(); -}; - -struct JAISoundID {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct JMath { - static u8 sincosTable_[65536]; -}; - -struct JGeometry { - template <typename A1> - struct TVec3 {}; - /* TVec3<f32> */ - struct TVec3__template0 {}; -}; - // // Forward References: // @@ -419,13 +152,6 @@ extern "C" void __dt__14Z2SoundObjBaseFv(); extern "C" void deleteObject__14Z2SoundObjBaseFv(); extern "C" void __ct__16Z2SoundObjSimpleFv(); extern "C" void __dl__FPv(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); -extern "C" void PSVECAdd(); -extern "C" void PSVECSubtract(); -extern "C" void PSVECScale(); -extern "C" void PSVECSquareMag(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void __cvt_fp2unsigned(); @@ -443,10 +169,7 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void abs(); -extern "C" void strcmp(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" extern void* __vt__8dCcD_Cyl[36]; extern "C" extern void* __vt__9dCcD_Stts[11]; @@ -456,16 +179,10 @@ extern "C" extern void* __vt__9cCcD_Stts[8]; extern "C" extern void* __vt__16Z2SoundObjSimple[8]; extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 mWaterCheck__11fopAcM_wt_c[84 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" extern u8 g_env_light[4880]; -extern "C" extern u8 g_meter2_info[248]; extern "C" f32 Zero__4cXyz[3]; -extern "C" extern u8 j3dSys[284]; extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u32 __float_nan; extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */]; -extern "C" extern u8 mStayNo__20dStage_roomControl_c[4]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; extern "C" void __register_global_object(); extern "C" void BreakSet__15daObjGOMIKABE_cFv(); @@ -490,7 +207,8 @@ static asm void daCanoe_searchTagWaterFall(fopAc_ac_c* param_0, void* param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::~cXyz() { +// asm cXyz::~cXyz() { +extern "C" asm void __dt__4cXyzFv() { nofralloc #include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__4cXyzFv.s" } @@ -744,7 +462,8 @@ SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_Cyl::~dCcD_Cyl() { +// asm dCcD_Cyl::~dCcD_Cyl() { +extern "C" asm void __dt__8dCcD_CylFv() { nofralloc #include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__8dCcD_CylFv.s" } @@ -754,7 +473,8 @@ asm dCcD_Cyl::~dCcD_Cyl() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_Cyl::dCcD_Cyl() { +// asm dCcD_Cyl::dCcD_Cyl() { +extern "C" asm void __ct__8dCcD_CylFv() { nofralloc #include "asm/rel/d/a/d_a_canoe/d_a_canoe/__ct__8dCcD_CylFv.s" } @@ -764,7 +484,8 @@ asm dCcD_Cyl::dCcD_Cyl() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGCyl::~cM3dGCyl() { +// asm cM3dGCyl::~cM3dGCyl() { +extern "C" asm void __dt__8cM3dGCylFv() { nofralloc #include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__8cM3dGCylFv.s" } @@ -774,7 +495,8 @@ asm cM3dGCyl::~cM3dGCyl() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { +// asm cM3dGAab::~cM3dGAab() { +extern "C" asm void __dt__8cM3dGAabFv() { nofralloc #include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__8cM3dGAabFv.s" } @@ -784,7 +506,8 @@ asm cM3dGAab::~cM3dGAab() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_LinkAcch::~dBgS_LinkAcch() { +// asm dBgS_LinkAcch::~dBgS_LinkAcch() { +extern "C" asm void __dt__13dBgS_LinkAcchFv() { nofralloc #include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__13dBgS_LinkAcchFv.s" } @@ -794,7 +517,8 @@ asm dBgS_LinkAcch::~dBgS_LinkAcch() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_LinkAcch::dBgS_LinkAcch() { +// asm dBgS_LinkAcch::dBgS_LinkAcch() { +extern "C" asm void __ct__13dBgS_LinkAcchFv() { nofralloc #include "asm/rel/d/a/d_a_canoe/d_a_canoe/__ct__13dBgS_LinkAcchFv.s" } @@ -804,7 +528,8 @@ asm dBgS_LinkAcch::dBgS_LinkAcch() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_AcchCir::~dBgS_AcchCir() { +// asm dBgS_AcchCir::~dBgS_AcchCir() { +extern "C" asm void __dt__12dBgS_AcchCirFv() { nofralloc #include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__12dBgS_AcchCirFv.s" } @@ -814,7 +539,8 @@ asm dBgS_AcchCir::~dBgS_AcchCir() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_GStts::~dCcD_GStts() { +// asm dCcD_GStts::~dCcD_GStts() { +extern "C" asm void __dt__10dCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__10dCcD_GSttsFv.s" } @@ -1119,7 +845,8 @@ asm void daCanoe_c::frontBackBgCheck() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGPla::~cM3dGPla() { +// asm cM3dGPla::~cM3dGPla() { +extern "C" asm void __dt__8cM3dGPlaFv() { nofralloc #include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__8cM3dGPlaFv.s" } @@ -1414,7 +1141,8 @@ static asm void daCanoe_Draw(daCanoe_c* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cCcD_GStts::~cCcD_GStts() { +// asm cCcD_GStts::~cCcD_GStts() { +extern "C" asm void __dt__10cCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_canoe/d_a_canoe/__dt__10cCcD_GSttsFv.s" } diff --git a/rel/d/a/d_a_cstatue/d_a_cstatue.cpp b/rel/d/a/d_a_cstatue/d_a_cstatue.cpp index 1aea9a75b4..67f19db567 100644 --- a/rel/d/a/d_a_cstatue/d_a_cstatue.cpp +++ b/rel/d/a/d_a_cstatue/d_a_cstatue.cpp @@ -5,345 +5,7 @@ #include "rel/d/a/d_a_cstatue/d_a_cstatue.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct csXyz { - /* 802673F4 */ csXyz(s16, s16, s16); - - static u8 Zero[4]; -}; - -struct Vec {}; - -struct cXyz { - /* 80266AE4 */ void operator+(Vec const&) const; - /* 80266B84 */ void operator*(f32) const; - /* 80267128 */ void atan2sX_Z() const; - /* 80663B34 */ ~cXyz(); -}; - -struct mDoMtx_stack_c { - /* 8000CD64 */ void transS(cXyz const&); - /* 8000CD9C */ void transM(f32, f32, f32); - /* 8000CF44 */ void ZXYrotM(csXyz const&); - - static u8 now[48]; -}; - -struct mDoExt_morf_c { - /* 8000FB7C */ void setMorf(f32); -}; - -struct J3DModel {}; - -struct mDoExt_invisibleModel { - /* 8000E53C */ void create(J3DModel*, u8); - /* 8000E7C0 */ void entryDL(cXyz*); -}; - -struct J3DMaterialTable {}; - -struct J3DAnmTextureSRTKey {}; - -struct mDoExt_btkAnm { - /* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16); - /* 8000D6D8 */ void entry(J3DMaterialTable*, f32); -}; - -struct J3DAnmTevRegKey {}; - -struct mDoExt_brkAnm { - /* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16); - /* 8000D7A8 */ void entry(J3DMaterialTable*, f32); -}; - -struct mDoExt_baseAnm { - /* 8000D428 */ void play(); -}; - -struct mDoExt_McaMorfCallBack2_c {}; - -struct mDoExt_McaMorfCallBack1_c {}; - -struct J3DAnmTransform {}; - -struct J3DModelData {}; - -struct Z2Creature { - /* 802C03C8 */ Z2Creature(); - /* 802C0420 */ ~Z2Creature(); - /* 802C0530 */ void init(Vec*, Vec*, u8, u8); -}; - -struct mDoExt_McaMorfSO { - /* 800107D0 */ mDoExt_McaMorfSO(J3DModelData*, mDoExt_McaMorfCallBack1_c*, - mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, int, f32, int, - int, Z2Creature*, u32, u32); - /* 80010E70 */ void setAnm(J3DAnmTransform*, int, f32, f32, f32, f32); - /* 800110B0 */ void play(u32, s8); - /* 800111EC */ void modelCalc(); - /* 80011310 */ void stopZelAnime(); -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct fopAcM_lc_c { - /* 8001DC68 */ void lineCheck(cXyz const*, cXyz const*, fopAc_ac_c const*); - - static u8 mLineCheck[112]; -}; - -struct fopAcM_gc_c { - /* 8001DCBC */ void gndCheck(cXyz const*); - - static u8 mGndCheck[84]; - static f32 mGroundY; -}; - -struct daPy_actorKeep_c { - /* 8015ECFC */ void clearData(); -}; - -struct daCstatue_c { - /* 806636AC */ void atHitCallback(fopAc_ac_c*); - /* 806636EC */ void createHeap(); - /* 80663D28 */ void create(); - /* 80664840 */ ~daCstatue_c(); - /* 80664AA0 */ void setRoomInfo(); - /* 80664B38 */ void setMatrix(); - /* 80664C9C */ void posMove(); - /* 8066555C */ void setCollision(); - /* 80665E14 */ void checkHammerReverse(); - /* 80665F80 */ void setDemo(); - /* 80666390 */ void setAnime(); - /* 80666B80 */ void initBrk(u16); - /* 80666BF8 */ void initStopBrkBtk(); - /* 80666C38 */ void initStartBrkBtk(); - /* 80666DE8 */ void execute(); - /* 80667438 */ void draw(); - - static u8 const m_bckIdxTable[70 + 2 /* padding */]; -}; - -struct daAlink_c { - /* 800E1330 */ void getCopyRodBallDisMax() const; - /* 800E1374 */ void getCopyRodControllActor(); -}; - -struct dVibration_c { - /* 8006FA24 */ void StartShock(int, int, cXyz); -}; - -struct dTres_c { - /* 8009C3CC */ void setPosition(int, u8, Vec const*, int); -}; - -struct dSv_memBit_c { - /* 800347A0 */ void onTbox(int); - /* 800347C4 */ void offTbox(int); - /* 800347E8 */ void isTbox(int) const; -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dSv_event_c { - /* 8003498C */ void onEventBit(u16); -}; - -struct dKy_tevstr_c {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct dPa_levelEcallBack {}; - -struct _GXColor {}; - -struct dPa_control_c { - /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, - u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, - cXyz const*, f32); -}; - -struct cBgS_PolyInfo { - /* 802680B0 */ ~cBgS_PolyInfo(); -}; - -struct dBgS { - /* 80074B40 */ void ChkMoveBG_NoDABg(cBgS_PolyInfo const&); - /* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&); - /* 80074E00 */ void GetWallCode(cBgS_PolyInfo const&); - /* 80075100 */ void GetRoomId(cBgS_PolyInfo const&); -}; - -struct dBgS_AcchCir { - /* 80075EAC */ dBgS_AcchCir(); - /* 80075F58 */ void SetWall(f32, f32); - /* 80664768 */ ~dBgS_AcchCir(); -}; - -struct dBgS_Acch { - /* 80075F94 */ ~dBgS_Acch(); - /* 800760A0 */ dBgS_Acch(); - /* 80076288 */ void Set(fopAc_ac_c*, int, dBgS_AcchCir*); - /* 80076AAC */ void CrrPos(dBgS&); -}; - -struct dPaPo_c { - /* 80050C9C */ void init(dBgS_Acch*, f32, f32); - /* 80051008 */ void setEffectCenter(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*, - csXyz const*, cXyz const*, s8, f32, f32); -}; - -struct dEvt_control_c { - /* 80042468 */ void reset(); -}; - -struct dDlst_shadowControl_c { - static u8 mSimpleTexObj[32]; -}; - -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcSph {}; - -struct dCcD_SrcCyl {}; - -struct dCcD_SrcCps {}; - -struct dCcD_Sph { - /* 80084A34 */ void Set(dCcD_SrcSph const&); - /* 80084AC4 */ void MoveCAt(cXyz&); - /* 80663B70 */ ~dCcD_Sph(); - /* 80663C3C */ dCcD_Sph(); -}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); - /* 80083830 */ void Move(); - /* 8066469C */ ~dCcD_GStts(); -}; - -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 800840E4 */ ~dCcD_GObjInf(); - /* 80084318 */ void ResetAtHit(); - /* 80084460 */ void ChkTgHit(); - /* 800844B8 */ void ResetTgHit(); - /* 80084548 */ void GetTgHitGObj(); - /* 8008457C */ void GetTgHitObjSe(); - /* 800845B0 */ void getHitSeID(u8, int); - /* 800846B0 */ void ResetCoHit(); -}; - -struct dCcD_Cyl { - /* 800848B4 */ void Set(dCcD_SrcCyl const&); - /* 80084908 */ void StartCAt(cXyz&); - /* 80084954 */ void MoveCAt(cXyz&); -}; - -struct dCcD_Cps { - /* 800847D0 */ void Set(dCcD_SrcCps const&); -}; - -struct dCamera_c { - /* 801614AC */ void Start(); - /* 801614D0 */ void Stop(); - /* 8016300C */ void SetTrimSize(s32); - /* 80180AA8 */ void Set(cXyz, cXyz); -}; - -struct dBgS_StatueAcch { - /* 806646F8 */ ~dBgS_StatueAcch(); -}; - -struct dBgS_PolyPassChk { - /* 80078F7C */ void SetStatue(); -}; - -struct cM3dGSph { - /* 8026F708 */ void SetR(f32); - /* 80663CC0 */ ~cM3dGSph(); -}; - -struct cM3dGPla { - /* 80665514 */ ~cM3dGPla(); -}; - -struct cM3dGLin { - /* 8026F2E8 */ void SetStartEnd(cXyz const&, cXyz const&); -}; - -struct cM3dGCyl { - /* 8026F1DC */ void SetC(cXyz const&); - /* 8026F1F8 */ void SetH(f32); - /* 8026F200 */ void SetR(f32); - /* 80663AA4 */ ~cM3dGCyl(); -}; - -struct cM3dGCps { - /* 8026EF88 */ cM3dGCps(); -}; - -struct cM3dGCir { - /* 8026EF18 */ ~cM3dGCir(); -}; - -struct cM3dGAab { - /* 80663AEC */ ~cM3dGAab(); -}; - -struct cCcD_Obj {}; - -struct cCcS { - /* 80264BA8 */ void Set(cCcD_Obj*); -}; - -struct cCcD_Stts { - /* 8026395C */ void ClrCcMove(); -}; - -struct cCcD_GStts { - /* 80667630 */ ~cCcD_GStts(); -}; - -struct cBgS { - /* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const; -}; - -struct _GXTexObj {}; - -struct JMath { - static u8 sincosTable_[65536]; -}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); - /* 8032842C */ void checkPass(f32); - /* 806647D8 */ ~J3DFrameCtrl(); -}; +#include "d/com/d_com_inf_game.h" // // Forward References: @@ -506,11 +168,6 @@ extern "C" void* __nwa__FUl(); extern "C" void __dl__FPv(); extern "C" void init__12J3DFrameCtrlFs(); extern "C" void checkPass__12J3DFrameCtrlFf(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXMultVec(); -extern "C" void PSVECAdd(); -extern "C" void PSVECSquareMag(); -extern "C" void PSVECSquareDistance(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void __construct_new_array(); @@ -525,7 +182,6 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" extern void* __vt__8dCcD_Sph[36]; extern "C" extern void* __vt__8dCcD_Cyl[36]; extern "C" extern void* __vt__8dCcD_Cps[36]; @@ -538,13 +194,9 @@ extern "C" extern void* __vt__9cCcD_Stts[8]; extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 mLineCheck__11fopAcM_lc_c[112]; extern "C" u8 mGndCheck__11fopAcM_gc_c[84]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" extern u8 g_env_light[4880]; extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u32 __float_nan; extern "C" f32 mGroundY__11fopAcM_gc_c; -extern "C" extern u8 mStayNo__20dStage_roomControl_c[4]; extern "C" u8 Zero__5csXyz[4]; extern "C" void __register_global_object(); @@ -872,7 +524,8 @@ asm void daCstatue_c::createHeap() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGCyl::~cM3dGCyl() { +// asm cM3dGCyl::~cM3dGCyl() { +extern "C" asm void __dt__8cM3dGCylFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__8cM3dGCylFv.s" } @@ -882,7 +535,8 @@ asm cM3dGCyl::~cM3dGCyl() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { +// asm cM3dGAab::~cM3dGAab() { +extern "C" asm void __dt__8cM3dGAabFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__8cM3dGAabFv.s" } @@ -892,7 +546,8 @@ asm cM3dGAab::~cM3dGAab() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::~cXyz() { +// asm cXyz::~cXyz() { +extern "C" asm void __dt__4cXyzFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__4cXyzFv.s" } @@ -902,7 +557,8 @@ asm cXyz::~cXyz() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_Sph::~dCcD_Sph() { +// asm dCcD_Sph::~dCcD_Sph() { +extern "C" asm void __dt__8dCcD_SphFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__8dCcD_SphFv.s" } @@ -912,7 +568,8 @@ asm dCcD_Sph::~dCcD_Sph() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_Sph::dCcD_Sph() { +// asm dCcD_Sph::dCcD_Sph() { +extern "C" asm void __ct__8dCcD_SphFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__ct__8dCcD_SphFv.s" } @@ -922,7 +579,8 @@ asm dCcD_Sph::dCcD_Sph() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGSph::~cM3dGSph() { +// asm cM3dGSph::~cM3dGSph() { +extern "C" asm void __dt__8cM3dGSphFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__8cM3dGSphFv.s" } @@ -1179,7 +837,8 @@ asm void daCstatue_c::create() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_GStts::~dCcD_GStts() { +// asm dCcD_GStts::~dCcD_GStts() { +extern "C" asm void __dt__10dCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__10dCcD_GSttsFv.s" } @@ -1189,7 +848,8 @@ asm dCcD_GStts::~dCcD_GStts() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_StatueAcch::~dBgS_StatueAcch() { +// asm dBgS_StatueAcch::~dBgS_StatueAcch() { +extern "C" asm void __dt__15dBgS_StatueAcchFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__15dBgS_StatueAcchFv.s" } @@ -1199,7 +859,8 @@ asm dBgS_StatueAcch::~dBgS_StatueAcch() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_AcchCir::~dBgS_AcchCir() { +// asm dBgS_AcchCir::~dBgS_AcchCir() { +extern "C" asm void __dt__12dBgS_AcchCirFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__12dBgS_AcchCirFv.s" } @@ -1209,7 +870,8 @@ asm dBgS_AcchCir::~dBgS_AcchCir() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DFrameCtrl::~J3DFrameCtrl() { +// asm J3DFrameCtrl::~J3DFrameCtrl() { +extern "C" asm void __dt__12J3DFrameCtrlFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__12J3DFrameCtrlFv.s" } @@ -1440,7 +1102,8 @@ asm void daCstatue_c::posMove() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGPla::~cM3dGPla() { +// asm cM3dGPla::~cM3dGPla() { +extern "C" asm void __dt__8cM3dGPlaFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__8cM3dGPlaFv.s" } @@ -1932,7 +1595,8 @@ static asm void daCstatue_Draw(daCstatue_c* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cCcD_GStts::~cCcD_GStts() { +// asm cCcD_GStts::~cCcD_GStts() { +extern "C" asm void __dt__10cCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_cstatue/d_a_cstatue/__dt__10cCcD_GSttsFv.s" } diff --git a/rel/d/a/d_a_mg_rod/d_a_mg_rod.cpp b/rel/d/a/d_a_mg_rod/d_a_mg_rod.cpp index 52d84c3bf4..2c72f1d305 100644 --- a/rel/d/a/d_a_mg_rod/d_a_mg_rod.cpp +++ b/rel/d/a/d_a_mg_rod/d_a_mg_rod.cpp @@ -3,7 +3,7 @@ // Translation Unit: d_a_mg_rod // -#include "rel/d/a/d_a_mg_rod/d_a_mg_rod.h" +// #include "rel/d/a/d_a_mg_rod/d_a_mg_rod.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp b/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp index 2df64f0e07..f4f6f80eec 100644 --- a/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp +++ b/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp @@ -85,7 +85,7 @@ static int daScex_Create(fopAc_ac_c* ac) { daScex_c* scex = static_cast<daScex_c*>(ac); mDoMtx_stack_c::transS(scex->current.pos.x, scex->current.pos.y, scex->current.pos.z); - mDoMtx_stack_c::YrotM(scex->mCollisionRot.y); + mDoMtx_stack_c::YrotM(scex->shape_angle.y); PSMTXInverse(mDoMtx_stack_c::get(), scex->mMatrix); scex->mScale.x *= 75.0f; scex->mScale.z *= 75.0f; @@ -145,25 +145,25 @@ COMPILER_STRIP_GATE(0x80485CA8, &lit_3842); // regalloc #ifdef NONMATCHING int daScex_c::execute() { - Vec spC; daPy_py_c* player = daPy_getPlayerActorClass(); + cXyz spC; if (checkWork()) { - PSMTXMultVec(mMatrix, &player->current.pos, &spC); + mDoMtx_multVec(mMatrix, &player->current.pos, &spC); if (spC.y >= 0.0f && spC.y <= mScale.y && fabsf(spC.x) <= mScale.x && fabsf(spC.z) <= mScale.z) { switch (getArg1()) { case 0xFF: case 1: - player->onSceneChangeArea(getArg0(), ((fopAcM_GetParam(this) >> 0x10) & 0xFF), this); + player->onSceneChangeArea(getArg0(), getPathID(), this); break; case 2: case 0: - player->onSceneChangeAreaJump(getArg0(), ((fopAcM_GetParam(this) >> 0x10) & 0xFF), this); + player->onSceneChangeAreaJump(getArg0(), getPathID(), this); break; case 3: case 4: - player->onSceneChangeAreaJump(getArg0(), ((fopAcM_GetParam(this) >> 0x10) & 0xFF), this); + player->onSceneChangeAreaJump(getArg0(), getPathID(), this); break; } } diff --git a/rel/d/a/d_a_skip_2D/d_a_skip_2D.cpp b/rel/d/a/d_a_skip_2D/d_a_skip_2D.cpp index 14d674bc4e..7883e680c2 100644 --- a/rel/d/a/d_a_skip_2D/d_a_skip_2D.cpp +++ b/rel/d/a/d_a_skip_2D/d_a_skip_2D.cpp @@ -1,73 +1,16 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_skip_2D -// +/** + * d_a_skip2D.cpp + * + */ #include "rel/d/a/d_a_skip_2D/d_a_skip_2D.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daSkip2D_c { - /* 80D4D498 */ void createHeap(); - /* 80D4D4F4 */ void create(); - /* 80D4D588 */ bool destroy(); - /* 80D4D590 */ void draw(); - /* 80D4D5D0 */ bool execute(); - /* 80D4D5D8 */ void initiate(); - /* 80D4D674 */ ~daSkip2D_c(); -}; - -struct dMeterButton_c { - /* 80201328 */ dMeterButton_c(); -}; - -struct dDlst_base_c {}; - -struct dDlst_list_c { - /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*); -}; - -// -// Forward References: -// - -extern "C" static void daSkip2D_createHeap__FP10fopAc_ac_c(); -extern "C" void createHeap__10daSkip2D_cFv(); -extern "C" void create__10daSkip2D_cFv(); -extern "C" bool destroy__10daSkip2D_cFv(); -extern "C" void draw__10daSkip2D_cFv(); -extern "C" bool execute__10daSkip2D_cFv(); -extern "C" void initiate__10daSkip2D_cFv(); -extern "C" static void daSkip2D_Create__FPv(); -extern "C" static void daSkip2D_Delete__FPv(); -extern "C" static void daSkip2D_Execute__FPv(); -extern "C" static void daSkip2D_Draw__FPv(); -extern "C" static bool daSkip2D_IsDelete__FPv(); -extern "C" void __dt__10daSkip2D_cFv(); // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c(); -extern "C" void __ct__14dMeterButton_cFv(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; // // Declarations: @@ -75,146 +18,102 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384]; /* 80D4D478-80D4D498 000078 0020+00 1/1 0/0 0/0 .text daSkip2D_createHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daSkip2D_createHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/daSkip2D_createHeap__FP10fopAc_ac_c.s" +static int daSkip2D_createHeap(fopAc_ac_c* i_this) { + return static_cast<daSkip2D_c*>(i_this)->createHeap(); } -#pragma pop /* 80D4D498-80D4D4F4 000098 005C+00 1/1 0/0 0/0 .text createHeap__10daSkip2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daSkip2D_c::createHeap() { - nofralloc -#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/createHeap__10daSkip2D_cFv.s" -} -#pragma pop +int daSkip2D_c::createHeap() { + mpButton = new dMeterButton_c(); -/* ############################################################################################## */ -/* 80D4D6DC-80D4D6FC -00001 0020+00 1/0 0/0 0/0 .data daSkip2D_MethodTable */ -SECTION_DATA static void* daSkip2D_MethodTable[8] = { - (void*)daSkip2D_Create__FPv, - (void*)daSkip2D_Delete__FPv, - (void*)daSkip2D_Execute__FPv, - (void*)daSkip2D_IsDelete__FPv, - (void*)daSkip2D_Draw__FPv, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; + if (mpButton == NULL) { + return 0; + } -/* 80D4D6FC-80D4D72C -00001 0030+00 0/0 0/0 1/0 .data g_profile_SKIP2D */ -SECTION_DATA extern void* g_profile_SKIP2D[12] = { - (void*)0xFFFFFFFD, (void*)0x0003FFFD, - (void*)0x005B0000, (void*)&g_fpcLf_Method, - (void*)0x00000578, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x03040000, (void*)&daSkip2D_MethodTable, - (void*)0x00040000, (void*)NULL, -}; - -/* 80D4D72C-80D4D738 000050 000C+00 2/2 0/0 0/0 .data __vt__10daSkip2D_c */ -SECTION_DATA extern void* __vt__10daSkip2D_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10daSkip2D_cFv, -}; + return 1; +} /* 80D4D4F4-80D4D588 0000F4 0094+00 1/1 0/0 0/0 .text create__10daSkip2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daSkip2D_c::create() { - nofralloc -#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/create__10daSkip2D_cFv.s" +int daSkip2D_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daSkip2D_c(); + fopAcM_OnCondition(this, 8); + } + + if (!fopAcM_entrySolidHeap(this, daSkip2D_createHeap, 0)) { + return cPhs_ERROR_e; + } + + return cPhs_COMPLEATE_e; } -#pragma pop /* 80D4D588-80D4D590 000188 0008+00 1/1 0/0 0/0 .text destroy__10daSkip2D_cFv */ -bool daSkip2D_c::destroy() { - return true; +int daSkip2D_c::destroy() { + return 1; } /* 80D4D590-80D4D5D0 000190 0040+00 1/1 0/0 0/0 .text draw__10daSkip2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daSkip2D_c::draw() { - nofralloc -#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/draw__10daSkip2D_cFv.s" +int daSkip2D_c::draw() { + dComIfGd_set2DOpaTop((dDlst_base_c*)&mpButton); // ??? + return 1; } -#pragma pop /* 80D4D5D0-80D4D5D8 0001D0 0008+00 1/1 0/0 0/0 .text execute__10daSkip2D_cFv */ -bool daSkip2D_c::execute() { - return true; +int daSkip2D_c::execute() { + return 1; } /* 80D4D5D8-80D4D5EC 0001D8 0014+00 1/1 0/0 0/0 .text initiate__10daSkip2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daSkip2D_c::initiate() { - nofralloc -#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/initiate__10daSkip2D_cFv.s" +void daSkip2D_c::initiate() { + field_0x56c = 0; + mpButton = NULL; + field_0x574 = 0; } -#pragma pop /* 80D4D5EC-80D4D60C 0001EC 0020+00 1/0 0/0 0/0 .text daSkip2D_Create__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daSkip2D_Create(void* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/daSkip2D_Create__FPv.s" +static int daSkip2D_Create(void* i_this) { + return static_cast<daSkip2D_c*>(i_this)->create(); } -#pragma pop /* 80D4D60C-80D4D62C 00020C 0020+00 1/0 0/0 0/0 .text daSkip2D_Delete__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daSkip2D_Delete(void* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/daSkip2D_Delete__FPv.s" +static int daSkip2D_Delete(void* i_this) { + return static_cast<daSkip2D_c*>(i_this)->destroy(); } -#pragma pop /* 80D4D62C-80D4D64C 00022C 0020+00 1/0 0/0 0/0 .text daSkip2D_Execute__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daSkip2D_Execute(void* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/daSkip2D_Execute__FPv.s" +static int daSkip2D_Execute(void* i_this) { + return static_cast<daSkip2D_c*>(i_this)->execute(); } -#pragma pop /* 80D4D64C-80D4D66C 00024C 0020+00 1/0 0/0 0/0 .text daSkip2D_Draw__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daSkip2D_Draw(void* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/daSkip2D_Draw__FPv.s" +static int daSkip2D_Draw(void* i_this) { + return static_cast<daSkip2D_c*>(i_this)->draw(); } -#pragma pop /* 80D4D66C-80D4D674 00026C 0008+00 1/0 0/0 0/0 .text daSkip2D_IsDelete__FPv */ -static bool daSkip2D_IsDelete(void* param_0) { - return true; +static int daSkip2D_IsDelete(void*) { + return 1; } -/* 80D4D674-80D4D6D4 000274 0060+00 1/0 0/0 0/0 .text __dt__10daSkip2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daSkip2D_c::~daSkip2D_c() { - nofralloc -#include "asm/rel/d/a/d_a_skip_2D/d_a_skip_2D/__dt__10daSkip2D_cFv.s" -} -#pragma pop +/* ############################################################################################## */ +/* 80D4D6DC-80D4D6FC -00001 0020+00 1/0 0/0 0/0 .data daSkip2D_MethodTable */ +SECTION_DATA static void* daSkip2D_MethodTable[8] = { + (void*)daSkip2D_Create, + (void*)daSkip2D_Delete, + (void*)daSkip2D_Execute, + (void*)daSkip2D_IsDelete, + (void*)daSkip2D_Draw, + (void*)NULL, + (void*)NULL, + (void*)NULL, +}; + +/* 80D4D6FC-80D4D72C -00001 0030+00 0/0 0/0 1/0 .data g_profile_SKIP2D */ +SECTION_DATA extern void* g_profile_SKIP2D[12] = { + (void*)0xFFFFFFFD, (void*)0x0003FFFD, + (void*)0x005B0000, (void*)&g_fpcLf_Method, + (void*)0x00000578, (void*)NULL, + (void*)NULL, (void*)&g_fopAc_Method, + (void*)0x03040000, (void*)&daSkip2D_MethodTable, + (void*)0x00040000, (void*)NULL, +};
\ No newline at end of file diff --git a/rel/d/a/d_a_swc00/d_a_swc00.cpp b/rel/d/a/d_a_swc00/d_a_swc00.cpp index 4c32ca25a0..f372879ee6 100644 --- a/rel/d/a/d_a_swc00/d_a_swc00.cpp +++ b/rel/d/a/d_a_swc00/d_a_swc00.cpp @@ -76,7 +76,7 @@ SECTION_RODATA static f32 const lit_3708 = -100.0f; COMPILER_STRIP_GATE(0x805A1D94, &lit_3708); inline u8 daSwc00_getCondition(daSwc00_c* i_this) { - return i_this->mCollisionRot.x; + return i_this->shape_angle.x; } inline int daSwc00_getShape(daSwc00_c* i_this) { diff --git a/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.cpp b/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.cpp index 34faa9a8ff..958b1ff626 100644 --- a/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.cpp +++ b/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.cpp @@ -521,8 +521,8 @@ static int daNPC_TR_Execute(npc_tr_class* npc_tr) { action(npc_tr); mDoMtx_stack_c::transS(npc_tr->current.pos.x, npc_tr->current.pos.y, npc_tr->current.pos.z); - mDoMtx_stack_c::YrotM(npc_tr->mCollisionRot.y + npc_tr->field_0x5f0); - mDoMtx_stack_c::XrotM(npc_tr->mCollisionRot.x); + mDoMtx_stack_c::YrotM(npc_tr->shape_angle.y + npc_tr->field_0x5f0); + mDoMtx_stack_c::XrotM(npc_tr->shape_angle.x); f32 scale = npc_tr->mScale.x * l_HIO.field_0x8; mDoMtx_stack_c::scaleM(scale, scale, scale); diff --git a/rel/d/a/tag/d_a_tag_TWgate/d_a_tag_TWgate.cpp b/rel/d/a/tag/d_a_tag_TWgate/d_a_tag_TWgate.cpp index 21f24d9b9d..6b9e900c68 100644 --- a/rel/d/a/tag/d_a_tag_TWgate/d_a_tag_TWgate.cpp +++ b/rel/d/a/tag/d_a_tag_TWgate/d_a_tag_TWgate.cpp @@ -753,7 +753,7 @@ void daTagTWGate_c::executeDemoFilone3() { if (old_5e1 == 43) { daPy_py_c* player = daPy_getPlayerActorClass(); - csXyz sxyz(0, player->mCollisionRot.y + 0x8000, 0); + csXyz sxyz(0, player->shape_angle.y + 0x8000, 0); mDoMtx_stack_c::transS(player->current.pos); mDoMtx_stack_c::YrotM(sxyz.y); @@ -1013,9 +1013,9 @@ void daTagTWGate_c::initBaseMtx() { mCullMtx = mpMorf->getModel()->getBaseTRMtx(); fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0); - mCollisionRot.y = player->mCollisionRot.y + 0x8000; + shape_angle.y = player->shape_angle.y + 0x8000; mDoMtx_stack_c::transS(player->current.pos); - mDoMtx_stack_c::YrotM(mCollisionRot.y); + mDoMtx_stack_c::YrotM(shape_angle.y); mDoMtx_stack_c::transM(0.0f, 250.0f, -840.0f); current.pos.x = mDoMtx_stack_c::get()[0][3]; diff --git a/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit.cpp b/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit.cpp index 88e30b81ed..bfc6a3cb36 100644 --- a/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit.cpp +++ b/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit.cpp @@ -1,150 +1,104 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_hinit -// +/** + * d_a_tag_hinit.cpp + * + */ #include "rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagHinit_c { - /* 805A3758 */ void create(); - /* 805A3820 */ ~daTagHinit_c(); - /* 805A389C */ void execute(); -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 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; -}; +#include "rel/d/a/d_a_horse/d_a_horse.h" // // Forward References: // -extern "C" void create__12daTagHinit_cFv(); -extern "C" static void daTagHinit_Create__FP10fopAc_ac_c(); -extern "C" void __dt__12daTagHinit_cFv(); -extern "C" static void daTagHinit_Delete__FP12daTagHinit_c(); -extern "C" void execute__12daTagHinit_cFv(); -extern "C" static void daTagHinit_Execute__FP12daTagHinit_c(); -extern "C" static bool daTagHinit_Draw__FP12daTagHinit_c(); extern "C" extern void* g_profile_Tag_Hinit[12]; // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void __dl__FPv(); -extern "C" void __ptmf_scall(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; // // Declarations: // /* 805A3758-805A3800 000078 00A8+00 1/1 0/0 0/0 .text create__12daTagHinit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagHinit_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/create__12daTagHinit_cFv.s" +int daTagHinit_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagHinit_c(); + fopAcM_OnCondition(this, 8); + } + + field_0x569 = shape_angle.x; + + if (field_0x569 != 0xFF && i_fopAcM_isSwitch(this, field_0x569)) { + return cPhs_ERROR_e; + } + + field_0x568 = (shape_angle.x >> 8) & 0xFF; + field_0x56c = fopAcM_GetParam(this); + field_0x56e = (fopAcM_GetParam(this) >> 0x10); + + return cPhs_COMPLEATE_e; } -#pragma pop /* 805A3800-805A3820 000120 0020+00 1/0 0/0 0/0 .text daTagHinit_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagHinit_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/daTagHinit_Create__FP10fopAc_ac_c.s" +static int daTagHinit_Create(fopAc_ac_c* i_this) { + return static_cast<daTagHinit_c*>(i_this)->create(); } -#pragma pop /* 805A3820-805A3874 000140 0054+00 1/1 0/0 0/0 .text __dt__12daTagHinit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagHinit_c::~daTagHinit_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/__dt__12daTagHinit_cFv.s" -} -#pragma pop +daTagHinit_c::~daTagHinit_c() {} /* 805A3874-805A389C 000194 0028+00 1/0 0/0 0/0 .text daTagHinit_Delete__FP12daTagHinit_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagHinit_Delete(daTagHinit_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/daTagHinit_Delete__FP12daTagHinit_c.s" +static int daTagHinit_Delete(daTagHinit_c* i_this) { + i_this->~daTagHinit_c(); + return 1; } -#pragma pop /* 805A389C-805A39B8 0001BC 011C+00 1/1 0/0 0/0 .text execute__12daTagHinit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagHinit_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/execute__12daTagHinit_cFv.s" +int daTagHinit_c::execute() { + if ((field_0x56c == 0xFFFF || + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x56c])) && + (field_0x56e == 0xFFFF || + !i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x56e])) && + (field_0x568 == 0xFF || i_fopAcM_isSwitch(this, field_0x568))) { + if (field_0x569 != 0xFF) { + i_fopAcM_onSwitch(this, field_0x569); + } + + daHorse_c* horse = i_dComIfGp_getHorseActor(); + horse->i_setHorsePosAndAngle(¤t.pos, shape_angle.y); + horse->offNoDrawWait(); + fopAcM_delete(this); + } + + return 1; } -#pragma pop /* 805A39B8-805A39D8 0002D8 0020+00 1/0 0/0 0/0 .text daTagHinit_Execute__FP12daTagHinit_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagHinit_Execute(daTagHinit_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hinit/d_a_tag_hinit/daTagHinit_Execute__FP12daTagHinit_c.s" +static int daTagHinit_Execute(daTagHinit_c* i_this) { + return i_this->execute(); } -#pragma pop /* 805A39D8-805A39E0 0002F8 0008+00 1/0 0/0 0/0 .text daTagHinit_Draw__FP12daTagHinit_c */ -static bool daTagHinit_Draw(daTagHinit_c* param_0) { - return true; +static int daTagHinit_Draw(daTagHinit_c*) { + return 1; } /* ############################################################################################## */ /* 805A39E8-805A3A08 -00001 0020+00 1/0 0/0 0/0 .data l_daTagHinit_Method */ SECTION_DATA static void* l_daTagHinit_Method[8] = { - (void*)daTagHinit_Create__FP10fopAc_ac_c, - (void*)daTagHinit_Delete__FP12daTagHinit_c, - (void*)daTagHinit_Execute__FP12daTagHinit_c, + (void*)daTagHinit_Create, + (void*)daTagHinit_Delete, + (void*)daTagHinit_Execute, (void*)NULL, - (void*)daTagHinit_Draw__FP12daTagHinit_c, + (void*)daTagHinit_Draw, (void*)NULL, (void*)NULL, (void*)NULL, diff --git a/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.cpp b/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.cpp index 50d9b5f318..b310eb1ce4 100644 --- a/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.cpp +++ b/rel/d/a/tag/d_a_tag_hstop/d_a_tag_hstop.cpp @@ -121,7 +121,7 @@ dMsgFlow_c daTagHstop_c::m_msgFlow; int daTagHstop_c::execute() { if (mEvtInfo.checkCommandTalk()) { if (field_0x573 == 2) { - m_msgFlow.init(this, (u16)mCollisionRot.z, 0, NULL); + m_msgFlow.init(this, (u16)shape_angle.z, 0, NULL); field_0x573 = 3; } else if (m_msgFlow.doFlow(this, NULL, 0)) { i_dComIfGp_getEvent().reset(); diff --git a/rel/d/a/tag/d_a_tag_lv5soup/d_a_tag_lv5soup.cpp b/rel/d/a/tag/d_a_tag_lv5soup/d_a_tag_lv5soup.cpp index 5e6531a913..c561240b68 100644 --- a/rel/d/a/tag/d_a_tag_lv5soup/d_a_tag_lv5soup.cpp +++ b/rel/d/a/tag/d_a_tag_lv5soup/d_a_tag_lv5soup.cpp @@ -120,7 +120,7 @@ bool daTag_Lv5Soup_c::isAreaCheck() { f32 boundX = mScale.x * 100.0f; f32 boundY = mScale.y * 100.0f; - if (sqrtf(dist.abs2XZ()) < boundX && -boundY < dist.y && dist.y < boundY) { + if (dist.absXZ() < boundX && -boundY < dist.y && dist.y < boundY) { return true; } else { return false; diff --git a/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart.cpp b/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart.cpp index ec5321ba4e..aa111959a6 100644 --- a/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart.cpp +++ b/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart.cpp @@ -1,201 +1,150 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_setrestart -// +/** + * d_a_tag_setrestart.cpp + * RMBack0 + * Sets player room restart info + */ #include "rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct Vec {}; - -struct cXyz { - /* 80266AE4 */ void operator+(Vec const&) const; - /* 80D60520 */ ~cXyz(); - /* 80D6055C */ cXyz(); -}; - -struct fopAcM_gc_c { - /* 8001DCBC */ void gndCheck(cXyz const*); - - static f32 mGroundY; -}; - -struct daTagRestart_c { - /* 80D603F8 */ void Create(); - /* 80D6048C */ void create(); - /* 80D60560 */ void execute(); - /* 80D60744 */ bool _delete(); -}; - -struct dSv_restart_c { - /* 80034F80 */ void setRoom(cXyz const&, s16, s8); -}; // // Forward References: // -extern "C" void Create__14daTagRestart_cFv(); -extern "C" void create__14daTagRestart_cFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void execute__14daTagRestart_cFv(); -extern "C" bool _delete__14daTagRestart_cFv(); -extern "C" static void daTagRestart_Execute__FP14daTagRestart_c(); -extern "C" static void daTagRestart_Delete__FP14daTagRestart_c(); -extern "C" static void daTagRestart_Create__FP10fopAc_ac_c(); extern "C" extern void* g_profile_Tag_Restart[12]; // // External References: // -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz(); -extern "C" void setRoom__13dSv_restart_cFRC4cXyzsSc(); -extern "C" void __pl__4cXyzCFRC3Vec(); extern "C" void __dl__FPv(); -extern "C" void PSMTXMultVec(); -extern "C" void PSVECSubtract(); -extern "C" void __construct_array(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" f32 mGroundY__11fopAcM_gc_c; -extern "C" extern u8 mStayNo__20dStage_roomControl_c[4]; // // Declarations: // -/* ############################################################################################## */ -/* 80D607B4-80D607B8 000000 0004+00 2/2 0/0 0/0 .rodata @3650 */ -SECTION_RODATA static f32 const lit_3650 = -100.0f; -COMPILER_STRIP_GATE(0x80D607B4, &lit_3650); +/* 80D603F8-80D6048C 000078 0094+00 1/1 0/0 0/0 .text Create__14daTagRestart_cFv */ +int daTagRestart_c::Create() { + field_0x56c[0].x = mScale.x * -100.0f; + field_0x56c[0].z = mScale.z * -100.0f; -/* 80D607B8-80D607BC 000004 0004+00 0/2 0/0 0/0 .rodata @3651 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3651 = 100.0f; -COMPILER_STRIP_GATE(0x80D607B8, &lit_3651); -#pragma pop + field_0x56c[1].x = mScale.x * 100.0f; + field_0x56c[1].z = mScale.z * -100.0f; -/* 80D607BC-80D607C0 000008 0004+00 0/2 0/0 0/0 .rodata @3652 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3652[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D607BC, &lit_3652); -#pragma pop + field_0x56c[2].x = mScale.x * 100.0f; + field_0x56c[2].z = mScale.z * 100.0f; -/* 80D603F8-80D6048C 000078 0094+00 1/1 0/0 0/0 .text Create__14daTagRestart_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagRestart_c::Create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/Create__14daTagRestart_cFv.s" + field_0x56c[3].x = mScale.x * -100.0f; + field_0x56c[3].z = mScale.z * 100.0f; + + field_0x56c[3].y = 0.0f; + field_0x56c[2].y = 0.0f; + field_0x56c[1].y = 0.0f; + field_0x56c[0].y = 0.0f; + + mPlayerRoomNo = -1; + return 1; } -#pragma pop /* 80D6048C-80D60520 00010C 0094+00 1/1 0/0 0/0 .text create__14daTagRestart_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagRestart_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/func_80D6048C.s" +int daTagRestart_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagRestart_c(); + fopAcM_OnCondition(this, 8); + } + + if (!Create()) { + return cPhs_ERROR_e; + } + + return cPhs_COMPLEATE_e; } -#pragma pop /* 80D60520-80D6055C 0001A0 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::~cXyz() { +// asm cXyz::~cXyz() { +extern "C" asm void __dt__4cXyzFv() { nofralloc #include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/__dt__4cXyzFv.s" } #pragma pop /* 80D6055C-80D60560 0001DC 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -cXyz::cXyz() { - /* empty function */ -} +// cXyz::cXyz() { +extern "C" void __ct__4cXyzFv() {} /* 80D60560-80D60744 0001E0 01E4+00 1/1 0/0 0/0 .text execute__14daTagRestart_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagRestart_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/execute__14daTagRestart_cFv.s" +int daTagRestart_c::execute() { + fopAc_ac_c* player = dComIfGp_getPlayer(0); + + cXyz player_pos = player->current.pos; + player_pos -= orig.pos; + mDoMtx_stack_c::YrotS(-current.angle.y); + mDoMtx_stack_c::multVec(&player_pos, &player_pos); + + if (field_0x56c[0].x < player_pos.x && field_0x56c[0].z < player_pos.z && + field_0x56c[2].x > player_pos.x && field_0x56c[2].z > player_pos.z) { + int roomNo = dComIfGp_roomControl_getStayNo(); + if (roomNo != mPlayerRoomNo) { + cXyz pos_offset; + s16 restart_angle; + if (roomNo == daTagRestart_prm::getFRoomNo(this)) { + restart_angle = orig.angle.y; + pos_offset.set(0.0f, 0.0f, 100.0f); + } else { + restart_angle = orig.angle.y + 0x8000; + pos_offset.set(0.0f, 0.0f, -100.0f); + } + + pos_offset.y += 100.0f; + mDoMtx_stack_c::YrotS(orig.angle.y); + mDoMtx_stack_c::multVec(&pos_offset, &pos_offset); + cXyz restart_pos = current.pos + pos_offset; + + if (fopAcM_gc_c::gndCheck(&restart_pos)) { + restart_pos.y = fopAcM_gc_c::getGroundY(); + } + + s32 player_roomNo = fopAcM_GetRoomNo(player); + dComIfGs_setRestartRoom(restart_pos, restart_angle, player_roomNo); + } + } + + mPlayerRoomNo = fopAcM_GetRoomNo(player); + return 1; } -#pragma pop /* 80D60744-80D6074C 0003C4 0008+00 1/1 0/0 0/0 .text _delete__14daTagRestart_cFv */ -bool daTagRestart_c::_delete() { - return true; +int daTagRestart_c::_delete() { + return 1; } /* 80D6074C-80D6076C 0003CC 0020+00 1/0 0/0 0/0 .text daTagRestart_Execute__FP14daTagRestart_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagRestart_Execute(daTagRestart_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/daTagRestart_Execute__FP14daTagRestart_c.s" +static int daTagRestart_Execute(daTagRestart_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80D6076C-80D6078C 0003EC 0020+00 1/0 0/0 0/0 .text daTagRestart_Delete__FP14daTagRestart_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagRestart_Delete(daTagRestart_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/daTagRestart_Delete__FP14daTagRestart_c.s" +static int daTagRestart_Delete(daTagRestart_c* i_this) { + return i_this->_delete(); } -#pragma pop /* 80D6078C-80D607AC 00040C 0020+00 1/0 0/0 0/0 .text daTagRestart_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagRestart_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_setrestart/d_a_tag_setrestart/daTagRestart_Create__FP10fopAc_ac_c.s" +static int daTagRestart_Create(fopAc_ac_c* i_this) { + return static_cast<daTagRestart_c*>(i_this)->create(); } -#pragma pop /* ############################################################################################## */ /* 80D607C0-80D607E0 -00001 0020+00 1/0 0/0 0/0 .data l_daTagRestart_Method */ SECTION_DATA static void* l_daTagRestart_Method[8] = { - (void*)daTagRestart_Create__FP10fopAc_ac_c, - (void*)daTagRestart_Delete__FP14daTagRestart_c, - (void*)daTagRestart_Execute__FP14daTagRestart_c, + (void*)daTagRestart_Create, + (void*)daTagRestart_Delete, + (void*)daTagRestart_Execute, (void*)NULL, (void*)NULL, (void*)NULL, diff --git a/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.cpp b/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.cpp index 9e3058b28d..9742c4be23 100644 --- a/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.cpp +++ b/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.cpp @@ -4,204 +4,125 @@ // #include "rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagWrHowl_c { - /* 80D63F38 */ daTagWrHowl_c(); - /* 80D63F74 */ ~daTagWrHowl_c(); - /* 80D63FD4 */ void create(); - /* 80D6402C */ bool Delete(); - /* 80D64034 */ bool draw(); - /* 80D6403C */ void execute(); - /* 80D64090 */ void init(); - /* 80D640B4 */ void chkWlfInTag(); -}; - -// -// Forward References: -// - -extern "C" void __ct__13daTagWrHowl_cFv(); -extern "C" void __dt__13daTagWrHowl_cFv(); -extern "C" void create__13daTagWrHowl_cFv(); -extern "C" bool Delete__13daTagWrHowl_cFv(); -extern "C" bool draw__13daTagWrHowl_cFv(); -extern "C" void execute__13daTagWrHowl_cFv(); -extern "C" void init__13daTagWrHowl_cFv(); -extern "C" void chkWlfInTag__13daTagWrHowl_cFv(); -extern "C" static void daTagWrHowl_create__FP13daTagWrHowl_c(); -extern "C" static void daTagWrHowl_Delete__FP13daTagWrHowl_c(); -extern "C" static void daTagWrHowl_execute__FP13daTagWrHowl_c(); -extern "C" static void daTagWrHowl_draw__FP13daTagWrHowl_c(); // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void __dl__FPv(); -extern "C" void PSVECSquareDistance(); extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; // // Declarations: // -/* ############################################################################################## */ -/* 80D64204-80D64224 -00001 0020+00 1/0 0/0 0/0 .data daTagWrHowl_METHODS */ -SECTION_DATA static void* daTagWrHowl_METHODS[8] = { - (void*)daTagWrHowl_create__FP13daTagWrHowl_c, - (void*)daTagWrHowl_Delete__FP13daTagWrHowl_c, - (void*)daTagWrHowl_execute__FP13daTagWrHowl_c, - (void*)NULL, - (void*)daTagWrHowl_draw__FP13daTagWrHowl_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 80D64224-80D64254 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_WaraHowl */ -SECTION_DATA extern void* g_profile_Tag_WaraHowl[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x018B0000, (void*)&g_fpcLf_Method, - (void*)0x00000574, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02DD0000, (void*)&daTagWrHowl_METHODS, - (void*)0x00040000, (void*)0x000E0000, -}; - -/* 80D64254-80D64260 000050 000C+00 2/2 0/0 0/0 .data __vt__13daTagWrHowl_c */ -SECTION_DATA extern void* __vt__13daTagWrHowl_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daTagWrHowl_cFv, -}; - /* 80D63F38-80D63F74 000078 003C+00 2/2 0/0 0/0 .text __ct__13daTagWrHowl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagWrHowl_c::daTagWrHowl_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/__ct__13daTagWrHowl_cFv.s" -} -#pragma pop +daTagWrHowl_c::daTagWrHowl_c() {} /* 80D63F74-80D63FD4 0000B4 0060+00 1/0 0/0 0/0 .text __dt__13daTagWrHowl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagWrHowl_c::~daTagWrHowl_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/__dt__13daTagWrHowl_cFv.s" -} -#pragma pop +daTagWrHowl_c::~daTagWrHowl_c() {} /* 80D63FD4-80D6402C 000114 0058+00 1/1 0/0 0/0 .text create__13daTagWrHowl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagWrHowl_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/create__13daTagWrHowl_cFv.s" +int daTagWrHowl_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagWrHowl_c(); + fopAcM_OnCondition(this, 8); + } + + init(); + return cPhs_COMPLEATE_e; } -#pragma pop /* 80D6402C-80D64034 00016C 0008+00 1/1 0/0 0/0 .text Delete__13daTagWrHowl_cFv */ -bool daTagWrHowl_c::Delete() { - return true; +int daTagWrHowl_c::Delete() { + return 1; } /* 80D64034-80D6403C 000174 0008+00 1/1 0/0 0/0 .text draw__13daTagWrHowl_cFv */ -bool daTagWrHowl_c::draw() { - return true; +int daTagWrHowl_c::draw() { + return 1; } /* 80D6403C-80D64090 00017C 0054+00 1/1 0/0 0/0 .text execute__13daTagWrHowl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagWrHowl_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/execute__13daTagWrHowl_cFv.s" -} -#pragma pop +int daTagWrHowl_c::execute() { + mAttentionInfo.mFlags = 0; -/* ############################################################################################## */ -/* 80D64200-80D64204 000000 0004+00 1/1 0/0 0/0 .rodata @3680 */ -SECTION_RODATA static f32 const lit_3680 = 50.0f; -COMPILER_STRIP_GATE(0x80D64200, &lit_3680); + if (chkWlfInTag()) { + mAttentionInfo.mFlags |= 0x80; + mAttentionInfo.field_0x4[3] = 65; + } + + return 1; +} /* 80D64090-80D640B4 0001D0 0024+00 1/1 0/0 0/0 .text init__13daTagWrHowl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagWrHowl_c::init() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/init__13daTagWrHowl_cFv.s" +void daTagWrHowl_c::init() { + field_0x56c = 50.0f * mScale.x; + field_0x570 = field_0x56c * field_0x56c; } -#pragma pop /* 80D640B4-80D64144 0001F4 0090+00 1/1 0/0 0/0 .text chkWlfInTag__13daTagWrHowl_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagWrHowl_c::chkWlfInTag() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/chkWlfInTag__13daTagWrHowl_cFv.s" +bool daTagWrHowl_c::chkWlfInTag() { + if (dComIfGp_getPlayer(0) == NULL) { + return false; + } + + if (daPy_py_c::i_checkNowWolf()) { + cXyz player_pos = dComIfGp_getPlayer(0)->current.pos; + if (player_pos.abs2(current.pos) < field_0x570) { + return true; + } + } + + return false; } -#pragma pop /* 80D64144-80D64198 000284 0054+00 1/0 0/0 0/0 .text daTagWrHowl_create__FP13daTagWrHowl_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagWrHowl_create(daTagWrHowl_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/daTagWrHowl_create__FP13daTagWrHowl_c.s" +static int daTagWrHowl_create(daTagWrHowl_c* i_this) { + if (!fopAcM_CheckCondition(i_this, 8)) { + new (i_this) daTagWrHowl_c(); + fopAcM_OnCondition(i_this, 8); + } + + return i_this->create(); } -#pragma pop /* 80D64198-80D641B8 0002D8 0020+00 1/0 0/0 0/0 .text daTagWrHowl_Delete__FP13daTagWrHowl_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagWrHowl_Delete(daTagWrHowl_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/daTagWrHowl_Delete__FP13daTagWrHowl_c.s" +static int daTagWrHowl_Delete(daTagWrHowl_c* i_this) { + return i_this->Delete(); } -#pragma pop /* 80D641B8-80D641D8 0002F8 0020+00 1/0 0/0 0/0 .text daTagWrHowl_execute__FP13daTagWrHowl_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagWrHowl_execute(daTagWrHowl_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/daTagWrHowl_execute__FP13daTagWrHowl_c.s" +static int daTagWrHowl_execute(daTagWrHowl_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80D641D8-80D641F8 000318 0020+00 1/0 0/0 0/0 .text daTagWrHowl_draw__FP13daTagWrHowl_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagWrHowl_draw(daTagWrHowl_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl/daTagWrHowl_draw__FP13daTagWrHowl_c.s" +static int daTagWrHowl_draw(daTagWrHowl_c* i_this) { + return i_this->draw(); } -#pragma pop + +/* ############################################################################################## */ +/* 80D64204-80D64224 -00001 0020+00 1/0 0/0 0/0 .data daTagWrHowl_METHODS */ +SECTION_DATA static void* daTagWrHowl_METHODS[8] = { + (void*)daTagWrHowl_create, + (void*)daTagWrHowl_Delete, + (void*)daTagWrHowl_execute, + (void*)NULL, + (void*)daTagWrHowl_draw, + (void*)NULL, + (void*)NULL, + (void*)NULL, +}; + +/* 80D64224-80D64254 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_WaraHowl */ +SECTION_DATA extern void* g_profile_Tag_WaraHowl[12] = { + (void*)0xFFFFFFFD, (void*)0x0007FFFD, + (void*)0x018B0000, (void*)&g_fpcLf_Method, + (void*)0x00000574, (void*)NULL, + (void*)NULL, (void*)&g_fopAc_Method, + (void*)0x02DD0000, (void*)&daTagWrHowl_METHODS, + (void*)0x00040000, (void*)0x000E0000, +};
\ No newline at end of file |
