knBullet / lv6Lblock done, lv6ChangeGate equivalent (#2729)

* knBullet / lv6Lblock done, lv6ChangeGate equivalent

* d_a_e_mm matching

* debug fix

* obj_kage matching
This commit is contained in:
TakaRikka
2025-10-08 08:35:58 -07:00
committed by GitHub
parent fc6c0fd88c
commit 3077f6a971
11 changed files with 2094 additions and 2045 deletions
+51 -9
View File
@@ -1,6 +1,10 @@
#ifndef D_A_E_MM_H
#define D_A_E_MM_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
/**
* @ingroup actors-enemies
@@ -10,17 +14,55 @@
* @details
*
*/
class e_mm_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xc1c - 0x5ac];
class e_mm_class {
public:
/* 0x000 */ fopEn_enemy_c enemy;
/* 0x5AC */ request_of_phase_process_class phase;
/* 0x5B4 */ u8 field_0x5b4;
/* 0x5B5 */ u8 field_0x5b5;
/* 0x5B6 */ u8 bitSw;
/* 0x5B8 */ mDoExt_McaMorfSO* modelMorf;
/* 0x5BC */ Z2CreatureEnemy sound;
/* 0x660 */ int anm;
/* 0x664 */ u32 shadowId;
/* 0x668 */ fpc_ProcID armorChildId;
/* 0x66C */ s16 lifetime;
/* 0x66E */ s16 action;
/* 0x670 */ s16 mode;
/* 0x672 */ s8 field_0x672;
/* 0x674 */ cXyz field_0x674;
/* 0x680 */ u8 field_0x680[0x68C - 0x680];
/* 0x68C */ s16 target_ya;
/* 0x68E */ u8 field_0x68E[0x690 - 0x68E];
/* 0x690 */ s16 angle_to_pl;
/* 0x694 */ f32 dist_to_pl;
/* 0x698 */ f32 field_0x698;
/* 0x69C */ s16 timers[4];
/* 0x6A4 */ s16 field_0x6a4;
/* 0x6A8 */ f32 field_0x6a8;
/* 0x6AC */ s16 field_0x6ac;
/* 0x6B0 */ dBgS_AcchCir acchcir;
/* 0x6F0 */ dBgS_ObjAcch acch;
/* 0x8C8 */ dCcD_Stts ccStts;
/* 0x904 */ dCcD_Sph ccSph;
/* 0xA3C */ dCcD_Sph ccWindSph;
/* 0xB74 */ dCcU_AtInfo atInfo;
/* 0xB98 */ s8 field_0xb98;
/* 0xB99 */ s8 field_0xb99;
/* 0xB9C */ u32 field_0xb9c[6];
/* 0xBB4 */ u32 waterEffEmtIds[4];
/* 0xBC4 */ cXyz field_0xbc4;
/* 0xBD0 */ cXyz field_0xbd0;
/* 0xBDC */ cXyz field_0xbdc;
/* 0xBE8 */ cXyz field_0xbe8;
/* 0xBF4 */ cXyz field_0xbf4;
/* 0xC00 */ u8 field_0xc00;
/* 0xC01 */ u8 field_0xc01;
/* 0xC04 */ u32 field_0xc04;
/* 0xC08 */ u32 field_0xc08;
/* 0xC0C */ u8 field_0xC0C[0xC1C - 0xC0C];
};
STATIC_ASSERT(sizeof(e_mm_class) == 0xc1c);
class daE_MM_HIO_c {
/* 8071F9CC */ daE_MM_HIO_c();
/* 80722780 */ ~daE_MM_HIO_c();
};
#endif /* D_A_E_MM_H */
+15 -3
View File
@@ -11,9 +11,21 @@
* @details
*
*/
class obj_kage_class : public fopAc_ac_c {
private:
/* 0x568 */ u8 field_0x568[0x5b4 - 0x568];
class obj_kage_class {
public:
/* 0x000 */ fopAc_ac_c actor;
/* 0x568 */ request_of_phase_process_class phase;
/* 0x570 */ J3DModel* model;
/* 0x574 */ u8 field_0x574;
/* 0x578 */ Z2SoundObjSimple sound;
/* 0x598 */ u8 field_0x598[0x59A - 0x598];
/* 0x59A */ s16 timers[2];
/* 0x59E */ s16 field_0x59e;
/* 0x5A0 */ s16 counter;
/* 0x5A4 */ f32 field_0x5a4;
/* 0x5A8 */ f32 field_0x5a8;
/* 0x5AC */ fpc_ProcID inko_child_id;
/* 0x5B0 */ u8 field_0x5b0[0x5B4 - 0x5B0];
};
STATIC_ASSERT(sizeof(obj_kage_class) == 0x5b4);
+16 -7
View File
@@ -2,6 +2,7 @@
#define D_A_OBJ_KNBULLET_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
/**
* @ingroup actors-objects
@@ -13,25 +14,33 @@
*/
class daObjKnBullet_c : public fopAc_ac_c {
public:
/* 80C47118 */ void Create();
/* 80C47300 */ void Execute();
/* 80C47480 */ bool Draw();
/* 80C47488 */ bool Delete();
/* 80C47118 */ int Create();
/* 80C47300 */ int Execute();
/* 80C47480 */ int Draw();
/* 80C47488 */ int Delete();
/* 80C47490 */ void setBaseMtx();
/* 80C474E8 */ void col_init();
/* 80C47558 */ void col_chk();
/* 80C47558 */ BOOL col_chk();
/* 80C477B4 */ void hitPrtclSet();
u8 getActionMode() { return mActionMode; }
void setActionMode(u8 i_action) { mActionMode = i_action; }
private:
/* 0x568 */ u8 field_0x568[0x70c - 0x568];
/* 0x568 */ Mtx mMtx;
/* 0x598 */ dCcD_Stts mCcStts;
/* 0x5D4 */ dCcD_Sph mCcSph;
/* 0x70C */ u8 mActionMode;
/* 0x70D */ u8 field_0x70d[0x71c - 0x70d];
/* 0x70E */ s16 mTimer;
/* 0x710 */ u32 mEmtIds[3];
};
STATIC_ASSERT(sizeof(daObjKnBullet_c) == 0x71c);
struct daObjKnBullet_Hio_Param_c {
/* 0x0 */ f32 radius;
/* 0x4 */ f32 move_speed;
/* 0x8 */ s16 lifetime;
};
#endif /* D_A_OBJ_KNBULLET_H */
+42 -15
View File
@@ -2,6 +2,9 @@
#define D_A_OBJ_LV6CHANGEGATE_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_event_lib.h"
#include "d/d_cc_d.h"
/**
* @ingroup actors-objects
@@ -11,15 +14,14 @@
* @details
*
*/
class daLv6ChangeGate_c : public fopAc_ac_c {
class daLv6ChangeGate_c : public dBgS_MoveBgActor, public request_of_phase_process_class, public dEvLib_callback_c {
public:
daLv6ChangeGate_c() : dEvLib_callback_c(this) {}
/* 80C70D38 */ void setBaseMtx();
/* 80C70DD4 */ void CreateHeap();
/* 80C70E40 */ void create();
/* 80C712A8 */ void isSwitch();
/* 80C712F4 */ void Execute(Mtx**);
/* 80C70E40 */ int create();
/* 80C712A8 */ u8 isSwitch();
/* 80C71494 */ void moveGate();
/* 80C715BC */ void eventStart();
/* 80C715F4 */ void init_modeWait();
/* 80C71600 */ void modeWait();
/* 80C71604 */ void init_modeSlideRight();
@@ -28,23 +30,48 @@ public:
/* 80C718EC */ void modeSlideLeft();
/* 80C71A74 */ void init_modeBreak();
/* 80C71AF8 */ void modeBreak();
/* 80C71D40 */ void Draw();
/* 80C71DE4 */ void Delete();
/* 80C72034 */ ~daLv6ChangeGate_c();
static u8 const mCcDObjInfo[48];
static u8 mCcDCyl[68];
/* 80C70DD4 */ virtual int CreateHeap();
/* 80C712F4 */ virtual int Execute(Mtx**);
/* 80C71D40 */ virtual int Draw();
/* 80C71DE4 */ virtual int Delete();
private:
/* 0x568 */ u8 field_0x568[0x14dc - 0x568];
/* 80C72034 */ virtual ~daLv6ChangeGate_c() {}
/* 80C715BC */ virtual bool eventStart();
int getEventID() { return fopAcM_GetParamBit(this, 24, 8); }
int getWaitTime() { return fopAcM_GetParamBit(this, 16, 8); }
int getSwState() { return fopAcM_GetParamBit(this, 12, 4); }
int getSw() { return fopAcM_GetParamBit(this, 0, 8); }
int getSw2() { return shape_angle.x & 0xFF; }
static const dCcD_SrcGObjInf mCcDObjInfo;
static dCcD_SrcCyl mCcDCyl;
/* 0x05B8 */ request_of_phase_process_class mPhase;
/* 0x05C0 */ J3DModel* mpModel;
/* 0x05C4 */ u8 mMode;
/* 0x05C8 */ dCcD_Stts mCcStts;
/* 0x0604 */ dCcD_Cyl mCcCyls[12];
/* 0x14D4 */ u8 mSwState;
/* 0x14D5 */ u8 mSwbit;
/* 0x14D6 */ u8 mIsSwitch;
/* 0x14D7 */ u8 mTimer;
/* 0x14D8 */ f32 mMoveTransX;
};
STATIC_ASSERT(sizeof(daLv6ChangeGate_c) == 0x14dc);
class daLv6ChangeGate_HIO_c {
class daLv6ChangeGate_HIO_c : public fOpAcm_HIO_entry_c {
public:
/* 80C70C4C */ daLv6ChangeGate_HIO_c();
/* 80C71EE8 */ ~daLv6ChangeGate_HIO_c();
/* 80C71EE8 */ virtual ~daLv6ChangeGate_HIO_c() {}
void genMessage(JORMContext*);
/* 0x4 */ f32 speed;
/* 0x8 */ f32 move_amount;
/* 0xC */ u8 unk_0xc;
};
+29 -10
View File
@@ -2,6 +2,7 @@
#define D_A_OBJ_LV6LBLOCK_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_movebg_actor.h"
/**
* @ingroup actors-objects
@@ -11,13 +12,11 @@
* @details
*
*/
class daLv6Lblock_c : public fopAc_ac_c {
class daLv6Lblock_c : public dBgS_MoveBgActor {
public:
/* 80C73464 */ void setBaseMtx();
/* 80C734EC */ void CreateHeap();
/* 80C73558 */ void create();
/* 80C736C0 */ void isSwitch();
/* 80C7370C */ void Execute(Mtx**);
/* 80C73558 */ int create();
/* 80C736C0 */ u8 isSwitch();
/* 80C7375C */ void moveBlock();
/* 80C73850 */ void init_modeWait();
/* 80C7385C */ void modeWait();
@@ -25,19 +24,39 @@ public:
/* 80C7386C */ void modeLiftUp();
/* 80C7398C */ void init_modeLiftDown();
/* 80C73998 */ void modeLiftDown();
/* 80C73AB0 */ void Draw();
/* 80C73B54 */ void Delete();
/* 80C734EC */ virtual int CreateHeap();
/* 80C7370C */ virtual int Execute(Mtx**);
/* 80C73AB0 */ virtual int Draw();
/* 80C73B54 */ virtual int Delete();
int getSwState() { return fopAcM_GetParamBit(this, 12, 4); }
int getUpMax() { return fopAcM_GetParamBit(this, 8, 4); }
int getSw() { return fopAcM_GetParamBit(this, 0, 8); }
private:
/* 0x568 */ u8 field_0x568[0x5b8 - 0x568];
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ J3DModel* mpModel;
/* 0x5AC */ u8 mMode;
/* 0x5AD */ u8 mSwState;
/* 0x5AE */ u8 mSwbit;
/* 0x5AF */ u8 mIsSwitch;
/* 0x5B0 */ f32 mMaxHeight;
/* 0x5B4 */ f32 mBaseHeight;
};
STATIC_ASSERT(sizeof(daLv6Lblock_c) == 0x5b8);
class daLv6Lblock_HIO_c {
class daLv6Lblock_HIO_c : public mDoHIO_entry_c {
public:
/* 80C733EC */ daLv6Lblock_HIO_c();
/* 80C73C10 */ ~daLv6Lblock_HIO_c();
/* 80C73C10 */ virtual ~daLv6Lblock_HIO_c() {}
void genMessage(JORMContext*);
/* 0x4 */ f32 speed;
/* 0x8 */ f32 move_amount;
/* 0xC */ u8 unk_0xc;
};