Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

daObj_BouMato_c OK #2264

Merged
merged 3 commits into from
Dec 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions config/GZ2E01/rels/d_a_obj_bky_rock/symbols.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
_prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x0000002C; // type:function size:0x2C scope:global
_unresolved = .text:0x00000058; // type:function size:0x20 scope:global
daBkyRock_c_createHeap__FP10fopAc_ac_c = .text:0x00000078; // type:function size:0x20 scope:global
daBkyRock_c_createHeap__FP10fopAc_ac_c = .text:0x00000078; // type:function size:0x20 scope:local
__ct__11daBkyRock_cFv = .text:0x00000098; // type:function size:0xBC scope:global
__ct__Q211daBkyRock_c10_pieceDataFv = .text:0x00000154; // type:function size:0xC scope:global
__dt__8dCcD_CylFv = .text:0x00000160; // type:function size:0xCC scope:global
Expand All @@ -27,16 +27,16 @@ initChangeModeAfter__11daBkyRock_cFv = .text:0x0000103C; // type:function size:0
pieceMove__11daBkyRock_cFv = .text:0x00001058; // type:function size:0x170 scope:global
pieceMoveInit__11daBkyRock_cFv = .text:0x000011C8; // type:function size:0x290 scope:global
callBombEmt__11daBkyRock_cFiPCUs = .text:0x00001458; // type:function size:0x138 scope:global
daBkyRock_create__FP11daBkyRock_c = .text:0x00001590; // type:function size:0x54 scope:global
daBkyRock_Delete__FP11daBkyRock_c = .text:0x000015E4; // type:function size:0x20 scope:global
daBkyRock_execute__FP11daBkyRock_c = .text:0x00001604; // type:function size:0x20 scope:global
daBkyRock_draw__FP11daBkyRock_c = .text:0x00001624; // type:function size:0x20 scope:global
daBkyRock_create__FP11daBkyRock_c = .text:0x00001590; // type:function size:0x54 scope:local
daBkyRock_Delete__FP11daBkyRock_c = .text:0x000015E4; // type:function size:0x20 scope:local
daBkyRock_execute__FP11daBkyRock_c = .text:0x00001604; // type:function size:0x20 scope:local
daBkyRock_draw__FP11daBkyRock_c = .text:0x00001624; // type:function size:0x20 scope:local
__dt__10cCcD_GSttsFv = .text:0x00001644; // type:function size:0x48 scope:global
__sinit_d_a_obj_bky_rock_cpp = .text:0x0000168C; // type:function size:0x58 scope:local
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
...rodata.0 = .rodata:0x00000000; // type:label scope:local
VIBMODE_POWER = .rodata:0x00000000; // type:object size:0xC scope:global
VIBMODE_POWER = .rodata:0x00000000; // type:object size:0xC scope:local
PARTICLE_SCALE = .rodata:0x0000000C; // type:object size:0x8 scope:global
PARTICLE_OFFSET_POS_Y = .rodata:0x00000014; // type:object size:0x8 scope:global
FIRST_PARTICLE_NAME = .rodata:0x0000001C; // type:object size:0x8 scope:global
Expand Down Expand Up @@ -75,14 +75,14 @@ PIECE_SCALE_BASE$4100 = .rodata:0x00000148; // type:object size:0x8 scope:local
@4165 = .rodata:0x00000160; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x00000164; // type:object size:0x7 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
l_arcName = .data:0x00000020; // type:object size:0x4 scope:global data:4byte
l_arcName = .data:0x00000020; // type:object size:0x4 scope:local data:4byte
@3933 = .data:0x00000024; // type:object size:0xC scope:local
@3934 = .data:0x00000030; // type:object size:0xC scope:local
@3935 = .data:0x0000003C; // type:object size:0xC scope:local
s_exeProc__11daBkyRock_c = .data:0x00000048; // type:object size:0x24 scope:global data:4byte
daBkyRock_METHODS = .data:0x0000006C; // type:object size:0x20 scope:global
daBkyRock_METHODS = .data:0x0000006C; // type:object size:0x20 scope:local
g_profile_BkyRock = .data:0x0000008C; // type:object size:0x30 scope:global
__vt__11daBkyRock_c = .data:0x000000BC; // type:object size:0xC scope:global
__vt__10cCcD_GStts = .data:0x000000C8; // type:object size:0xC scope:global
Expand Down
24 changes: 12 additions & 12 deletions config/GZ2E01/rels/d_a_obj_boumato/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ setSwayParam__15daObj_BouMato_cFP10fopAc_ac_c = .text:0x00001108; // type:functi
setEnvTevColor__15daObj_BouMato_cFv = .text:0x0000129C; // type:function size:0x5C scope:global
setRoomNo__15daObj_BouMato_cFv = .text:0x000012F8; // type:function size:0x44 scope:global
setMtx__15daObj_BouMato_cFv = .text:0x0000133C; // type:function size:0x84 scope:global
daObj_BouMato_Create__FPv = .text:0x000013C0; // type:function size:0x20 scope:global
daObj_BouMato_Delete__FPv = .text:0x000013E0; // type:function size:0x20 scope:global
daObj_BouMato_Execute__FPv = .text:0x00001400; // type:function size:0x20 scope:global
daObj_BouMato_Draw__FPv = .text:0x00001420; // type:function size:0x20 scope:global
daObj_BouMato_IsDelete__FPv = .text:0x00001440; // type:function size:0x8 scope:global
daObj_BouMato_Create__FPv = .text:0x000013C0; // type:function size:0x20 scope:local
daObj_BouMato_Delete__FPv = .text:0x000013E0; // type:function size:0x20 scope:local
daObj_BouMato_Execute__FPv = .text:0x00001400; // type:function size:0x20 scope:local
daObj_BouMato_Draw__FPv = .text:0x00001420; // type:function size:0x20 scope:local
daObj_BouMato_IsDelete__FPv = .text:0x00001440; // type:function size:0x8 scope:local
__dt__10cCcD_GSttsFv = .text:0x00001448; // type:function size:0x48 scope:global
__sinit_d_a_obj_boumato_cpp = .text:0x00001490; // type:function size:0x74 scope:local
__dt__21daObj_BouMato_Param_cFv = .text:0x00001504; // type:function size:0x48 scope:global
Expand All @@ -41,7 +41,7 @@ __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 sc
_dtors = .dtors:0x00000000; // type:label scope:global
...rodata.0 = .rodata:0x00000000; // type:label scope:local
m__21daObj_BouMato_Param_c = .rodata:0x00000000; // type:object size:0x1C scope:global
l_ccDObjData = .rodata:0x0000001C; // type:object size:0x30 scope:global
l_ccDObjData = .rodata:0x0000001C; // type:object size:0x30 scope:local
@3956 = .rodata:0x0000004C; // type:object size:0x4 scope:local
@3957 = .rodata:0x00000050; // type:object size:0x4 scope:local
@3958 = .rodata:0x00000054; // type:object size:0x4 scope:local
Expand All @@ -62,11 +62,11 @@ l_ccDObjData = .rodata:0x0000001C; // type:object size:0x30 scope:global
@4356 = .rodata:0x00000098; // type:object size:0x4 scope:local
@4359 = .rodata:0x000000A0; // type:object size:0x8 scope:local
@stringBase0 = .rodata:0x000000A8; // type:object size:0x13 scope:local data:string_table
l_ccDCyl = .data:0x00000000; // type:object size:0x44 scope:global
l_resName = .data:0x00000044; // type:object size:0x4 scope:global data:4byte
l_ccDCyl = .data:0x00000000; // type:object size:0x44 scope:local
l_resName = .data:0x00000044; // type:object size:0x4 scope:local data:4byte
jntCoOffset$4044 = .data:0x00000048; // type:object size:0x18 scope:local
jntCoData$4045 = .data:0x00000060; // type:object size:0xC scope:local
daObj_BouMato_MethodTable = .data:0x0000006C; // type:object size:0x20 scope:global
daObj_BouMato_MethodTable = .data:0x0000006C; // type:object size:0x20 scope:local
g_profile_OBJ_BOUMATO = .data:0x0000008C; // type:object size:0x30 scope:global
__vt__12dBgS_ObjAcch = .data:0x000000BC; // type:object size:0x24 scope:global
__vt__10cCcD_GStts = .data:0x000000E0; // type:object size:0xC scope:global
Expand All @@ -78,7 +78,7 @@ __vt__8cM3dGLin = .data:0x0000011C; // type:object size:0xC scope:global
__vt__15daObj_BouMato_c = .data:0x00000128; // type:object size:0xC scope:global
__vt__21daObj_BouMato_Param_c = .data:0x00000134; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
l_findActorPtrs = .bss:0x00000008; // type:object size:0x190 scope:global
l_findCount = .bss:0x00000198; // type:object size:0x4 scope:global data:4byte
l_findActorPtrs = .bss:0x00000008; // type:object size:0x190 scope:local
l_findCount = .bss:0x00000198; // type:object size:0x4 scope:local data:4byte
@3830 = .bss:0x0000019C; // type:object size:0xC scope:local
l_HIO = .bss:0x000001A8; // type:object size:0x4 scope:global data:4byte
l_HIO = .bss:0x000001A8; // type:object size:0x4 scope:local data:4byte
6 changes: 3 additions & 3 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1774,11 +1774,11 @@ def MatchingFor(*versions):
ActorRel(NonMatching, "d_a_obj_bemos"),
ActorRel(NonMatching, "d_a_obj_bhbridge"),
ActorRel(Matching, "d_a_obj_bk_leaf"),
ActorRel(NonMatching, "d_a_obj_bky_rock"),
ActorRel(Matching, "d_a_obj_bky_rock"),
ActorRel(Matching, "d_a_obj_bmWindow"),
ActorRel(NonMatching, "d_a_obj_bmshutter"),
ActorRel(Matching, "d_a_obj_bombf"),
ActorRel(NonMatching, "d_a_obj_boumato"),
ActorRel(Matching, "d_a_obj_boumato"),
ActorRel(NonMatching, "d_a_obj_brg"),
ActorRel(Matching, "d_a_obj_bsGate"),
ActorRel(NonMatching, "d_a_obj_bubblePilar"),
Expand Down Expand Up @@ -1830,7 +1830,7 @@ def MatchingFor(*versions):
ActorRel(NonMatching, "d_a_obj_gomikabe"),
ActorRel(NonMatching, "d_a_obj_gra2"),
ActorRel(Matching, "d_a_obj_graWall"),
ActorRel(NonMatching, "d_a_obj_gra_rock"),
ActorRel(Equivalent, "d_a_obj_gra_rock"),
ActorRel(Matching, "d_a_obj_grave_stone"),
ActorRel(Matching, "d_a_obj_groundwater"),
ActorRel(NonMatching, "d_a_obj_grz_rock"),
Expand Down
1 change: 1 addition & 0 deletions include/SSystem/SComponent/c_cc_d.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ enum CcG_Tg_HitMark {
CcG_Tg_UNK_MARK_3 = 3,
CcG_Tg_UNK_MARK_6 = 6,
CcG_Tg_UNK_MARK_8 = 8,
CcG_Tg_UNK_MARK_9 = 9,
};

