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
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 461 additions and 726 deletions

View File

@ -3,9 +3,9 @@ _epilog = .text:0x0000002C; // type:function size:0x2C scope:global
_unresolved = .text:0x00000058; // type:function size:0x20 scope:global
Reflect__FP4cXyzRC13cBgS_PolyInfof = .text:0x00000078; // type:function size:0x2FC scope:global
__dt__8cM3dGPlaFv = .text:0x00000374; // type:function size:0x48 scope:global
lifeGetTgCallBack__FP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf = .text:0x000003BC; // type:function size:0x5C scope:global
lifeGetCoCallBack__FP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf = .text:0x00000418; // type:function size:0x44 scope:global
s_sh_sub__FPvPv = .text:0x0000045C; // type:function size:0x4C scope:global
lifeGetTgCallBack__FP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf = .text:0x000003BC; // type:function size:0x5C scope:local
lifeGetCoCallBack__FP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf = .text:0x00000418; // type:function size:0x44 scope:local
s_sh_sub__FPvPv = .text:0x0000045C; // type:function size:0x4C scope:local
initBaseMtx__14daObjWStatue_cFv = .text:0x000004A8; // type:function size:0x3C scope:global
setBaseMtx__14daObjWStatue_cFv = .text:0x000004E4; // type:function size:0x4C scope:global
Create__14daObjWStatue_cFv = .text:0x00000530; // type:function size:0x184 scope:global
@ -36,10 +36,10 @@ execute__14daObjWStatue_cFv = .text:0x000014E0; // type:function size:0x188 scop
draw__14daObjWStatue_cFv = .text:0x00001668; // type:function size:0x54 scope:global
setListStart__14daObjWStatue_cFv = .text:0x000016BC; // type:function size:0x4 scope:global
_delete__14daObjWStatue_cFv = .text:0x000016C0; // type:function size:0x38 scope:global
daObjWStatue_Draw__FP14daObjWStatue_c = .text:0x000016F8; // type:function size:0x20 scope:global
daObjWStatue_Execute__FP14daObjWStatue_c = .text:0x00001718; // type:function size:0x20 scope:global
daObjWStatue_Delete__FP14daObjWStatue_c = .text:0x00001738; // type:function size:0x20 scope:global
daObjWStatue_Create__FP10fopAc_ac_c = .text:0x00001758; // type:function size:0x20 scope:global
daObjWStatue_Draw__FP14daObjWStatue_c = .text:0x000016F8; // type:function size:0x20 scope:local
daObjWStatue_Execute__FP14daObjWStatue_c = .text:0x00001718; // type:function size:0x20 scope:local
daObjWStatue_Delete__FP14daObjWStatue_c = .text:0x00001738; // type:function size:0x20 scope:local
daObjWStatue_Create__FP10fopAc_ac_c = .text:0x00001758; // type:function size:0x20 scope:local
__dt__10cCcD_GSttsFv = .text:0x00001778; // type:function size:0x48 scope:global
__dt__18dPa_levelEcallBackFv = .text:0x000017C0; // type:function size:0x74 scope:global
execute__18JPAEmitterCallBackFP14JPABaseEmitter = .text:0x00001834; // type:function size:0x4 scope:global
@ -52,7 +52,7 @@ cLib_calcTimer<Uc>__FPUc = .text:0x00001844; // type:function size:0x1C scope:gl
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
...rodata.0 = .rodata:0x00000000; // type:label scope:local
l_cyl_src = .rodata:0x00000000; // type:object size:0x44 scope:global
l_cyl_src = .rodata:0x00000000; // type:object size:0x44 scope:local
@3857 = .rodata:0x00000044; // type:object size:0x4 scope:local
@3858 = .rodata:0x00000048; // type:object size:0x8 scope:local
@3859 = .rodata:0x00000050; // type:object size:0x8 scope:local
@ -73,11 +73,11 @@ l_cyl_src = .rodata:0x00000000; // type:object size:0x44 scope:global
@4324 = .rodata:0x00000098; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x0000009C; // type:object size:0x45 scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_691_data_10 = .data:0x00000010; // type:object size:0x10
l_arcName = .data:0x00000020; // type:object size:0x4 scope:global data:4byte
l_eventName = .data:0x00000024; // type:object size:0x4 scope:global data:4byte
l_arcName = .data:0x00000020; // type:object size:0x4 scope:local data:4byte
l_eventName = .data:0x00000024; // type:object size:0x4 scope:local data:4byte
action_table$4273 = .data:0x00000028; // type:object size:0x10 scope:local
@4356 = .data:0x00000038; // type:object size:0xC scope:local
@4357 = .data:0x00000044; // type:object size:0xC scope:local
@ -85,7 +85,7 @@ action_table$4273 = .data:0x00000028; // type:object size:0x10 scope:local
@4359 = .data:0x0000005C; // type:object size:0xC scope:local
@4360 = .data:0x00000068; // type:object size:0xC scope:local
l_demoFunc$4355 = .data:0x00000074; // type:object size:0x3C scope:local
l_daObjWStatue_Method = .data:0x000000B0; // type:object size:0x20 scope:global
l_daObjWStatue_Method = .data:0x000000B0; // type:object size:0x20 scope:local
g_profile_Obj_WoodStatue = .data:0x000000D0; // type:object size:0x30 scope:global
__vt__12dBgS_AcchCir = .data:0x00000100; // type:object size:0xC scope:global
__vt__10cCcD_GStts = .data:0x0000010C; // type:object size:0xC scope:global
@ -96,4 +96,4 @@ __vt__8cM3dGAab = .data:0x00000154; // type:object size:0xC scope:global
__vt__12dBgS_ObjAcch = .data:0x00000160; // type:object size:0x24 scope:global
__vt__14daObjWStatue_c = .data:0x00000184; // type:object size:0x44 scope:global
__vt__8cM3dGPla = .data:0x000001C8; // type:object size:0xC scope:global
lbl_691_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
init$2078 = .bss:0x00000000; // type:object size:0x1 scope:local data:byte

