d_a_e_fb almost matching (#2709)

* d_a_e_fb almost matching

* remove dol2asm in e_fb

* e_fb PR fixes
This commit is contained in:
YunataSavior 2025-09-28 14:02:53 -07:00 committed by GitHub
parent 9eea9289b1
commit c3e67d6820
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 1021 additions and 940 deletions

View File

@ -17,14 +17,14 @@
*/
class daE_FB_c : public fopEn_enemy_c {
public:
/* 806B6520 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806B65C0 */ void JointCallBack(J3DJoint*, int);
/* 806B660C */ void draw();
/* 806B6520 */ int ctrlJoint(J3DJoint*, J3DModel*);
/* 806B65C0 */ static int JointCallBack(J3DJoint*, int);
/* 806B660C */ int draw();
/* 806B67E0 */ void setBck(int, u8, f32, f32);
/* 806B688C */ void setActionMode(int, int);
/* 806B6898 */ void damage_check();
/* 806B6D20 */ void mBgLineCheck();
/* 806B6DF4 */ void search_check();
/* 806B6D20 */ bool mBgLineCheck();
/* 806B6DF4 */ bool search_check();
/* 806B6F40 */ void executeWait();
/* 806B70FC */ void executeAttack();
/* 806B78A0 */ void executeDamage();
@ -34,36 +34,36 @@ public:
/* 806B811C */ void cc_set();
/* 806B82B4 */ void normal_eff_set();
/* 806B83F0 */ void dead_eff_set();
/* 806B8518 */ void execute();
/* 806B85C8 */ void _delete();
/* 806B8678 */ void CreateHeap();
/* 806B88E0 */ void create();
/* 806B8518 */ int execute();
/* 806B85C8 */ int _delete();
/* 806B8678 */ int CreateHeap();
/* 806B88E0 */ cPhs__Step create();
/* 806B8C1C */ daE_FB_c();
private:
/* 0x5AC */ request_of_phase_process_class mPhaseReq;
/* 0x5B4 */ mDoExt_McaMorfSO* mpMorfSO;
/* 0x5B4 */ mDoExt_McaMorfSO* mpMorf;
/* 0x5B8 */ mDoExt_invisibleModel mInvisibleModel;
/* 0x5C0 */ mDoExt_brkAnm* mpBrkAnm;
/* 0x5C4 */ Z2CreatureEnemy mCreatureSound;
/* 0x668 */ s32 field_0x668;
/* 0x66C */ s32 field_0x66c;
/* 0x668 */ s32 mActionMode;
/* 0x66C */ s32 mMoveMode;
/* 0x670 */ s32 field_0x670;
/* 0x674 */ cXyz mUnused; // This offset is a guess based on debug
/* 0x674 */ cXyz mUnusedVec;
/* 0x680 */ s16 field_0x680;
/* 0x684 */ f32 field_0x684;
/* 0x684 */ f32 mModelSize;
/* 0x688 */ u32 mShadowKey;
/* 0x68C */ s16 field_0x68c;
/* 0x68C */ u16 field_0x68c;
/* 0x68E */ u8 field_0x68e;
/* 0x68F */ u8 field_0x68f;
/* 0x690 */ u8 field_0x690;
/* 0x691 */ u8 mPrm1;
/* 0x692 */ u8 mPrm2;
/* 0x691 */ u8 swBit0;
/* 0x692 */ u8 swBit1;
/* 0x694 */ s16 mRotation;
/* 0x696 */ s16 field_0x696;
/* 0x698 */ s16 mHeadAngle;
/* 0x69C */ s32 field_0x69c;
/* 0x6A0 */ u8 mPrm0;
/* 0x6A0 */ u8 mType;
/* 0x6A4 */ dBgS_AcchCir mAcchCir;
/* 0x6E4 */ dBgS_ObjAcch mObjAcch;
/* 0x8BC */ dCcD_Stts mStts;
@ -71,11 +71,10 @@ private:
/* 0xA30 */ dCcD_Sph mSphere2;
/* 0xB68 */ dCcD_Sph mAtSph;
/* 0xCA0 */ dCcU_AtInfo mAtInfo;
/* 0xCC4 */ u8 field_0xCC4[0xCD8 - 0xCC4];
/* 0xCD8 */ u16 field_0xcd8[3]; // This might be incorrect
/* 0xCDE */ u8 field_0xCDE[0xCE0 - 0xCDE];
// Seems that the orig developers didn't size mKeys correctly, as ideally it should be len=8, not len=7:
/* 0xCC4 */ u32 mKeys[7];
/* 0xCE0 */ u8 mHIOInit;
/* 0xCE1 */ u8 field_0xce1[0xce8 - 0xce1];
/* 0xCE1 */ u8 field_0xce1[0xCE8 - 0xCE1];
};
STATIC_ASSERT(sizeof(daE_FB_c) == 0xce8);
@ -83,9 +82,11 @@ STATIC_ASSERT(sizeof(daE_FB_c) == 0xce8);
class daE_FB_HIO_c : public JORReflexible {
public:
/* 806B64AC */ daE_FB_HIO_c();
/* 806B8EE4 */ virtual ~daE_FB_HIO_c();
/* 806B8EE4 */ virtual ~daE_FB_HIO_c() {}
#if DEBUG
void genMessage(JORMContext*);
#endif
/* 0x04 */ s8 field_0x4;
/* 0x08 */ f32 model_size;

View File

@ -290,6 +290,10 @@ public:
field_0xdea = 1;
}
int checkCannon() {
return mCannon;
}
static void make_prm(u32* o_params, csXyz* o_paramsEx, u8 param_2, u8 i_itemNo, u8 i_itemBit, u8 i_itemType, u8 param_6) {
o_paramsEx->x = (i_itemBit << 8) | (i_itemNo & 0xFF);
o_paramsEx->z = (param_6 << 13) | (param_2 << 1) | i_itemType;

File diff suppressed because it is too large Load Diff