class cCcD_PntAttr;
Expand Down
1 change: 1 addition & 0 deletions include/d/actor/d_a_arrow.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ class daArrow_c : public fopAc_ac_c {

void setBombArrowExplode() { field_0x950 = 0; }
bool checkBombArrow() const { return mArrowType == true; }
u32 getHitAcID() { return mHitAcID; }

void setShoot() { fopAcM_SetParam(this, 1); }
void setChargeShoot() { fopAcM_SetParam(this, 2); }
Expand Down
2 changes: 2 additions & 0 deletions include/d/actor/d_a_npc.h
Original file line number Diff line number Diff line change
Expand Up @@ -587,6 +587,7 @@ u8 daNpcT_getDistTableIdx(int param_0, int param_1);
BOOL daNpcT_chkDoBtnIsSpeak(fopAc_ac_c* i_ActorP);
void daNpcT_offTmpBit(u32 i_idx);
void daNpcT_onTmpBit(u32 i_idx);
BOOL daNpcT_chkTmpBit(u32 i_idx);
void daNpcT_onEvtBit(u32 i_idx);

struct daBaseNpc_matAnm_c {
Expand Down Expand Up @@ -1005,6 +1006,7 @@ BOOL daNpcF_chkEvtBit(u32 i_idx);
void daNpcF_onEvtBit(u32 i_idx);
BOOL daNpcF_chkTmpBit(u32 i_idx);
void daNpcF_offTmpBit(u32 i_idx);
u8 daNpcF_getDistTableIdx(int param_0, int param_1);
BOOL daNpcF_chkPointInArea(cXyz, cXyz, cXyz, s16);
int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, csXyz& param_3);
s16 daNpcF_getGroundAngle(cBgS_PolyInfo*, s16);
Expand Down
59 changes: 46 additions & 13 deletions include/d/actor/d_a_obj_bky_rock.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#ifndef D_A_OBJ_BKY_ROCK_H
#define D_A_OBJ_BKY_ROCK_H

#include "d/d_cc_d.h"
#include "d/d_model.h"
#include "f_op/f_op_actor_mng.h"

/**
Expand All @@ -11,41 +13,72 @@
* @details
*
*/
class daBkyRock_c : public fopAc_ac_c {
class daBkyRock_c : public fopAc_ac_c, public request_of_phase_process_class {
public:
struct _pieceData {
public:
/* 80BB6914 */ _pieceData();
/* 80BB6914 */ _pieceData() { mMdlObj.mpObj = NULL; }

/* 0x00 */ dMdl_obj_c mMdlObj;
/* 0x34 */ Vec position;
/* 0x40 */ f32 targetX;
/* 0x44 */ f32 targetZ;
/* 0x48 */ f32 scale;
/* 0x4C */ f32 speedY;
/* 0x50 */ s16 rotationX;
/* 0x52 */ s16 rotationZ;
/* 0x54 */ s16 rotationSpeed;
};

typedef void (daBkyRock_c::*exeProc)();

enum Mode {
MODE_0,
MODE_1,
MODE_2,
};

/* 80BB6858 */ daBkyRock_c();
/* 80BB6B5C */ ~daBkyRock_c();
/* 80BB6C4C */ void create();
/* 80BB6D60 */ void execute();
/* 80BB6D84 */ void draw();
/* 80BB6EB8 */ void Delete();
/* 80BB6B5C */ virtual ~daBkyRock_c();
/* 80BB6C4C */ int create();
/* 80BB6D60 */ int execute();
/* 80BB6D84 */ int draw();
/* 80BB6EB8 */ int Delete();
/* 80BB6F64 */ void setModelMtx();
/* 80BB6FD4 */ void createHeap();
/* 80BB6FD4 */ int createHeap();
/* 80BB7144 */ void init();
/* 80BB72FC */ void middleExe();
/* 80BB7364 */ void exeModeNoDamage();
/* 80BB7458 */ void exeModeDamage();
/* 80BB75D8 */ void exeModePiece();
/* 80BB7690 */ void chkHitBombArrow();
/* 80BB7690 */ bool chkHitBombArrow();
/* 80BB776C */ void initChangeModeBefore();
/* 80BB77FC */ void initChangeModeAfter();
/* 80BB7818 */ void pieceMove();
/* 80BB7988 */ void pieceMoveInit();
/* 80BB7C18 */ void callBombEmt(int, u16 const*);

static u8 const s_CcDCyl[68];
static u8 s_exeProc[36];
u8 getSwBit0() { return fopAcM_GetParamBit(this, 4, 8); }
u8 getSwBit1() { return fopAcM_GetParamBit(this, 12, 8); }
s8 getNameNo() { return fopAcM_GetParamBit(this, 0, 4); }

static dCcD_SrcCyl const s_CcDCyl;
static exeProc s_exeProc[3];

private:
/* 0x568 */ u8 field_0x568[0xf50 - 0x568];
/* 0x568 */ int mVibrationTimer;
/* 0x578 */ u8 mMode;
/* 0x579 */ bool field_0x579;
/* 0x57A */ bool field_0x57a;
/* 0x57B */ Mtx mMtx;
/* 0x5AC */ dBgW* mBgW;
/* 0x5B0 */ dCcD_Stts mStts;
/* 0x5EC */ dCcD_Cyl mCyls[2];
/* 0x864 */ J3DModel* mModels[3];
/* 0x870 */ _pieceData mPieces[20];
};

STATIC_ASSERT(sizeof(daBkyRock_c) == 0xf50);
//STATIC_ASSERT(sizeof(daBkyRock_c) == 0xf50);


#endif /* D_A_OBJ_BKY_ROCK_H */
60 changes: 46 additions & 14 deletions include/d/actor/d_a_obj_boumato.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#ifndef D_A_OBJ_BOUMATO_H
#define D_A_OBJ_BOUMATO_H

#include "d/d_bg_s_acch.h"
#include "d/d_jnt_col.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"

Expand All @@ -13,34 +15,64 @@
*
*/
class daObj_BouMato_c : public fopAc_ac_c {
private:
/* 0x568 */ int field_0x568;
/* 0x56C */ request_of_phase_process_class mPhase;
/* 0x574 */ J3DModel* mModel;
/* 0x578 */ dBgS_ObjAcch mAcch;
/* 0x750 */ dCcD_Stts mStts;
/* 0x78C */ dBgS_AcchCir mAcchCir;
/* 0x7CC */ cBgS_GndChk mGndChk;
/* 0x808 */ dCcD_Cyl mCyl;
/* 0x944 */ cM3dGCyl mCyl2;
/* 0x95C */ cM3dGLin mGLin;
/* 0x978 */ dBgS_LinChk mLinChk;
/* 0x9E8 */ dJntCol_c mJntCol;
/* 0x9F8 */ csXyz field_0x9f8[3];
/* 0xA0A */ u16 field_0xa0a;
/* 0xA0C */ int mCutType;
/* 0xA10 */ int field_0xa10;
/* 0xA14 */ f32 mGroundH;
/* 0xA18 */ f32 field_0xa18[3];
/* 0xA24 */ s16 field_0xa24[3];
/* 0xA2A */ s16 field_0xa2a;
/* 0xA2C */ int mShadowId;
/* 0xA30 */ s16 field_0xa30;
/* 0xA32 */ u8 field_0xa32;
/* 0xA34 */ fpc_ProcID mTargetId;
/* 0xA38 */ u8 field_0xa38;
/* 0xA39 */ bool mIsCurTurnRight;

public:
/* 80BBAFEC */ ~daObj_BouMato_c();
/* 80BBB230 */ void create();
/* 80BBB770 */ void CreateHeap();
/* 80BBB800 */ void Delete();
/* 80BBB834 */ void Execute();
/* 80BBBD80 */ void Draw();
/* 80BBBE50 */ void createHeapCallBack(fopAc_ac_c*);
/* 80BBBE70 */ void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
/* 80BBBEA0 */ void srchArrow(void*, void*);
/* 80BBAFEC */ virtual ~daObj_BouMato_c();
/* 80BBB230 */ int create();
/* 80BBB770 */ int CreateHeap();
/* 80BBB800 */ int Delete();
/* 80BBB834 */ int Execute();
/* 80BBBD80 */ int Draw();
/* 80BBBE50 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80BBBE70 */ static void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
/* 80BBBEA0 */ static void* srchArrow(void*, void*);
/* 80BBBF4C */ void deleteStuckArrow();
/* 80BBBFF8 */ void getResName();
/* 80BBBFF8 */ char* getResName();
/* 80BBC008 */ void setSwayParam(fopAc_ac_c*);
/* 80BBC19C */ void setEnvTevColor();
/* 80BBC1F8 */ void setRoomNo();
/* 80BBC23C */ void setMtx();

private:
/* 0x568 */ u8 field_0x568[0xa40 - 0x568];
u8 getType() { return 0; }
u8 getOffSwBit() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
u8 getOnSwBit() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
void setCutType(u8 cutType) { mCutType = cutType; }
};

STATIC_ASSERT(sizeof(daObj_BouMato_c) == 0xa40);

class daObj_BouMato_Param_c {
public:
/* 80BBC404 */ ~daObj_BouMato_Param_c();
/* 80BBC404 */ virtual ~daObj_BouMato_Param_c() {}

static u8 const m[28];
static f32 const m[7];
};


Expand Down
Loading
Loading