View File

@ -95,4 +95,4 @@ __vt__8cM3dGAab = .data:0x00000154; // type:object size:0xC scope:global
__vt__12dBgS_ObjAcch = .data:0x00000160; // type:object size:0x24 scope:global
__vt__14daObjWStatue_c = .data:0x00000184; // type:object size:0x44 scope:global
__vt__8cM3dGPla = .data:0x000001C8; // type:object size:0xC scope:global
lbl_691_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
init$2078 = .bss:0x00000000; // type:object size:0x1 data:byte

View File

@ -95,4 +95,4 @@ __vt__8cM3dGAab = .data:0x00000154; // type:object size:0xC scope:global
__vt__12dBgS_ObjAcch = .data:0x00000160; // type:object size:0x24 scope:global
__vt__14daObjWStatue_c = .data:0x00000184; // type:object size:0x44 scope:global
__vt__8cM3dGPla = .data:0x000001C8; // type:object size:0xC scope:global
lbl_691_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
init$2078 = .bss:0x00000000; // type:object size:0x1 data:byte

View File

@ -2163,7 +2163,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_wind_stone"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_window"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_wood_pendulum"),
ActorRel(NonMatching, "d_a_obj_wood_statue"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_wood_statue"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_wsword"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_yel_bag"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_ystone"),

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);

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);

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;
}

View File

@ -70,7 +70,7 @@ int daItemKantera_c::Create() {
mCcCyl.SetStts(&mCcStts);
mCcCyl.SetR(dItem_data::getR(m_itemNo));
mCcCyl.SetH(dItem_data::getH(m_itemNo));
fopAcM_SetCullSize(this, 0xF);
fopAcM_SetCullSize(this, fopAc_CULLSPHERE_0_e);
actionWaitInit();
fopAcM_SetGravity(this, -6.0f);
fopAcM_OnCarryType(this, fopAcM_CARRY_ITEM);

View File

@ -90,7 +90,7 @@ int daItemShield_c::Create() {
mCcCyl.SetStts(&mCcStts);
mCcCyl.SetR(dItem_data::getR(m_itemNo));
mCcCyl.SetH(dItem_data::getH(m_itemNo));
fopAcM_SetCullSize(this, 15);
fopAcM_SetCullSize(this, fopAc_CULLSPHERE_0_e);
actionWaitInit();
if (fopAcM_isSwitch(this, getSwBit())) {
field_0x94a = 3;

File diff suppressed because it is too large Load Diff

View File

@ -28,8 +28,8 @@ void daItemBase_c::changeDraw() {
}
}
u8 daItemBase_c::chkDraw() {
return cLib_checkBit<u8>(field_0x92b, 1) != 0;
bool daItemBase_c::chkDraw() {
return cLib_checkBit<u8>(field_0x92b, 1);
}
void daItemBase_c::dead() {