diff options
| author | robojumper <robojumper@gmail.com> | 2025-11-09 14:56:31 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-09 14:56:31 +0100 |
| commit | cd4f0d74de1e285ed9dbc37bca4cb32bba5b12cb (patch) | |
| tree | 3f544bde578447e4a967d7c79ae3598d45f3dc05 /include | |
| parent | 9711767bf78c050cef43a053a685538b26a4f2ea (diff) | |
| parent | e911d7ce67b7877768ef5fcd43f60c065f2fe52e (diff) | |
Merge pull request #261 from swekka/d_a_obj_grave
d_a_obj_grave OK
Diffstat (limited to 'include')
| -rw-r--r-- | include/c/c_lib.h | 1 | ||||
| -rw-r--r-- | include/d/a/obj/d_a_obj_grave.h | 43 | ||||
| -rw-r--r-- | include/d/col/bg/d_bg_w.h | 3 | ||||
| -rw-r--r-- | include/d/d_player_act.h | 4 |
4 files changed, 50 insertions, 1 deletions
diff --git a/include/c/c_lib.h b/include/c/c_lib.h index 6cba820d..04829ddd 100644 --- a/include/c/c_lib.h +++ b/include/c/c_lib.h @@ -11,6 +11,7 @@ s16 targetAngleX(const mVec3_c &target, const mVec3_c &source); void addCalcPos2(mVec3_c *src, const mVec3_c &target, f32 scale, f32 maxStep); f32 addCalcPosXZ(mVec3_c *src, const mVec3_c &target, f32 scale, f32 maxStep, f32 minStep); f32 addCalcPos(mVec3_c *src, const mVec3_c &target, f32 scale, f32 maxStep, f32 minStep); +bool chasePosXZ(mVec3_c &, mVec3_c &, f32); // made up name f32 easeIn(f32 value, f32 exponent); diff --git a/include/d/a/obj/d_a_obj_grave.h b/include/d/a/obj/d_a_obj_grave.h index 153e8d28..1cd82c67 100644 --- a/include/d/a/obj/d_a_obj_grave.h +++ b/include/d/a/obj/d_a_obj_grave.h @@ -2,6 +2,13 @@ #define D_A_OBJ_GRAVE_H #include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_w.h" +#include "d/col/cc/d_cc_d.h" +#include "d/d_shadow.h" +#include "m/m3d/m_anmmatclr.h" +#include "m/m3d/m_smdl.h" +#include "m/m_vec.h" +#include "nw4r/g3d/res/g3d_resfile.h" #include "s/s_State.hpp" #include "s/s_StateMgr.hpp" @@ -10,11 +17,45 @@ public: dAcOGrave_c() : mStateMgr(*this, sStateID::null) {} virtual ~dAcOGrave_c() {} + virtual bool createHeap(); + virtual int create(); + virtual int doDelete(); + virtual int actorExecute(); + virtual int draw(); + + void fn_580_480(dAcObjBase_c *link, dBgW_Base::PushPullLabel label); + + void executeState() { + mStateMgr.executeState(); + } + STATE_FUNC_DECLARE(dAcOGrave_c, Wait); STATE_FUNC_DECLARE(dAcOGrave_c, Move); private: - /* 0x??? */ STATE_MGR_DECLARE(dAcOGrave_c); + static dAcObjBase_c *pushPullCb(dAcObjBase_c *grave, dAcObjBase_c *link, dBgW_Base::PushPullLabel label); + static bool unkCb(dBgW *bgW, dAcObjBase_c *grave, dAcObjBase_c *link); + + /* 0x330 */ nw4r::g3d::ResFile mResFile; + /* 0x334 */ m3d::smdl_c mMdl; + /* 0x350 */ dShadowCircle_c mShadow; + /* 0x358 */ dBgW mBgW; + /* 0x568 */ STATE_MGR_DECLARE(dAcOGrave_c); + /* 0x5A4 */ dCcD_Unk mCollider; + /* 0x7AC */ m3d::anmMatClr_c mAnmMatClr; + /* 0x7D8 */ mVec3_c mOrigPos1; + /* 0x7E4 */ mVec3_c mOrigPos2; + /* 0x7F0 */ u16 mTimer; + /* 0x7F2 */ u8 mSceneflag; + /* 0x7F3 */ bool mShouldGlow; + /* 0x7F4 */ bool mPush; + /* 0x7F5 */ bool mPull; + /* 0x7F6 */ bool field_0x7F6; + /* 0x7F7 */ bool field_0x7F7; + + static dCcD_SrcUnk sUnkSrc; + static const u8 lbl_580_rodata_0; + static const f32 lbl_580_rodata_30; }; #endif diff --git a/include/d/col/bg/d_bg_w.h b/include/d/col/bg/d_bg_w.h index a61d78f0..6c8424df 100644 --- a/include/d/col/bg/d_bg_w.h +++ b/include/d/col/bg/d_bg_w.h @@ -386,6 +386,9 @@ public: void SetRideCallback(dBgW_RideCallback func) { mpRide_cb = func; } + void SetUnkCallback(dBgW_UnkCallback func) { + mpUnk_cb = func; + } void OnMoveFlag() { mFlags |= 1; } diff --git a/include/d/d_player_act.h b/include/d/d_player_act.h index 3da4e570..b358835f 100644 --- a/include/d/d_player_act.h +++ b/include/d/d_player_act.h @@ -556,6 +556,10 @@ public: field_0x360 |= mask; } + inline void offFlags_0x360(u32 mask) { + field_0x360 &= ~mask; + } + inline void onForceOrPreventActionFlags(u32 mask) { mForceOrPreventActionFlags |= mask; } |
