diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2023-02-05 06:52:14 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-05 06:52:14 +0200 |
| commit | 1124554ae104b23f052fe57652f42a0d5689286d (patch) | |
| tree | 8b8d079b8f0b271671934ba97912b8ebc818186b /include | |
| parent | 0f1c72772500a2098c81ef34c0bee41d0df4063e (diff) | |
| parent | cede55ba30101ba7cadba9766adbd41eb76b6f36 (diff) | |
Merge pull request #269 from Pheenoh/d_a_do
d_a_do work
Diffstat (limited to 'include')
| -rw-r--r-- | include/JSystem/J3DGraphAnimator/J3DModel.h | 1 | ||||
| -rw-r--r-- | include/JSystem/JParticle/JPAParticle.h | 4 | ||||
| -rw-r--r-- | include/d/bg/d_bg_s_acch.h | 8 | ||||
| -rw-r--r-- | include/d/msg/d_msg_flow.h | 1 | ||||
| -rw-r--r-- | include/f_pc/f_pc_executor.h | 6 | ||||
| -rw-r--r-- | include/m_Do/m_Do_ext.h | 1 | ||||
| -rw-r--r-- | include/m_Do/m_Do_mtx.h | 16 | ||||
| -rw-r--r-- | include/rel/d/a/d_a_do/d_a_do.h | 192 |
8 files changed, 223 insertions, 6 deletions
diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h index 2211663f84..3c20380ef5 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModel.h +++ b/include/JSystem/J3DGraphAnimator/J3DModel.h @@ -84,6 +84,7 @@ public: // is there a better way to handle inlines with same name as non-inlines? MtxP i_getAnmMtx(int p1) { return mMtxBuffer->getAnmMtx(p1); } + void i_setAnmMtx(int p1, Mtx mtx) { mMtxBuffer->setAnmMtx(p1, mtx); } /* 0x04 */ J3DModelData* mModelData; /* 0x08 */ u32 mFlags; diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h index 6c5e7a8506..f1a04a8d86 100644 --- a/include/JSystem/JParticle/JPAParticle.h +++ b/include/JSystem/JParticle/JPAParticle.h @@ -237,6 +237,10 @@ public: void setRate(f32 rate) { mRate = rate; } void setEmitterCallBackPtr(JPAEmitterCallBack* ptr) { mpEmtrCallBack = ptr; } void setGlobalRTMatrix(const Mtx m) { JPASetRMtxTVecfromMtx(m, mGlobalRot, &mGlobalTrs); } + // void setGlobalScale(const JGeometry::TVec3<f32>& scale) { + // mGlobalScl = scale; + // mGlobalPScl = scale; + // } f32 get_r_f() { return mRndm.get_rndm_f(); } f32 get_r_zp() { return mRndm.get_rndm_zp(); } diff --git a/include/d/bg/d_bg_s_acch.h b/include/d/bg/d_bg_s_acch.h index a00f1768ae..5b7f637866 100644 --- a/include/d/bg/d_bg_s_acch.h +++ b/include/d/bg/d_bg_s_acch.h @@ -38,7 +38,11 @@ public: /* 80075F58 */ void SetWall(f32, f32); /* 80075F80 */ void SetWallHDirect(f32); + #ifdef __dt__12dBgS_AcchCirFv_DEFINED /* 80077414 */ virtual ~dBgS_AcchCir(); + #else + /* 80077414 */ virtual ~dBgS_AcchCir() {} + #endif f32 GetWallH() { return m_wall_h; } f32 GetWallR() { return m_wall_r; } @@ -108,7 +112,7 @@ public: /* 800D00DC */ void ClrGroundHit(); /* 80141404 */ bool ChkGroundHit() const; - /* 80075F94 */ virtual ~dBgS_Acch(); + /* 80075F94 */ virtual ~dBgS_Acch() {} cXyz* GetPos() { return pm_pos; } cXyz* GetOldPos() { return pm_old_pos; } @@ -205,7 +209,7 @@ public: SetObj(); } - /* 80BB336C */ virtual ~dBgS_ObjAcch(); + /* 80BB336C */ virtual ~dBgS_ObjAcch() {} }; class dBgS_StatueAcch : public dBgS_Acch { diff --git a/include/d/msg/d_msg_flow.h b/include/d/msg/d_msg_flow.h index 1e0b907502..378fb187a1 100644 --- a/include/d/msg/d_msg_flow.h +++ b/include/d/msg/d_msg_flow.h @@ -160,6 +160,7 @@ public: void onNonStopJunpFlowFlag() { mNonStopJunpFlowFlag = 1; } int getSelectNum() { return query005(NULL, NULL, 0); } s16 getChoiceNo() { return mChoiceNo; } + void setMsg(u32 msg) { mMsg = msg; } static queryFunc mQueryList[53]; static eventFunc mEventList[43]; diff --git a/include/f_pc/f_pc_executor.h b/include/f_pc/f_pc_executor.h index 3a0390d7e1..d3999bf46f 100644 --- a/include/f_pc/f_pc_executor.h +++ b/include/f_pc/f_pc_executor.h @@ -16,9 +16,9 @@ s32 fpcEx_Execute(base_process_class* pProc); s32 fpcEx_ToExecuteQ(base_process_class* pProc); void fpcEx_Handler(fpcLnIt_QueueFunc pFunc); -// inline base_process_class* fpcM_Search(fpcLyIt_JudgeFunc pFunc, void* pUserData) { -// return fpcEx_Search(pFunc, pUserData); -// } +inline base_process_class* i_fpcM_Search(fpcLyIt_JudgeFunc pFunc, void* pUserData) { + return fpcEx_Search(pFunc, pUserData); +} extern "C" { void fpcEx_IsExist__FUi(void); diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index 3f9d17c756..faa63921f4 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -20,6 +20,7 @@ public: f32 getFrame() { return mFrameCtrl.getFrame(); } f32 getEndFrame() { return mFrameCtrl.getEnd(); } void setFrame(f32 frame) { mFrameCtrl.setFrame(frame); } + bool isStop() { bool stopped = true; if (!mFrameCtrl.checkState(1) && mFrameCtrl.getRate() != 0.0f) { diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index f4829044d0..a2612c2498 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -15,8 +15,9 @@ void mDoMtx_ZXYrotM(Mtx, s16, s16, s16); void mDoMtx_ZrotS(Mtx, s16); void mDoMtx_YrotS(Mtx, s16); void mDoMtx_XrotS(Mtx, s16); -void mDoMtx_XrotM(Mtx mtx, s16 x); +void mDoMtx_XrotM(Mtx, s16); void mDoMtx_YrotM(Mtx, s16); +void mDoMtx_ZrotM(Mtx, s16); void mDoMtx_MtxToRot(CMtxP, csXyz*); void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, s16 param_3); void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, Vec const* param_3, @@ -40,6 +41,19 @@ inline void mDoMtx_trans(Mtx m, f32 x, f32 y, f32 z) { PSMTXTrans(m, x, y, z); } +inline void cMtx_XrotM(Mtx mtx, s16 x) { + mDoMtx_XrotM(mtx, x); +} + +inline void cMtx_YrotM(Mtx mtx, s16 y) { + mDoMtx_YrotM(mtx, y); +} + +inline void cMtx_ZrotM(Mtx mtx, s16 z) { + mDoMtx_ZrotM(mtx, z); +} + + inline void mDoMtx_multVecZero(MtxP param_0, Vec* param_1) { param_1->x = param_0[0][3]; param_1->y = param_0[1][3]; diff --git a/include/rel/d/a/d_a_do/d_a_do.h b/include/rel/d/a/d_a_do/d_a_do.h index d957b0c775..aa58cbabff 100644 --- a/include/rel/d/a/d_a_do/d_a_do.h +++ b/include/rel/d/a/d_a_do/d_a_do.h @@ -2,5 +2,197 @@ #define D_A_DO_H #include "dolphin/types.h" +#include "d/a/d_a_player.h" +#include "d/a/d_a_item_static.h" +#include "d/bg/d_bg_s_acch.h" +#include "d/cc/d_cc_d.h" +#include "d/msg/d_msg_flow.h" +#include "d/particle/d_particle.h" +#include "f_op/f_op_actor.h" +#include "m_Do/m_Do_mtx.h" +#include "m_Do/m_Do_ext.h" +#include "m_Do/m_Do_controller_pad.h" +#include "JSystem/J3DGraphAnimator/J3DAnimation.h" +#include "SSystem/SComponent/c_phase.h" +#include "Z2AudioLib/Z2SoundObject.h" + +enum daDo_Anm { + ANM_BULBUL = 6, + ANM_CARRY_B, + ANM_CLIFF, + ANM_CLIFF_WT, + ANM_DEFEND, + ANM_DOWN, + ANM_DOWN_WT, + ANM_JOYFUL, + ANM_RUN, + ANM_SIT, + ANM_SIT_WAIT, + ANM_STEP, + ANM_STEP_2, + ANM_SWIM, + ANM_TO_CARRY_B, + ANM_WAIT, + ANM_WALK +}; + +enum daDo_Action { + ACT_STAY, + ACT_WALK, + ACT_WALK_RUN, + ACT_RUN, + ACT_RUN_WALK, + ACT_FOOD, + ACT_WAIT_1, + ACT_WAIT_2, + ACT_SIT, + ACT_A_SWIM = 10, + ACT_SWIM = 20, + ACT_HELP, + ACT_BOAT, + ACT_HANG = 30, + ACT_CARRY = 35, + ACT_MESSAGE = 39 +}; + +struct daDo_HIO_tmp { + /* 0x00 */ u8 field_0x00[4]; + /* 0x04 */ s8 field_0x04; + /* 0x05 */ u8 field_0x05[3]; + /* 0x08 */ f32 mBaseSize; + /* 0x0C */ f32 mWalkSpeed; + /* 0x10 */ f32 mRunSpeed; + /* 0x14 */ f32 mSwimSpeed; + /* 0x18 */ f32 mPlayerRecogniztionDist; + /* 0x1C */ u8 field_0x1c; + /* 0x1D */ u8 mSwimming; + /* 0x1E */ u16 mWaterHuntAnimType; +}; + +class daDo_HIO_c { +public: +/* 80667D4C */ daDo_HIO_c(); +/* 8066ED40 */ virtual ~daDo_HIO_c(); + +public: +/* 0x04 */ s8 field_0x04; +/* 0x05 */ u8 field_0x05[3]; +/* 0x08 */ f32 mBaseSize; +/* 0x0C */ f32 mWalkSpeed; +/* 0x10 */ f32 mRunSpeed; +/* 0x14 */ f32 mSwimSpeed; +/* 0x18 */ f32 mPlayerRecogniztionDist; +/* 0x1C */ u8 field_0x1c; +/* 0x1D */ u8 mSwimming; +/* 0x1E */ u16 mWaterHuntAnimType; +}; + +class do_class : public fopEn_enemy_c { +public: + /* 0x5AC */ request_of_phase_process_class mPhase; + /* 0x5B4 */ u8 field_0x5b4; + /* 0x5B5 */ u8 field_0x5b5; + /* 0x5B6 */ u8 field_0x5b6; + /* 0x5B7 */ u8 field_0x5b7; + /* 0x5B8 */ cXyz field_0x5b8; + /* 0x5C4 */ u8 field_0x5c4[4]; + /* 0x5C8 */ f32 mDistFromPlayer; + /* 0x5CC */ s16 mAngleYFromPlayer; + /* 0x5CE */ u8 field_0x5ce[2]; + /* 0x5D8 */ mDoExt_McaMorf* mpMorf; + /* 0x5D4 */ mDoExt_btkAnm* mpBtk; + /* 0x5D8 */ mDoExt_btpAnm* mpBtp; + /* 0x5DC */ s8 field_0x5dc; + /* 0x5DD */ u8 field_0x5dd; + /* 0x5DE */ s16 field_0x5de; + /* 0x5E0 */ s16 field_0x5e0; + /* 0x5E2 */ u8 field_0x5e2; + /* 0x5E3 */ u8 field_0x5e3; + /* 0x5E4 */ u32 mAnmID; + /* 0x5E8 */ f32 field_0x5e8; + /* 0x5EC */ f32 field_0x5ec; + /* 0x5F0 */ s16 field_0x5f0; + /* 0x5F2 */ s16 mAction; + /* 0x5F4 */ s16 field_0x5f4; + /* 0x5F6 */ s16 mStayStatus; // probably a better name for this + /* 0x5F8 */ u32 mShadowKey; + /* 0x5FC */ s16 field_0x5fc[4]; + /* 0x604 */ u16 field_0x604; + /* 0x606 */ s16 field_0x606; + /* 0x608 */ f32 field_0x608; + /* 0x60C */ s16 field_0x60c; + /* 0x60E */ csXyz field_0x60e; + /* 0x614 */ s16 field_0x614; + /* 0x616 */ u8 field_0x616; + /* 0x617 */ u8 field_0x617; + /* 0x618 */ cXyz mUnkPos; // something to do with the dog's eye position + /* 0x624 */ s16 field_0x624; + /* 0x626 */ csXyz field_0x626; + /* 0x62C */ u8 field_0x62c[18]; + /* 0x63E */ csXyz field_0x63e; + /* 0x644 */ f32 field_0x644; + /* 0x648 */ f32 field_0x648; + /* 0x64C */ f32 field_0x64c; + /* 0x650 */ f32 field_0x650; + /* 0x654 */ s16 field_0x654; + /* 0x656 */ s16 field_0x656; + /* 0x658 */ f32 mEyePosYDistFromPlayer; + /* 0x65C */ f32 field_0x65c; + /* 0x660 */ s16 field_0x660; + /* 0x662 */ u8 field_0x662[2]; + /* 0x664 */ cXyz field_0x664; + /* 0x670 */ f32 field_0x670; + /* 0x674 */ cXyz field_0x674; + /* 0x680 */ u32 mItemActorID; + /* 0x684 */ u32 mFoodActorID; + /* 0x688 */ u8 field_0x688; + /* 0x689 */ u8 field_0x689; + /* 0x68A */ u8 field_0x68a; + /* 0x68B */ u8 field_0x68b; + /* 0x68C */ cXyz field_0x68c; + /* 0x698 */ cXyz field_0x698; + /* 0x6A4 */ u8 field_0x6a4[10]; + /* 0x6AE */ s8 field_0x6ae; + /* 0x6B0 */ s16 field_0x6b0; + /* 0x6B2 */ u8 field_0x6b2[2]; + /* 0x6B4 */ f32 field_0x6b4; + /* 0x6B8 */ u8 field_0x6b8; + /* 0x6B9 */ u8 field_0x6b9[3]; + /* 0x6BC */ dBgS_AcchCir mBgS_AcchCir; + /* 0x6FC */ dBgS_ObjAcch mBgS_Acch; + /* 0x8D4 */ dCcD_Stts mStts; + /* 0x910 */ dCcD_Sph mCcSph1; + /* 0xA48 */ dCcD_Sph mCcSph2; + /* 0xB80 */ cXyz field_0xb80; + /* 0xB8C */ cXyz field_0xb8c; + /* 0xB98 */ cXyz field_0xb98; + /* 0xBA4 */ cXyz field_0xba4; + /* 0xBB0 */ cXyz field_0xbb0; + /* 0xBBC */ cXyz field_0xbbc; + /* 0xBC8 */ u8 field_0xb4c[4]; + /* 0xBCC */ u32 field_0xbcc; + /* 0xBD0 */ u8 field_0xbd0[4]; + /* 0xBD4 */ u32 field_0xbd4[4]; + /* 0xBE4 */ Z2SoundObjSimple mSound; + /* 0xC04 */ u8 field_0xc04; + /* 0xC05 */ s8 field_0xc05; + /* 0xC06 */ s16 field_0xc06; + /* 0xC08 */ s16 field_0xc08; + /* 0xC0A */ u8 field_0xc0a[2]; + /* 0xC0C */ dMsgFlow_c mMsg; + /* 0xC58 */ u8 field_0xc58[40]; + /* 0xC80 */ u8 field_0xc80; + /* 0xC81 */ u8 field_0xc81[3]; + /* 0xC84 */ cXyz field_0xc84; + /* 0xC90 */ cXyz field_0xc90; + /* 0xC9C */ cXyz field_0xc9c; + /* 0xCA8 */ cXyz field_0xca8; + /* 0xCB4 */ cXyz field_0xcb4; + /* 0xCC0 */ u8 field_0xcc0; + +public: + /* 8066EAE4 */ do_class(); + +}; #endif /* D_A_DO_H */ |
