d_a_obj_wooden_statue OK (#2532)

This commit is contained in:
hatal175
2025-07-14 05:38:49 +03:00
committed by GitHub
parent 9c48ec0905
commit cd99fa788c
11 changed files with 461 additions and 726 deletions
+1 -1
View File
@@ -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);
+43 -17
View File
@@ -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);
+1 -8
View File
@@ -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;
}