From 2835276bfeecde6c6d09f855df58bcd9f96ad702 Mon Sep 17 00:00:00 2001 From: Arnaut Scholten <44735497+ArnautS@users.noreply.github.com> Date: Sat, 31 May 2025 19:42:17 +0200 Subject: d_a_obj_laundry_rope Matching (#2464) * Add create implementation * Add create_init * Almost all matching * Full match * Matching laundry rope * Cleanup * Fix PR comments --- include/d/actor/d_a_obj_laundry_rope.h | 55 ++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/d/actor/d_a_obj_laundry_rope.h b/include/d/actor/d_a_obj_laundry_rope.h index d77b048b11..3c7c2648bc 100644 --- a/include/d/actor/d_a_obj_laundry_rope.h +++ b/include/d/actor/d_a_obj_laundry_rope.h @@ -1,7 +1,24 @@ #ifndef D_A_OBJ_LAUNDRY_ROPE_H #define D_A_OBJ_LAUNDRY_ROPE_H -#include "f_op/f_op_actor_mng.h" +#include "d/d_cc_d.h" +#include "f_op/f_op_actor.h" + +struct daObjLndRope_Attr_c { + f32 mGravity; + f32 field_0x4; + f32 field_0x8; + f32 field_0xc; + f32 field_0x10; +}; + +struct daObjLndRope_Hio_c { + f32 mGravity; + f32 field_0x4; + f32 field_0x8; + f32 field_0xc; + f32 field_0x10; +}; /** * @ingroup actors-objects @@ -18,10 +35,42 @@ public: /* 80C52890 */ void setBaseMtx(); /* 80C528E0 */ void setNormalRopePos(); - static u8 const M_attr[20]; + inline ~daObjLndRope_c(); + inline int create(); + inline int createHeap(); + inline int draw(); + inline int execute(); + inline u8 getPathId(); + inline cXyz* getRopeStartPos(); + inline float getStartRate(cXyz* param_1); + + + #ifdef DEBUG + const daObjLndRope_Hio_c* attr() const { + return &M_Hio; + }; + #else + const daObjLndRope_Attr_c* attr() const { + return &mAttr; + }; + #endif + + static const daObjLndRope_Attr_c mAttr; + static const daObjLndRope_Hio_c M_Hio; private: - /* 0x568 */ u8 field_0x568[0x1774 - 0x568]; + /* 0x0568 */ mDoExt_3DlineMat1_c mRopeMat; + /* 0x05a4 */ request_of_phase_process_class mPhase; + /* 0x05ac */ Mtx mMtx; + /* 0x05dc */ dCcD_Stts mStts; + /* 0x0618 */ dCcD_Sph mSphs[13]; + /* 0x15f0 */ cXyz mPositions1[13]; + /* 0x168c */ cXyz mPositions2[13]; + /* 0x1728 */ fpc_ProcID mProcIds[13]; + /* 0x175c */ cXyz mPos; + /* 0x1768 */ f32 mScale; + /* 0x176c */ f32 mSegmentLength; + /* 0x1770 */ u8 mFlag; }; STATIC_ASSERT(sizeof(daObjLndRope_c) == 0x1774); -- cgit v1.2.3