From 20aa2a94f074532bfe66cd58815b646aecdf0959 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Tue, 14 Nov 2023 03:16:27 -0500 Subject: [PATCH] d_a_rd work --- include/d/actor/d_a_rd.h | 34 ++++-- include/d/d_jnt_hit.h | 3 +- include/d/d_lib.h | 39 ++++++- include/d/d_material.h | 12 ++ include/d/d_npc.h | 37 ++++--- src/d/actor/d_a_rd.cpp | 234 ++++++++++++++++++++++++++++++++++++--- src/d/d_lib.cpp | 47 ++++---- 7 files changed, 337 insertions(+), 69 deletions(-) diff --git a/include/d/actor/d_a_rd.h b/include/d/actor/d_a_rd.h index fbe9866f8..c25feee00 100644 --- a/include/d/actor/d_a_rd.h +++ b/include/d/actor/d_a_rd.h @@ -51,6 +51,21 @@ public: PROC_EXEC = 1 }; + enum Mode { + MODE_WAIT = 0x0, + MODE_DAMAGE = 0x1, + MODE_PARALYSIS = 0x2, + MODE_DEATH = 0x3, + MODE_MOVE = 0x4, + MODE_CRY = 0x5, + MODE_CRY_WAIT = 0x6, + MODE_ATTACK = 0x7, + MODE_RETURN = 0x8, + MODE_SILENT_PRAY = 0x9, + MODE_SW_WAIT = 0xA, + MODE_KANOKE = 0xB, + }; + typedef void (daRd_c::*ModeFunc)(); static const u32 m_heapsize; @@ -69,8 +84,8 @@ public: BOOL _nodeHeadControl(J3DNode*, J3DModel*); BOOL _createHeap(); bool createArrowHeap(); - void checkPlayerInAttack(); - void checkPlayerInCry(); + bool checkPlayerInAttack(); + bool checkPlayerInCry(); void lookBack(); void checkTgHit(); void setCollision(); @@ -127,7 +142,9 @@ public: /* 0x2D0 */ mDoExt_McaMorf* mpMorf; /* 0x2D4 */ mDoExt_btkAnm mBtkAnm; /* 0x2E8 */ mDoExt_brkAnm mBrkAnm; - /* 0x300 */ u8 m300[0x310 - 0x300]; + /* 0x300 */ cXyz m300; + /* 0x30C */ s16 m30C; + /* 0x30E */ u8 m30E[0x310 - 0x30E]; /* 0x310 */ int m310; /* 0x314 */ int m314; /* 0x318 */ int m318; @@ -141,9 +158,9 @@ public: /* 0x69C */ dNpc_JntCtrl_c mJntCtrl; /* 0x6D0 */ u32 m6D0; /* 0x6D4 */ int m6D4; - /* 0x6D8 */ u8 m6D8; - /* 0x6D9 */ u8 m6D9; - /* 0x6DA */ u8 m6DA; + /* 0x6D8 */ s8 m6D8; + /* 0x6D9 */ s8 m6D9; + /* 0x6DA */ s8 m6DA; /* 0x6DB */ u8 m6DB; /* 0x6DC */ u8 m6DC; /* 0x6DD */ u8 m6DD[0x6E0 - 0x6DD]; @@ -163,7 +180,10 @@ public: /* 0xD1E */ s16 mD1E; /* 0xD20 */ u8 mD20[0xD34 - 0xD20]; /* 0xD34 */ bool mbIkari; - /* 0xD35 */ u8 mD35[0xD44 - 0xD35]; + /* 0xD35 */ u8 mD35[0xD38 - 0xD35]; + /* 0xD38 */ f32 mD38; + /* 0xD3C */ int mD3C; + /* 0xD40 */ int mD40; }; #endif /* D_A_RD_H */ diff --git a/include/d/d_jnt_hit.h b/include/d/d_jnt_hit.h index 847bf8e27..03ae8ef7a 100644 --- a/include/d/d_jnt_hit.h +++ b/include/d/d_jnt_hit.h @@ -80,7 +80,8 @@ public: /* 0x1C */ f32 m1C; /* 0x20 */ f32 m20; /* 0x24 */ f32 m24; -}; + /* 0x28 */ u8 m28[0x2C - 0x28]; +}; // Size: 0x2C JntHit_c* JntHit_create(J3DModel* model, __jnt_hit_data_c* jntHitData, s16 hitDataCount); diff --git a/include/d/d_lib.h b/include/d/d_lib.h index 5f0054fe4..b32edf6d1 100644 --- a/include/d/d_lib.h +++ b/include/d/d_lib.h @@ -3,8 +3,12 @@ #include "dolphin/types.h" #include "SSystem/SComponent/c_xyz.h" - -class mDoExt_McaMorf; +#include "dolphin/mtx/mtx.h" +#include "d/d_bg_s_acch.h" +#include "dolphin/gx/GXStruct.h" +#include "JSystem/J3DGraphAnimator/J3DModelData.h" +#include "m_Do/m_Do_ext.h" +#include "d/d_path.h" class STControl { public: @@ -41,6 +45,12 @@ public: /* 0x26 */ s16 field_0x26; }; +class CSTControl { +public: + void getValueStick(); + void getAngleStick(); +}; + class dLib_anm_prm_c { public: /* 0x00 */ s8 field_0x00; @@ -51,9 +61,30 @@ public: /* 0x0C */ u32 loopMode; }; -void dLib_bcks_setAnm(const char*, mDoExt_McaMorf*, s8*, s8*, s8*, const int*, const dLib_anm_prm_c*, bool); -bool dLib_checkPlayerInCircle(cXyz, f32, f32); +class dLib_circle_path_c; +class dLib_wave_c; +class dLib_anm_idx_c; +void dLib_setCirclePath(dLib_circle_path_c*); +void dLib_getWaterY(cXyz&, dBgS_ObjAcch&); +void dLib_waveRot(Vec*, f32, dLib_wave_c*); +void dLib_debugDrawAxis(Mtx&, f32); +void dLib_debugDrawFan(cXyz&, s16, s16, f32, const GXColor&); +void dLib_brkInit(J3DModelData*, mDoExt_brkAnm*, const char*, int); +void dLib_btkInit(J3DModelData*, mDoExt_btkAnm*, const char*, int); +void dLib_setAnm(const char*, mDoExt_McaMorf*, s8*, s8*, s8*, const dLib_anm_idx_c*, const dLib_anm_prm_c*, bool); +void dLib_bcks_setAnm(const char*, mDoExt_McaMorf*, s8*, s8*, s8*, const int*, const dLib_anm_prm_c*, bool); +void dLib_scaleAnime(f32*, f32*, int, int*, f32, f32, f32); +void dLib_getPosFromMtx(f32(*)[4], cXyz*); +void dLib_pathInfo(dPath**, u8); +void dLib_pathMove(cXyz*, s8*, dPath*, f32, int (*)(cXyz*, cXyz*, cXyz*, void*), void*); void dLib_setNextStageBySclsNum(u8, s8); +void dLib_setFirstMsg(u16, u32, u32); +bool dLib_checkPlayerInCircle(cXyz, f32, f32); +bool dLib_checkActorInCircle(cXyz, fopAc_ac_c*, f32, f32); +bool dLib_checkActorInFan(cXyz, fopAc_ac_c*, s16, s16, f32, f32); +void dLib_getIplDaysFromSaveTime(); +void dLib_get_QuatFromTriangle(cXyz*, cXyz*, cXyz*); +void dLib_calc_QuatFromTriangle(Quaternion*, f32, cXyz*, cXyz*, cXyz*); #endif /* D_LIB_H */ diff --git a/include/d/d_material.h b/include/d/d_material.h index 038902cd1..6e5687b6a 100644 --- a/include/d/d_material.h +++ b/include/d/d_material.h @@ -1,9 +1,17 @@ #ifndef D_MATERIAL_H #define D_MATERIAL_H +#include "dolphin/types.h" + +class J3DMaterialTable; +class J3DAnmTextureSRTKey; +class mDoExt_McaMorf; +class mDoExt_invisibleModel; + class dMat_ice_c { public: void play(); + void entryDL(mDoExt_McaMorf*, s8, mDoExt_invisibleModel*); }; class dMat_control_c { @@ -11,6 +19,10 @@ public: static void icePlay() { mIce->play(); } static void create(J3DMaterialTable*, J3DAnmTextureSRTKey*); + static void iceEntryDL(mDoExt_McaMorf* morf, s8 param_2, mDoExt_invisibleModel* invisModel) { + mIce->entryDL(morf, param_2, invisModel); + } + static dMat_ice_c* mIce; }; diff --git a/include/d/d_npc.h b/include/d/d_npc.h index ed26cf10a..1dc62cbda 100644 --- a/include/d/d_npc.h +++ b/include/d/d_npc.h @@ -34,13 +34,14 @@ public: }; class dNpc_JntCtrl_c { +public: /* 0x00 */ s16 mAngles[2][2]; // /* 0x00 */ s16 mHeadUpDownRot; // /* 0x02 */ s16 mHeadLeftRightRot; // /* 0x04 */ s16 mBackboneUpDownRot; // /* 0x06 */ s16 mBackboneLeftRightRot; - /* 0x08 */ u8 mHeadJntNum; - /* 0x09 */ u8 mBackboneJntNum; + /* 0x08 */ s8 mHeadJntNum; + /* 0x09 */ s8 mBackboneJntNum; /* 0x0A */ bool field_0x0A; /* 0x0B */ u8 field_0x0B; /* 0x0C */ u8 field_0x0C; @@ -68,24 +69,24 @@ public: field_0x0B = 0; } - void clrTrn() {} - void getBackboneJntNum() {} - void getBackbone_x() {} - void getBackbone_y() {} - void getHeadJntNum() {} - void getHead_x() {} - void getHead_y() {} - void offBackBoneLock() {} - void offHeadLock() {} - void onBackBoneLock() {} + s8 getHeadJntNum() { return mHeadJntNum; } + s8 getBackboneJntNum() { return mBackboneJntNum; } + void setHeadJntNum(s8 jnt) { mHeadJntNum = jnt; } + void setBackboneJntNum(s8 jnt) { mBackboneJntNum = jnt; } + int getHead_x() { return mAngles[0][0]; } + int getHead_y() { return mAngles[0][1]; } + int getBackbone_x() { return mAngles[1][0]; } + int getBackbone_y() { return mAngles[1][1]; } + void setHead_x(s16 angle) { mAngles[0][0] = angle; } + void setHead_y(s16 angle) { mAngles[0][1] = angle; } + void setBackBone_x(s16 angle) { mAngles[1][0] = angle; } + void setBackBone_y(s16 angle) { mAngles[1][1] = angle; } void onHeadLock() {} - void setBackBone_x(s16) {} - void setBackBone_y(s16) {} - void setBackboneJntNum(s8) {} - void setHeadJntNum(s8) {} - void setHead_x(s16) {} - void setHead_y(s16) {} + void onBackBoneLock() {} + void offHeadLock() {} + void offBackBoneLock() {} void setTrn() {} + void clrTrn() {} void trnChk() {} bool angCalcS(s16*, s16, s16, s16); diff --git a/src/d/actor/d_a_rd.cpp b/src/d/actor/d_a_rd.cpp index acbe3c520..007ff6a6a 100644 --- a/src/d/actor/d_a_rd.cpp +++ b/src/d/actor/d_a_rd.cpp @@ -8,6 +8,10 @@ #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "d/d_com_inf_game.h" +#include "m_Do/m_Do_mtx.h" +#include "d/d_lib.h" +#include "d/d_material.h" +#include "d/d_snap.h" // Needed for the .data section to match. static Vec dummy1 = {1.0f, 1.0f, 1.0f}; @@ -15,6 +19,8 @@ static Vec dummy2 = {1.0f, 1.0f, 1.0f}; static u8 dummy3[4] = {0x02, 0x00, 0x02, 0x01}; static f64 dummy4[2] = {3.0, 0.5}; +static u8 dummy5[0x4C]; + static daRd_HIO_c l_HIO; const u32 daRd_c::m_heapsize = 0x2520; @@ -160,7 +166,27 @@ static BOOL nodeControl_CB(J3DNode* node, int param_1) { /* 00000358-00000514 .text _nodeControl__6daRd_cFP7J3DNodeP8J3DModel */ BOOL daRd_c::_nodeControl(J3DNode* node, J3DModel* model) { - /* Nonmatching */ + J3DJoint* joint = static_cast(node); + int jntNo = joint->getJntNo(); + cMtx_copy(model->getAnmMtx(jntNo), mDoMtx_stack_c::get()); + + if (mJntCtrl.getHeadJntNum() == jntNo) { + static cXyz l_offsetAttPos(0.0f, 0.0f, 0.0f); + static cXyz l_offsetEyePos(24.0f, -16.0f, 0.0f); + mDoMtx_stack_c::multVec(&l_offsetAttPos, &mCC4); + mDoMtx_stack_c::XrotM(mJntCtrl.getHead_y()); + mDoMtx_stack_c::ZrotM(mJntCtrl.getHead_x()); + mDoMtx_stack_c::multVec(&l_offsetEyePos, &mCD0); + mDoMtx_stack_c::XrotM(mD1A); + mDoMtx_stack_c::ZrotM(mD1C); + mDoMtx_stack_c::YrotM(mD1E); + } else if (mJntCtrl.getBackboneJntNum() == jntNo) { + mDoMtx_stack_c::XrotM(mJntCtrl.getBackbone_y()); + mDoMtx_stack_c::ZrotM(mJntCtrl.getBackbone_x()); + } + + cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + model->setAnmMtx(jntNo, mDoMtx_stack_c::get()); } /* 00000550-0000059C .text nodeHeadControl_CB__FP7J3DNodei */ @@ -177,7 +203,24 @@ static BOOL nodeHeadControl_CB(J3DNode* node, int param_1) { /* 0000059C-000006A0 .text _nodeHeadControl__6daRd_cFP7J3DNodeP8J3DModel */ BOOL daRd_c::_nodeHeadControl(J3DNode* node, J3DModel* model) { - /* Nonmatching */ + J3DJoint* joint = static_cast(node); + int jntNo = joint->getJntNo(); + + cXyz temp4(mD38, 0.0f, 0.0f); + cMtx_copy(model->getAnmMtx(jntNo), mDoMtx_stack_c::get()); + mDoMtx_stack_c::transM(temp4); + + cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + cXyz temp3(0.0f, 0.0f, 50.0f); + mDoMtx_stack_c::multVec(&temp3, &mCD0); + model->setAnmMtx(jntNo, mDoMtx_stack_c::get()); + cMtx_copy(mDoMtx_stack_c::get(), mCE8); + + Mtx mtx; + csXyz angle; + mDoMtx_inverseTranspose(mDoMtx_stack_c::get(), mtx); + mDoMtx_MtxToRot(mtx, &angle); + mD18 = angle.y; } /* 000006A0-000006C0 .text createHeap_CB__FP10fopAc_ac_c */ @@ -387,13 +430,13 @@ bool daRd_c::createArrowHeap() { } /* 000009D0-00000A38 .text checkPlayerInAttack__6daRd_cFv */ -void daRd_c::checkPlayerInAttack() { - /* Nonmatching */ +bool daRd_c::checkPlayerInAttack() { + return dLib_checkActorInFan(current.pos, dComIfGp_getLinkPlayer(), shape_angle.y, l_HIO.m44, l_HIO.m3C, 100.0f); } /* 00000A38-00000AA0 .text checkPlayerInCry__6daRd_cFv */ -void daRd_c::checkPlayerInCry() { - /* Nonmatching */ +bool daRd_c::checkPlayerInCry() { + return dLib_checkActorInFan(current.pos, dComIfGp_getLinkPlayer(), mD18, l_HIO.m42, l_HIO.m38, 100.0f); } /* 00000AA0-00000D78 .text lookBack__6daRd_cFv */ @@ -469,7 +512,9 @@ void daRd_c::modeParalysis() { /* 000021F0-0000223C .text modeMoveInit__6daRd_cFv */ void daRd_c::modeMoveInit() { - /* Nonmatching */ + if (m2B4 == 1 && (m6D9 == 2 || m6D9 == 0xA)) { + setAnm(9, false); + } } /* 0000223C-000024B0 .text modeMove__6daRd_cFv */ @@ -538,17 +583,26 @@ void daRd_c::modeSwWaitInit() { /* 00003428-00003480 .text modeSwWait__6daRd_cFv */ void daRd_c::modeSwWait() { - /* Nonmatching */ + if (dComIfGs_isSwitch(mSwNo, current.roomNo)) { + modeProcInit(MODE_KANOKE); + } } /* 00003480-00003514 .text modeKanokeInit__6daRd_cFv */ void daRd_c::modeKanokeInit() { - /* Nonmatching */ + setAnm(0xB, false); + m310 = 90; + cXyz offset(0.0f, 0.0f, 150.0f); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::YrotM(shape_angle.y); + mDoMtx_stack_c::multVec(&offset, &m300); } /* 00003514-0000355C .text modeKanoke__6daRd_cFv */ void daRd_c::modeKanoke() { - /* Nonmatching */ + if (cLib_calcTimer(&m310) == 0) { + modeProcInit(MODE_RETURN); + } } /* 0000355C-000038D4 .text modeProc__6daRd_cFQ26daRd_c6Proc_ei */ @@ -657,9 +711,51 @@ void daRd_c::setBtkAnm(s8) { /* Nonmatching */ } +const int a_anm_bcks_tbl[] = { + RD_BCK_TACHIP, + RD_BCK_SUWARIP, + RD_BCK_WALK2ATACK, + RD_BCK_ATACK, + RD_BCK_ATACK2WALK, + RD_BCK_WALK, + RD_BCK_DAMAGE, + RD_BCK_DEAD, + RD_BCK_TATSU, + RD_BCK_SUWARU, + RD_BCK_KANOKEP, + RD_BCK_BEAM_HIT, + RD_BCK_BEAM, + RD_BCK_BEAM_END, +}; +const dLib_anm_prm_c a_anm_prm_tbl[] = { + { + // TODO + }, +}; + /* 00003B3C-00003C48 .text setAnm__6daRd_cFScb */ -void daRd_c::setAnm(s8, bool) { - /* Nonmatching */ +void daRd_c::setAnm(s8 param_1, bool param_2) { + if (param_1 != 0xF) { + m6D9 = param_1; + } + + if (m6DA != m6D9) { + if (m6D9 == 0xC) { + setBrkAnm(0x1); + } else if (m6D9 == 0xD) { + setBrkAnm(0x2); + } else if (m6D9 == 0xE) { + setBrkAnm(0x3); + } else { + setBrkAnm(0x0); + } + } + + if (m6D8 == 0xB || m6D8 == 0xC || m6D8 == 0xD) { + mBrkAnm.setFrame(mpMorf->getFrame()); + } + + dLib_bcks_setAnm(m_arc_name, mpMorf, &m6D8, &m6D9, &m6DA, a_anm_bcks_tbl, a_anm_prm_tbl, param_2); } /* 00003C48-000040A8 .text _execute__6daRd_cFv */ @@ -675,6 +771,38 @@ void daRd_c::debugDraw() { /* 000041A8-00004318 .text _draw__6daRd_cFv */ bool daRd_c::_draw() { /* Nonmatching */ + if (mMode == 0xA) { + return true; + } + + if (l_HIO.m2C != 0) { + debugDraw(); + } + + J3DModel* model = mpMorf->getModel(); + J3DModelData* modelData = model->getModelData(); + g_env_light.setLightTevColorType(model, &mTevStr); + + if (mEnemyIce.mFreezeTimer > 20) { + dMat_control_c::iceEntryDL(mpMorf, -1, &mInvisModel); + } else { + mBrkAnm.entry(modelData); + mBtkAnm.entry(modelData); + mpMorf->updateDL(); + mBtkAnm.remove(modelData); + mBrkAnm.remove(modelData); + } + + cXyz shadowPos(current.pos.x, current.pos.y + 150.0f, current.pos.z); + mShadowId = dComIfGd_setShadow( + mShadowId, 1, mpMorf->getModel(), &shadowPos, 800.0f, 40.0f, + current.pos.y, mAcch.GetGroundH(), mAcch.m_gnd, &mTevStr, + 0, 1.0f, dDlst_shadowControl_c::getSimpleTex() + ); + + dSnap_RegistFig(0xB9, this, 1.0f, 1.0f, 1.0f); + + return true; } /* 00004318-00004338 .text isLinkControl__6daRd_cFv */ @@ -685,17 +813,93 @@ bool daRd_c::isLinkControl() { /* 00004338-000046A4 .text createInit__6daRd_cFv */ void daRd_c::createInit() { /* Nonmatching */ + mStts.Init(0xFF, 0, this); + mCyl.Set(m_cyl_src); + mCyl.SetStts(&mStts); + mAcchCir.SetWall(30.0f, 30.0f); + mAcch.Set(&fopAcM_GetPosition_p(this), &fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, &fopAcM_GetSpeed_p(this), NULL, NULL); + mAcch.SetRoofNone(); + J3DModelData* modelData = mpMorf->getModel()->getModelData(); + mJntCtrl.setHeadJntNum(0x0A); + mJntCtrl.setBackboneJntNum(0x08); + modelData->getJointNodePointer(0x0A)->setCallBack(nodeControl_CB); + modelData->getJointNodePointer(0x08)->setCallBack(nodeControl_CB); + setBtkAnm(2); + + if (m2BC == 0) { + modeProcInit(MODE_SW_WAIT); + cXyz offset(0.0f, 40.0f, 10.0f); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::YrotM(shape_angle.y); + mDoMtx_stack_c::multVec(&offset, ¤t.pos); + } else { + modeProcInit(MODE_WAIT); + switch (m2B4) { + case 0: + setAnm(1, false); + break; + case 1: + setAnm(2, false); + break; + } + } + + setBrkAnm(0); + setMtx(); + mBtkAnm.play(); + mBrkAnm.play(); + mpMorf->play(¤t.pos, 0, 0); + mBrkAnm.setFrame(0.0f); + mpMorf->calc(); + g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr); + fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -100.0f, -10.0f, -100.0f, 100.0f, 250.0f, 150.0f); + + mD3C = 1; + mD40 = 1; + mItemStealLeft = 5; + + mEnemyFire.mpMcaMorf = mpMorf; + mEnemyFire.mpActor = this; + static u8 fire_j[ARRAY_SIZE(mEnemyFire.mFlameJntIdxs)] = { + 0x0C, 0x01, 0x0F, 0x11, 0x13, 0x15, 0x02, 0x04, 0x05, 0x07, + }; + static f32 fire_sc[ARRAY_SIZE(mEnemyFire.mParticleScale)] = { + 2.0f, 2.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, + }; + for (int i = 0; i < ARRAY_SIZE(mEnemyFire.mFlameJntIdxs); i++) { + mEnemyFire.mFlameJntIdxs[i] = fire_j[i]; + mEnemyFire.mParticleScale[i] = fire_sc[i]; + } + + mEnemyIce.mpActor = this; + mEnemyIce.m00C = 1; + mEnemyIce.mWallRadius = 50.0f; + mEnemyIce.mCylHeight = 250.0f; + + mMaxHealth = l_HIO.m46; + mHealth = mMaxHealth; + m300 = current.pos; + m30C = shape_angle.y; + mGravity = -4.5f; + + if (m2B4 == 0) { + mItemTableIdx = dComIfGp_CharTbl()->GetNameIndex("Rdead1", 0); + } + if (m2B4 == 1) { + mItemTableIdx = dComIfGp_CharTbl()->GetNameIndex("Rdead2", 0); + } } /* 000046A4-00004720 .text getArg__6daRd_cFv */ void daRd_c::getArg() { - /* Nonmatching */ u32 params = fopAcM_GetParam(this); m2B4 = fopAcM_GetParamBit(params, 0x00, 1); - int areaRadius = fopAcM_GetParamBit(params, 0x01, 7); + u8 param = fopAcM_GetParamBit(params, 0x01, 7); + s32 areaRadius = param; m2BC = fopAcM_GetParamBit(params, 0x08, 8); mSwNo = fopAcM_GetParamBit(params, 0x18, 8); - if (areaRadius == 0x7F) { + if ((s32)param == 0x7F) { areaRadius = 0; } mAreaRadius = l_HIO.m30 + areaRadius; diff --git a/src/d/d_lib.cpp b/src/d/d_lib.cpp index f1f9296f3..e72778331 100644 --- a/src/d/d_lib.cpp +++ b/src/d/d_lib.cpp @@ -3,8 +3,7 @@ // Translation Unit: d_lib.cpp // -#include "d_lib.h" -#include "dolphin/types.h" +#include "d/d_lib.h" /* 80057000-800570CC .text dLib_setCirclePath__FP18dLib_circle_path_c */ void dLib_setCirclePath(dLib_circle_path_c*) { @@ -17,17 +16,17 @@ void dLib_getWaterY(cXyz&, dBgS_ObjAcch&) { } /* 8005716C-80057368 .text dLib_waveRot__FP3VecfP11dLib_wave_c */ -void dLib_waveRot(Vec*, float, dLib_wave_c*) { +void dLib_waveRot(Vec*, f32, dLib_wave_c*) { /* Nonmatching */ } /* 80057368-8005746C .text dLib_debugDrawAxis__FRA3_A4_ff */ -void dLib_debugDrawAxis(float(&)[3][4], float) { +void dLib_debugDrawAxis(Mtx&, f32) { /* Nonmatching */ } /* 8005746C-80057510 .text dLib_debugDrawFan__FR4cXyzssfRC8_GXColor */ -void dLib_debugDrawFan(cXyz&, short, short, float, const _GXColor&) { +void dLib_debugDrawFan(cXyz&, s16, s16, f32, const GXColor&) { /* Nonmatching */ } @@ -42,67 +41,67 @@ void dLib_btkInit(J3DModelData*, mDoExt_btkAnm*, const char*, int) { } /* 800576B0-80057844 .text dLib_setAnm__FPCcP14mDoExt_McaMorfPScPScPScPC14dLib_anm_idx_cPC14dLib_anm_prm_cb */ -void dLib_setAnm(const char*, mDoExt_McaMorf*, signed char*, signed char*, signed char*, const dLib_anm_idx_c*, const dLib_anm_prm_c*, bool) { +void dLib_setAnm(const char*, mDoExt_McaMorf*, s8*, s8*, s8*, const dLib_anm_idx_c*, const dLib_anm_prm_c*, bool) { /* Nonmatching */ } /* 80057844-80057988 .text dLib_bcks_setAnm__FPCcP14mDoExt_McaMorfPScPScPScPCiPC14dLib_anm_prm_cb */ -void dLib_bcks_setAnm(const char*, mDoExt_McaMorf*, signed char*, signed char*, signed char*, const int*, const dLib_anm_prm_c*, bool) { +void dLib_bcks_setAnm(const char*, mDoExt_McaMorf*, s8*, s8*, s8*, const int*, const dLib_anm_prm_c*, bool) { /* Nonmatching */ } /* 80057988-80057A14 .text dLib_scaleAnime__FPfPfiPifff */ -void dLib_scaleAnime(float*, float*, int, int*, float, float, float) { +void dLib_scaleAnime(f32*, f32*, int, int*, f32, f32, f32) { /* Nonmatching */ } /* 80057A14-80057A30 .text dLib_getPosFromMtx__FPA4_fP4cXyz */ -void dLib_getPosFromMtx(float(*)[4], cXyz*) { +void dLib_getPosFromMtx(MtxP, cXyz*) { /* Nonmatching */ } /* 80057A30-80057AA4 .text dLib_pathInfo__FPP5dPathUc */ -void dLib_pathInfo(dPath**, unsigned char) { +void dLib_pathInfo(dPath**, u8) { /* Nonmatching */ } /* 80057AA4-80057D1C .text dLib_pathMove__FP4cXyzPScP5dPathfPFP4cXyzP4cXyzP4cXyzPv_iPv */ -void dLib_pathMove(cXyz*, signed char*, dPath*, float, int (*)(cXyz*, cXyz*, cXyz*, void*), void*) { +void dLib_pathMove(cXyz*, s8*, dPath*, f32, int (*)(cXyz*, cXyz*, cXyz*, void*), void*) { /* Nonmatching */ } /* 80057D1C-80057EC0 .text dLib_setNextStageBySclsNum__FUcSc */ -void dLib_setNextStageBySclsNum(unsigned char, signed char) { +void dLib_setNextStageBySclsNum(u8, s8) { /* Nonmatching */ } /* 80057EC0-80057F30 .text dLib_setFirstMsg__FUsUlUl */ -void dLib_setFirstMsg(unsigned short, unsigned long, unsigned long) { +void dLib_setFirstMsg(u16, u32, u32) { /* Nonmatching */ } /* 80057F30-80057F78 .text dLib_checkPlayerInCircle__F4cXyzff */ -void dLib_checkPlayerInCircle(cXyz, float, float) { +bool dLib_checkPlayerInCircle(cXyz, f32, f32) { /* Nonmatching */ } /* 80057F78-80058098 .text dLib_checkActorInCircle__F4cXyzP10fopAc_ac_cff */ -void dLib_checkActorInCircle(cXyz, fopAc_ac_c*, float, float) { +bool dLib_checkActorInCircle(cXyz, fopAc_ac_c*, f32, f32) { /* Nonmatching */ } /* 80058098-8005820C .text dLib_checkActorInFan__F4cXyzP10fopAc_ac_cssff */ -void dLib_checkActorInFan(cXyz, fopAc_ac_c*, short, short, float, float) { +bool dLib_checkActorInFan(cXyz, fopAc_ac_c*, s16, s16, f32, f32) { /* Nonmatching */ } /* 8005820C-80058250 .text __ct__9STControlFssssffss */ -STControl::STControl(short, short, short, short, float, float, short, short) { +STControl::STControl(s16, s16, s16, s16, f32, f32, s16, s16) { /* Nonmatching */ } /* 80058250-80058274 .text setWaitParm__9STControlFssssffss */ -void STControl::setWaitParm(short, short, short, short, float, float, short, short) { +void STControl::setWaitParm(s16, s16, s16, s16, f32, f32, s16, s16) { /* Nonmatching */ } @@ -142,27 +141,27 @@ void CSTControl::getAngleStick() { } /* 80058340-800585D0 .text checkTrigger__9STControlFv */ -void STControl::checkTrigger() { +bool STControl::checkTrigger() { /* Nonmatching */ } /* 800585D0-8005863C .text checkLeftTrigger__9STControlFv */ -void STControl::checkLeftTrigger() { +bool STControl::checkLeftTrigger() { /* Nonmatching */ } /* 8005863C-800586A8 .text checkRightTrigger__9STControlFv */ -void STControl::checkRightTrigger() { +bool STControl::checkRightTrigger() { /* Nonmatching */ } /* 800586A8-80058714 .text checkUpTrigger__9STControlFv */ -void STControl::checkUpTrigger() { +bool STControl::checkUpTrigger() { /* Nonmatching */ } /* 80058714-80058780 .text checkDownTrigger__9STControlFv */ -void STControl::checkDownTrigger() { +bool STControl::checkDownTrigger() { /* Nonmatching */ } @@ -177,7 +176,7 @@ void dLib_get_QuatFromTriangle(cXyz*, cXyz*, cXyz*) { } /* 80058910-800589A8 .text dLib_calc_QuatFromTriangle__FP10QuaternionfP4cXyzP4cXyzP4cXyz */ -void dLib_calc_QuatFromTriangle(Quaternion*, float, cXyz*, cXyz*, cXyz*) { +void dLib_calc_QuatFromTriangle(Quaternion*, f32, cXyz*, cXyz*, cXyz*) { /* Nonmatching */ }