e_gob equivalent (#2406)

* work on e_gob

* gob work

* d_a_e_gob equivalent
This commit is contained in:
TakaRikka 2025-04-21 23:04:26 -07:00 committed by GitHub
parent 1b88eae26d
commit d3bf501777
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 2393 additions and 1769 deletions

View File

@ -1632,7 +1632,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_e_ge"),
ActorRel(NonMatching, "d_a_e_gi"),
ActorRel(NonMatching, "d_a_e_gm"),
ActorRel(NonMatching, "d_a_e_gob"),
ActorRel(Equivalent, "d_a_e_gob"), # weak func order
ActorRel(NonMatching, "d_a_e_gs"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_hb_leaf"),
ActorRel(NonMatching, "d_a_e_hm"),

View File

@ -1,6 +1,11 @@
#ifndef D_A_E_GOB_H
#define D_A_E_GOB_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"
#include "d/d_msg_flow.h"
/**
* @ingroup actors-enemies
@ -11,16 +16,104 @@
*
*/
class e_gob_class : public fopEn_enemy_c {
public:
/* 806DEA10 */ e_gob_class();
private:
/* 0x5ac */ u8 field_0x5ac[0xde4 - 0x5ac];
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ mDoExt_McaMorfSO* mpModelMorf;
/* 0x5B8 */ Z2CreatureGob mSound;
/* 0x648 */ int mAnm;
/* 0x64C */ J3DModel* mpArmorModel;
/* 0x650 */ u32 field_0x650;
/* 0x654 */ s16 mCounter;
/* 0x656 */ s16 mAction;
/* 0x658 */ s16 mMode;
/* 0x65C */ cXyz field_0x65c;
/* 0x668 */ s16 field_0x668;
/* 0x66A */ s16 mPlayerAngleDist;
/* 0x66C */ f32 mPlayerDist;
/* 0x670 */ u8 field_0x670[0x674 - 0x670];
/* 0x674 */ s16 mTimers[5];
/* 0x67E */ s16 mDamageInvulnerabilityTimer;
/* 0x680 */ f32 field_0x680;
/* 0x684 */ f32 field_0x684;
/* 0x688 */ f32 field_0x688;
/* 0x68C */ u8 field_0x68C[0x690 - 0x68C];
/* 0x690 */ cXyz field_0x690;
/* 0x69C */ f32 field_0x69c;
/* 0x6A0 */ s16 field_0x6a0;
/* 0x6A2 */ s16 field_0x6a2;
/* 0x6A4 */ s16 mBodyRotZ;
/* 0x6A6 */ s16 mBodyRotY;
/* 0x6A8 */ s16 field_0x6a8;
/* 0x6AA */ s8 field_0x6aa;
/* 0x6AB */ s8 field_0x6ab;
/* 0x6AC */ s8 field_0x6ac;
/* 0x6AE */ s16 mHeadRotY;
/* 0x6B0 */ s16 mHeadRotZ;
/* 0x6B2 */ s16 field_0x6b2;
/* 0x6B4 */ s16 field_0x6b4;
/* 0x6B6 */ s16 field_0x6b6;
/* 0x6B8 */ cXyz field_0x6b8;
/* 0x6C4 */ s16 field_0x6c4;
/* 0x6C6 */ s16 field_0x6c6[4];
/* 0x6CE */ s16 field_0x6ce[4];
/* 0x6D6 */ s16 field_0x6d6;
/* 0x6D8 */ s8 field_0x6d8;
/* 0x6D9 */ s8 field_0x6d9;
/* 0x6DA */ s8 field_0x6da;
/* 0x6DC */ cXyz field_0x6dc;
/* 0x6E8 */ cXyz field_0x6e8;
/* 0x6F4 */ csXyz field_0x6f4;
/* 0x6FC */ dBgS_AcchCir mAcchCir;
/* 0x73C */ dBgS_ObjAcch mAcch;
/* 0x914 */ dCcD_Stts mCcStts;
/* 0x950 */ dCcD_Sph mAtSph;
/* 0xA88 */ dCcD_Sph field_0xa88;
/* 0xBC0 */ dCcD_Sph mCcSph;
/* 0xCF8 */ dCcU_AtInfo mAtInfo;
/* 0xD1C */ s8 field_0xd1c;
/* 0xD1D */ s8 field_0xd1d;
/* 0xD1E */ s8 field_0xd1e;
/* 0xD1F */ s8 field_0xd1f;
/* 0xD20 */ s8 field_0xd20;
/* 0xD21 */ s8 mPlayerCutLRC;
/* 0xD24 */ cXyz field_0xd24;
/* 0xD30 */ u32 field_0xd30;
/* 0xD34 */ u32 field_0xd34;
/* 0xD38 */ s16 mDemoCamMode;
/* 0xD3A */ s16 mDemoCamTimer;
/* 0xD3C */ cXyz mDemoCamEye;
/* 0xD48 */ cXyz mDemoCamCenter;
/* 0xD54 */ cXyz mDemoCamEyeTarget;
/* 0xD60 */ cXyz mDemoCamCenterTarget;
/* 0xD6C */ cXyz mDemoCamEyeSpd;
/* 0xD78 */ cXyz mDemoCamCenterSpd;
/* 0xD84 */ f32 mDemoCamFovy;
/* 0xD88 */ f32 field_0xd88;
/* 0xD8C */ f32 field_0xd8c;
/* 0xD90 */ s8 field_0xd90;
/* 0xD94 */ dMsgFlow_c mMsgFlow;
/* 0xDE0 */ u8 mInitHIO;
};
STATIC_ASSERT(sizeof(e_gob_class) == 0xde4);
class daE_GOB_HIO_c {
class daE_GOB_HIO_c : public JORReflexible {
public:
/* 806D808C */ daE_GOB_HIO_c();
/* 806DECD0 */ ~daE_GOB_HIO_c();
void genMessage(JORMContext*);
/* 806DECD0 */ virtual ~daE_GOB_HIO_c() {}
/* 0x04 */ s8 id;
/* 0x08 */ f32 size;
/* 0x0C */ f32 normal_walk_speed;
/* 0x10 */ f32 battle_walk_speed;
/* 0x14 */ f32 roll_speed;
/* 0x18 */ s16 rotation_speed;
/* 0x1A */ s16 swing_time_a;
/* 0x1C */ s16 swing_time_b;
};

View File

@ -3,6 +3,17 @@
#include "f_op/f_op_actor_mng.h"
struct ms_chain_s {
/* 80C9CA60 */ ~ms_chain_s();
/* 80C9CA9C */ ms_chain_s();
/* 0x00 */ J3DModel* model[35];
/* 0x8C */ f32 field_0x8c;
/* 0x90 */ s16 field_0x90;
/* 0x92 */ u8 field_0x92;
/* 0x94 */ cXyz field_0x94;
};
/**
* @ingroup actors-objects
* @class obj_msima_class
@ -12,17 +23,41 @@
*
*/
class obj_msima_class : public fopAc_ac_c {
private:
/* 0x568 */ u8 field_0x568[0x8a4 - 0x568];
public:
/* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ u8 field_0x570;
/* 0x574 */ J3DModel* mpModel;
/* 0x578 */ mDoExt_brkAnm* mpBrk;
/* 0x57C */ mDoExt_btkAnm* mpBtk;
/* 0x580 */ s16 field_0x580;
/* 0x582 */ s16 field_0x582;
/* 0x584 */ s16 field_0x584;
/* 0x586 */ s16 field_0x586[2];
/* 0x58C */ f32 field_0x58c;
/* 0x590 */ u8 field_0x590[0x594 - 0x590];
/* 0x594 */ s16 field_0x594;
/* 0x596 */ s16 field_0x596;
/* 0x598 */ s16 field_0x598;
/* 0x59A */ s16 field_0x59a;
/* 0x59C */ f32 field_0x59c;
/* 0x5A0 */ s16 field_0x5a0;
/* 0x5A4 */ f32 field_0x5a4;
/* 0x5A8 */ f32 field_0x5a8;
/* 0x5AC */ s16 field_0x5ac;
/* 0x5AE */ s16 field_0x5ae;
/* 0x5B0 */ cXyz field_0x5b0;
/* 0x5BC */ uint field_0x5bc[2];
/* 0x5C4 */ s8 field_0x5c4[2];
/* 0x5C6 */ u8 field_0x5C6[0x5CC - 0x5C6];
/* 0x5CC */ Mtx field_0x5cc;
/* 0x5FC */ dBgW* mpBgW;
/* 0x600 */ Z2SoundObjSimple mSound;
/* 0x620 */ ms_chain_s mChains[4];
/* 0x8A0 */ u8 field_0x8a0;
};
STATIC_ASSERT(sizeof(obj_msima_class) == 0x8a4);
struct ms_chain_s {
/* 80C9CA60 */ ~ms_chain_s();
/* 80C9CA9C */ ms_chain_s();
};
class daObj_Msima_HIO_c {
public:
/* 80C9B40C */ daObj_Msima_HIO_c();

File diff suppressed because it is too large Load Diff