summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2025-07-14 05:38:49 +0300
committerGitHub <noreply@github.com>2025-07-13 19:38:49 -0700
commitcd99fa788cd1b98f0daaeafe7966279476edf38b (patch)
tree0c032aa1f6b5b6d0774e8f9404655bcb07f7a161 /include
parent9c48ec0905a67ae2f4b1bba67e6ea28b373932e8 (diff)
d_a_obj_wooden_statue OK (#2532)
Diffstat (limited to 'include')
-rw-r--r--include/d/actor/d_a_itembase.h2
-rw-r--r--include/d/actor/d_a_obj_wood_statue.h60
-rw-r--r--include/f_op/f_op_actor_mng.h9
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;
}