d_a_e_bug equivalent (#2540)

* Tiny work

* d_a_e_bug equivalent

* took out unnecessary include

* fixed broken match

* PR cleanup

* OS_REPORT fixed

---------

Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
This commit is contained in:
Carco_21 2025-07-24 13:05:32 -04:00 committed by GitHub
parent 7d6c8ef3e5
commit aeed67dcf5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 908 additions and 926 deletions

View File

@ -45,4 +45,5 @@
"--function-arg-placeholders=0",
"-header-insertion=never",
],
"clangd.detectExtensionConflicts": true,
}

View File

@ -1655,8 +1655,8 @@ config.libs = [
ActorRel(NonMatching, "d_a_e_bi"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_bi_leaf"),
ActorRel(NonMatching, "d_a_e_bs"),
ActorRel(Equivalent, "d_a_e_bu"), # weak func order
ActorRel(NonMatching, "d_a_e_bug"),
ActorRel(Equivalent, "d_a_e_bu"),
ActorRel(Equivalent, "d_a_e_bug"), # weak func order
ActorRel(Equivalent, "d_a_e_cr"), # weak func order
ActorRel(MatchingFor("GZ2E01"), "d_a_e_cr_egg"),
ActorRel(NonMatching, "d_a_e_db"),

View File

@ -11,22 +11,63 @@
* @details
*
*/
class e_bug_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x7db0 - 0x5ac];
struct bug_s {
/* 0x00 */ J3DModel* field_0x0;
/* 0x04 */ J3DModel* field_0x4;
/* 0x08 */ int field_0x8;
/* 0x0C */ cXyz field_0xc;
/* 0x18 */ cXyz field_0x18;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ cXyz field_0x30;
/* 0x3C */ csXyz field_0x3c;
/* 0x42 */ s16 field_0x42;
/* 0x44 */ s16 field_0x44;
/* 0x46 */ s16 field_0x46;
/* 0x48 */ s16 field_0x48;
/* 0x4A */ s16 field_0x4a;
/* 0x4C */ s16 field_0x4c;
/* 0x4E */ s16 field_0x4e;
/* 0x50 */ s8 field_0x50;
/* 0x51 */ s8 field_0x51;
/* 0x52 */ s8 field_0x52;
/* 0x53 */ u8 field_0x53;
/* 0x54 */ u8 field_0x54[3];
/* 0x58 */ Z2SoundObjSimple mSound;
};
STATIC_ASSERT(sizeof(bug_s) == 0x78);
class e_bug_class {
public:
/* 0x0000 */ fopAc_ac_c actor;
/* 0x0568 */ request_of_phase_process_class mPhase;
/* 0x0570 */ u8 field_0x570;
/* 0x0574 */ int bitSw;
/* 0x0578 */ u32 field_0x578;
/* 0x057C */ f32 field_0x57c;
/* 0x0580 */ s16 field_0x580;
/* 0x0582 */ u8 field_0x582[0x588 - 0x582];
/* 0x0588 */ bug_s Bug_s[256];
/* 0x7D88 */ int bug_num;
/* 0x7D8C */ Z2SoundObjBeeGroup mSound;
/* 0x7DAC */ u8 field_0x7dac;
/* 0x7DAD */ u8 field_0x7dad;
};
STATIC_ASSERT(sizeof(e_bug_class) == 0x7db0);
class daE_Bug_HIO_c {
class daE_Bug_HIO_c: public JORReflexible {
public:
/* 80694B8C */ daE_Bug_HIO_c();
/* 80697BEC */ ~daE_Bug_HIO_c();
};
/* 80697BEC */ virtual ~daE_Bug_HIO_c() {}
struct bug_s {
/* 80697B4C */ ~bug_s();
/* 80697BB8 */ bug_s();
};
void genMessage(JORMContext*);
/* 0x4 */ s8 field_0x4;
/* 0x8 */ f32 field_0x8;
/* 0xC */ f32 field_0xc;
};
#endif /* D_A_E_BUG_H */

View File

@ -76,7 +76,7 @@ public:
/* 804CAEE8 */ int execute();
/* 804CBC60 */ int draw();
virtual BOOL checkExplodeNow() { return field_0xb51 != 0; }
virtual u8 checkExplodeNow() { return field_0xb51 != 0; }
virtual void deleteBombAndEffect() {
fopAcM_delete(this);
onStateFlg0(FLG0_UNK_40);

View File

@ -1213,6 +1213,12 @@ public:
BOOL checkSumouPunchStagger() const { return mSpecialMode == 0x1F; }
BOOL checkSumouTackleStagger() const { return mSpecialMode == 0x20; }
BOOL checkSumouGraspRelease() const { return mSpecialMode == 0x23; }
void onHeavyState() { onNoResetFlg0(FLG0_UNK_40000000); }
void onHeavyStateMidnaPanic() {
onHeavyState();
onEndResetFlg1(ERFLG1_UNK_40000);
}
};
int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4);

View File

@ -32,7 +32,7 @@ public:
static bool checkWaterBomb(fopAc_ac_c*);
static bool checkInsectBombMove(fopAc_ac_c*);
virtual BOOL checkExplodeNow() { return FALSE; }
virtual u8 checkExplodeNow() { return false; }
virtual void deleteBombAndEffect() {}
virtual void setCargoBombExplode() {}

File diff suppressed because it is too large Load Diff