d_a_bmd - 98% matching (#876)

Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
This commit is contained in:
123456789758 2025-09-14 13:36:19 -04:00 committed by GitHub
parent 77fabb2878
commit 17d677a5ad
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 1840 additions and 92 deletions

View File

@ -8,9 +8,8 @@
#include "d/d_particle.h"
#include "SSystem/SComponent/c_phase.h"
class bmd_class : public fopAc_ac_c {
public:
/* 0x290 */ u8 m290[0x2AC - 0x290];
struct bmd_class {
/* 0x000 */ fopEn_enemy_c actor;
/* 0x2AC */ request_of_phase_process_class mPhs;
/* 0x2B4 */ mDoExt_McaMorf* mpMorf;
/* 0x2B8 */ mDoExt_brkAnm* mpBrkAnm;
@ -22,10 +21,12 @@ public:
/* 0x2D0 */ J3DModel* m2D0;
/* 0x2D4 */ mDoExt_brkAnm* m2D4;
/* 0x2D8 */ f32 m2D8;
/* 0x2DC */ u8 m2DC;
/* 0x2DC */ s8 m2DC;
/* 0x2DD */ u8 m2DD[0x2E0 - 0x2DD];
/* 0x2E0 */ cXyz m2E0;
/* 0x2EC */ u8 m2EC[0x2FE - 0x2EC];
/* 0x2EC */ u8 m2EC[0x2FA - 0x2EC];
/* 0x2FA */ s16 m2FA;
/* 0x2FC */ u8 m2FC[0x2FE - 0x2FC];
/* 0x2FE */ s16 m2FE;
/* 0x300 */ s16 mMode;
/* 0x302 */ s16 m302;
@ -37,7 +38,7 @@ public:
/* 0x314 */ s16 m314;
/* 0x316 */ u8 m316[0x318 - 0x316];
/* 0x318 */ cXyz m318;
/* 0x324 */ u32 m324;
/* 0x324 */ f32 m324;
/* 0x328 */ f32 m328;
/* 0x32C */ u8 m32C[0x330 - 0x32C];
/* 0x330 */ u8 m330;
@ -46,9 +47,9 @@ public:
/* 0x333 */ u8 m333[0x334 - 0x333];
/* 0x334 */ s16 m334;
/* 0x336 */ s16 m336;
/* 0x338 */ u8 m338[0x33C - 0x338];
/* 0x338 */ f32 m338;
/* 0x33C */ dBgS_AcchCir mAcchCir;
/* 0x37C */ dBgS_Acch mAcch;
/* 0x37C */ dBgS_ObjAcch mAcch;
/* 0x540 */ dCcD_Stts mStts;
/* 0x57C */ dCcD_Sph mBodySph;
/* 0x6A8 */ dCcD_Sph mCoreSph;
@ -56,9 +57,9 @@ public:
/* 0x904 */ s16 m904;
/* 0x906 */ u8 m906[0x908 - 0x906];
/* 0x908 */ f32 m908;
/* 0x90C */ u8 m90C[0x90E - 0x90C];
/* 0x90E */ s16 m90E;
/* 0x910 */ u8 m910[0x91C - 0x910];
/* 0x90C */ csXyz m90C[2];
/* 0x918 */ s16 m918;
/* 0x91A */ u8 m91A[0x91C - 0x91A];
/* 0x91C */ f32 m91C;
/* 0x920 */ f32 m920;
/* 0x924 */ cXyz m924;
@ -66,16 +67,18 @@ public:
/* 0x93C */ s16 m93C;
/* 0x93E */ s16 m93E;
/* 0x940 */ s16 m940;
/* 0x942 */ u8 m942[0x944 - 0x942];
/* 0x942 */ s8 m942;
/* 0x943 */ u8 m943[0x944 - 0x943];
/* 0x944 */ Mtx m944[5];
/* 0xA34 */ Mtx mA34;
/* 0xA64 */ dBgW* mpBgW[6];
/* 0xA7C */ u8 mA7C[0xA8A - 0xA7C];
/* 0xA8A */ s16 mA8A;
/* 0xA8C */ u8 mA8C[0xA90 - 0xA8C];
/* 0xA64 */ dBgW* pm_bgw[6];
/* 0xA7C */ JPABaseEmitter* mA7C[3];
/* 0xA88 */ s16 mA88[2];
/* 0xA8C */ s16 mA8C;
/* 0xA8E */ u8 mA8E[0xA90 - 0xA8E];
/* 0xA90 */ dPa_smokeEcallBack mA90[7];
/* 0xB70 */ u8 mB70;
/* 0xB71 */ u8 mB71;
/* 0xB71 */ s8 mB71;
/* 0xB72 */ s16 mB72;
/* 0xB74 */ s16 mB74;
/* 0xB76 */ s16 mB76;
@ -83,23 +86,18 @@ public:
/* 0xB7A */ u8 mB7A[0xB7C - 0xB7A];
/* 0xB7C */ cXyz mB7C;
/* 0xB88 */ cXyz mB88;
/* 0xB94 */ u8 mB94[0xB9C - 0xB94];
/* 0xB94 */ s16 mB94;
/* 0xB96 */ s16 mB96;
/* 0xB98 */ u8 mB98[0xB9C - 0xB98];
/* 0xB9C */ f32 mB9C;
/* 0xBA0 */ u8 mBA0[0xBA8 - 0xBA0];
/* 0xBA0 */ f32 mBA0;
/* 0xBA4 */ f32 mBA4;
/* 0xBA8 */ f32 mBA8;
/* 0xBAC */ WIND_INFLUENCE mWindInfluence;
/* 0xBD8 */ f32 mBD8;
/* 0xBDC */ f32 mBDC;
/* 0xBE0 */ u8 mBE0;
/* 0xBE1 */ u8 mBE1[0xBE4 - 0xBE1];
};
class daBmd_HIO_c {
public:
daBmd_HIO_c();
public:
/* Place member variables here */
};
}; // Size: 0xBE4
#endif /* D_A_BMD_H */

View File

@ -205,7 +205,7 @@ enum {
/* 0xC5 */ DSNAP_TYPE_UNKC5,
/* 0xC6 */ DSNAP_TYPE_UNKC6,
/* 0xC7 */ DSNAP_TYPE_BTD,
/* 0xC8 */ DSNAP_TYPE_UNKC8,
/* 0xC8 */ DSNAP_TYPE_BMD,
/* 0xC9 */ DSNAP_TYPE_BST,
/* 0xCA */ DSNAP_TYPE_UNKCA,
/* 0xCB */ DSNAP_TYPE_UNKCB,

File diff suppressed because it is too large Load Diff

View File

@ -564,16 +564,16 @@ void move(bmdfoot_class* i_this) {
if (boss != NULL) {
sVar1 = (u16)(fopAcM_GetParam(actor) & 0xF) << 13;
cMtx_YrotS(*calc_mtx, boss->shape_angle.y);
cMtx_XrotM(*calc_mtx, boss->shape_angle.x);
cMtx_ZrotM(*calc_mtx, boss->shape_angle.z);
cMtx_YrotS(*calc_mtx, boss->actor.shape_angle.y);
cMtx_XrotM(*calc_mtx, boss->actor.shape_angle.x);
cMtx_ZrotM(*calc_mtx, boss->actor.shape_angle.z);
cMtx_YrotM(*calc_mtx, sVar1);
actor->current.angle.y = sVar1 + boss->shape_angle.y;
actor->current.angle.y = sVar1 + boss->actor.shape_angle.y;
local_20.x = 0.0f;
local_20.y = REG14_F(3);
local_20.z = REG14_F(4) + 180.0f;
MtxPosition(&local_20, &cStack_2c);
actor->current.pos = boss->current.pos + cStack_2c;
actor->current.pos = boss->actor.current.pos + cStack_2c;
switch (i_this->m2BA) {
case 0:
wait(i_this);

View File

@ -467,7 +467,7 @@ void hand_move(bmdhand_class* i_this) {
hand_s* pcVar9 = i_this->m324;
if (boss != NULL) {
actor->current.angle.y = ((u16)actor->base.mParameters & 0x1f) * -0xccc + REG8_S(4) + -13000 + boss->shape_angle.y;
actor->current.angle.y = ((u16)actor->base.mParameters & 0x1f) * -0xccc + REG8_S(4) + -13000 + boss->actor.shape_angle.y;
MTXCopy(boss->mpMorf->mpModel->getAnmMtx(boss_joint_d[(actor->base.mParameters & 0x1fU)]), *calc_mtx);
local_40.x = REG14_F(6);
local_40.y = REG14_F(7);

View File

@ -330,7 +330,7 @@ void daMachine_c::attack() {
field_0xc04.setFrame(0.0f);
field_0xc04.setPlaySpeed(f31);
field_0xc78 += 1;
// Fall through
// fallthrough
case 2:
if(field_0xc04.play()) {
field_0xc78 = NULL;