diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2025-07-14 05:38:49 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-13 19:38:49 -0700 |
| commit | cd99fa788cd1b98f0daaeafe7966279476edf38b (patch) | |
| tree | 0c032aa1f6b5b6d0774e8f9404655bcb07f7a161 /include | |
| parent | 9c48ec0905a67ae2f4b1bba67e6ea28b373932e8 (diff) | |
d_a_obj_wooden_statue OK (#2532)
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_itembase.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_wood_statue.h | 60 | ||||
| -rw-r--r-- | include/f_op/f_op_actor_mng.h | 9 |
3 files changed, 45 insertions, 26 deletions
diff --git a/include/d/actor/d_a_itembase.h b/include/d/actor/d_a_itembase.h index 737c221ba4..ac463a42fa 100644 --- a/include/d/actor/d_a_itembase.h +++ b/include/d/actor/d_a_itembase.h @@ -33,7 +33,7 @@ public: void hide(); void show(); void changeDraw(); - u8 chkDraw(); + bool chkDraw(); void dead(); bool chkDead(); int CreateItemHeap(char const*, s16, s16, s16, s16, s16, s16, s16); diff --git a/include/d/actor/d_a_obj_wood_statue.h b/include/d/actor/d_a_obj_wood_statue.h index a7ebd34ccd..331da72a1d 100644 --- a/include/d/actor/d_a_obj_wood_statue.h +++ b/include/d/actor/d_a_obj_wood_statue.h @@ -1,6 +1,8 @@ #ifndef D_A_OBJ_WOOD_STATUE_H #define D_A_OBJ_WOOD_STATUE_H +#include "d/actor/d_a_itembase.h" +#include "d/d_particle.h" #include "f_op/f_op_actor_mng.h" /** @@ -11,33 +13,57 @@ * @details * */ -class daObjWStatue_c : public fopAc_ac_c { +class daObjWStatue_c : public daItemBase_c { public: + typedef int (daObjWStatue_c::*demoFunc)(); + + enum Status { + STATUS_WAIT, + STATUS_ORDER_GET_DEMO, + STATUS_GET_DEMO, + STATUS_SW_ON_WAIT, + STATUS_BOOMERANG_CARRY, + }; + /* 80D3A268 */ void initBaseMtx(); /* 80D3A2A4 */ void setBaseMtx(); - /* 80D3A2F0 */ void Create(); - /* 80D3A474 */ bool __CreateHeap(); - /* 80D3A47C */ void create(); + /* 80D3A2F0 */ int Create(); + /* 80D3A474 */ int __CreateHeap(); + /* 80D3A47C */ int create(); /* 80D3A8E8 */ void bg_check(); - /* 80D3AA3C */ void actionWaitInit(); - /* 80D3AA80 */ void actionWait(); - /* 80D3AB9C */ void initActionOrderGetDemo(); - /* 80D3AC64 */ void actionOrderGetDemo(); - /* 80D3ACAC */ void actionGetDemo(); - /* 80D3AD30 */ void actionInitSwOnWait(); - /* 80D3AD88 */ void actionSwOnWait(); - /* 80D3AE7C */ void actionInitBoomerangCarry(); - /* 80D3AF5C */ void actionBoomerangCarry(); + /* 80D3AA3C */ int actionWaitInit(); + /* 80D3AA80 */ int actionWait(); + /* 80D3AB9C */ int initActionOrderGetDemo(); + /* 80D3AC64 */ int actionOrderGetDemo(); + /* 80D3ACAC */ int actionGetDemo(); + /* 80D3AD30 */ int actionInitSwOnWait(); + /* 80D3AD88 */ int actionSwOnWait(); + /* 80D3AE7C */ int actionInitBoomerangCarry(); + /* 80D3AF5C */ int actionBoomerangCarry(); /* 80D3AFC0 */ void demoProc(); /* 80D3B164 */ void effectSet(); /* 80D3B250 */ void effectStop(); - /* 80D3B2A0 */ void execute(); - /* 80D3B428 */ void draw(); + /* 80D3B2A0 */ int execute(); + /* 80D3B428 */ int draw(); /* 80D3B47C */ void setListStart(); - /* 80D3B480 */ void _delete(); + /* 80D3B480 */ int _delete(); + + bool chkStatus(u8 status) { return mStatus == status; } + void setStatus(u8 status) { mStatus = status; } + u8 getSwbit2() { return fopAcM_GetParamBit(this, 8, 8); } private: - /* 0x568 */ u8 field_0x568[0x974 - 0x568]; + /* 0x92C */ fpc_ProcID mItemId; + /* 0x930 */ int field_0x930; + /* 0x934 */ int mStaffIdx; + /* 0x938 */ u8 mStatus; + /* 0x939 */ u8 mShouldBoundSEPlay; + /* 0x93A */ u8 field_0x93a; + /* 0x93B */ u8 mRespawnTimer; + /* 0x93C */ cXyz field_0x93c; + /* 0x948 */ s16 mEventIdx; + /* 0x94A */ s16 mBoundSETimer; + /* 0x94C */ dPa_followEcallBack mCallbacks[2]; }; STATIC_ASSERT(sizeof(daObjWStatue_c) == 0x974); diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index ca6c98800f..bb8508d625 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -86,16 +86,9 @@ struct fopAcM_search_prm { /* 0x0A */ s8 subtype; }; -// define to avoid vtable mess in WIP TUs -#ifndef HIO_entry_c_NO_VIRTUAL struct fOpAcm_HIO_entry_c : public mDoHIO_entry_c { virtual ~fOpAcm_HIO_entry_c() {} }; -#else -struct fOpAcm_HIO_entry_c { - ~fOpAcm_HIO_entry_c(); -}; -#endif class l_HIO { public: @@ -389,7 +382,7 @@ inline const Vec* fopAcM_getCullSizeBoxMax(const fopAc_ac_c* i_actor) { return &i_actor->cull.box.max; } -inline void fopAcM_SetCullSize(fopAc_ac_c* i_actor, s8 i_cullsize) { +inline void fopAcM_SetCullSize(fopAc_ac_c* i_actor, int i_cullsize) { i_actor->cullType = i_cullsize; } |
