mirror of
https://github.com/zeldaret/tp
synced 2026-07-07 22:22:05 -04:00
d_a_obj_lv6bemos2 and d_a_obj_lv6bemos almost equivalent (#2527)
* initial work * All but one function equivalent * Missed comment that needed to be removed * initial work * got to CreateHeap * d_a_obj_lv6bemos almost equivalent
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
#ifndef D_A_OBJ_LV6BEMOS_H
|
||||
#define D_A_OBJ_LV6BEMOS_H
|
||||
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
/**
|
||||
@@ -11,23 +13,51 @@
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daObjL6Bm_c : public fopAc_ac_c {
|
||||
class daObjL6Bm_c : public dBgS_MoveBgActor {
|
||||
public:
|
||||
typedef void (daObjL6Bm_c::*actionFunc)();
|
||||
|
||||
/* 80C7CE24 */ void initBaseMtx();
|
||||
/* 80C7CE60 */ void setBaseMtx();
|
||||
/* 80C7CED4 */ void Create();
|
||||
/* 80C7CFD0 */ void CreateHeap();
|
||||
/* 80C7D2F8 */ void create1st();
|
||||
/* 80C7D3A4 */ void Execute(f32 (**)[3][4]);
|
||||
/* 80C7CED4 */ int Create();
|
||||
/* 80C7CFD0 */ int CreateHeap();
|
||||
/* 80C7D2F8 */ cPhs__Step create1st();
|
||||
/* 80C7D3A4 */ int Execute(f32 (**)[3][4]);
|
||||
/* 80C7D4F4 */ void action();
|
||||
/* 80C7D598 */ void actionWait();
|
||||
/* 80C7D6CC */ void actionFindPlayer();
|
||||
/* 80C7D894 */ void actionAttack();
|
||||
/* 80C7D898 */ void Draw();
|
||||
/* 80C7DABC */ void Delete();
|
||||
/* 80C7D898 */ int Draw();
|
||||
/* 80C7DABC */ int Delete();
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x918 - 0x568];
|
||||
void setAction(u8 action) { mAction = action; }
|
||||
|
||||
u8 getSwBit() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
u8 getArg0() { return fopAcM_GetParamBit(this, 0x10, 8); }
|
||||
u8 getArg1() { return fopAcM_GetParamBit(this, 0x18, 8); }
|
||||
|
||||
/* 0x5A0 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5A8 */ J3DModel* mBeamosModel;
|
||||
/* 0x5AC */ dCcD_Stts mStts;
|
||||
/* 0x5E8 */ dCcD_Cps field_0x5e8;
|
||||
/* 0x72C */ cM3dGCpsS field_0x72c;
|
||||
/* 0x748 */ dCcD_Sph field_0x748;
|
||||
/* 0x880 */ J3DModel* mBeamEffectModel;
|
||||
/* 0x884 */ mDoExt_btkAnm* mpBtkAnm;
|
||||
/* 0x888 */ mDoExt_btkAnm* mpBtkAnm2;
|
||||
/* 0x88C */ mDoExt_bckAnm* mBeamBck;
|
||||
/* 0x890 */ u8 field_0x890;
|
||||
/* 0x891 */ u8 field_0x891;
|
||||
/* 0x892 */ s16 field_0x892;
|
||||
/* 0x894 */ cXyz field_0x894;
|
||||
/* 0x8A0 */ u8 field_0x8a0[0x8b2 - 0x8a0];
|
||||
/* 0x8B2 */ s16 field_0x8b2;
|
||||
/* 0x8B4 */ s16 field_0x8b4;
|
||||
/* 0x8B8 */ dBgS_ObjGndChk mObjGndChk;
|
||||
/* 0x90C */ f32 field_0x90c;
|
||||
/* 0x910 */ u8 mAction;
|
||||
/* 0x911 */ u8 field_0x911;
|
||||
/* 0x914 */ f32 field_0x914;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjL6Bm_c) == 0x918);
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef D_A_OBJ_LV6BEMOS2_H
|
||||
#define D_A_OBJ_LV6BEMOS2_H
|
||||
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
/**
|
||||
@@ -11,20 +13,23 @@
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daObjLv6Bm_c : public fopAc_ac_c {
|
||||
class daObjLv6Bm_c : public dBgS_MoveBgActor {
|
||||
public:
|
||||
typedef void (daObjLv6Bm_c::*actionFunc)();
|
||||
typedef void (daObjLv6Bm_c::*effectFunc)();
|
||||
|
||||
/* 80C7E30C */ void initBaseMtx();
|
||||
/* 80C7E374 */ void setBaseMtx();
|
||||
/* 80C7E448 */ void Create();
|
||||
/* 80C7E764 */ void CreateHeap();
|
||||
/* 80C7EB7C */ void create1st();
|
||||
/* 80C7EC6C */ void Execute(f32 (**)[3][4]);
|
||||
/* 80C7E448 */ int Create();
|
||||
/* 80C7E764 */ int CreateHeap();
|
||||
/* 80C7EB7C */ cPhs__Step create1st();
|
||||
/* 80C7EC6C */ int Execute(f32 (**)[3][4]);
|
||||
/* 80C7EE50 */ void action();
|
||||
/* 80C7F2A4 */ void calcBeam();
|
||||
/* 80C7F904 */ void checkFindPlayer();
|
||||
/* 80C7FA54 */ void checkSearchPlayer();
|
||||
/* 80C7FBA4 */ void getSearchDistance();
|
||||
/* 80C7FBFC */ void getBeamSearchDistance();
|
||||
/* 80C7F904 */ int checkFindPlayer();
|
||||
/* 80C7FA54 */ int checkSearchPlayer();
|
||||
/* 80C7FBA4 */ f32 getSearchDistance();
|
||||
/* 80C7FBFC */ f32 getBeamSearchDistance();
|
||||
/* 80C7FC54 */ void effect_proc();
|
||||
/* 80C7FD8C */ void effectWait();
|
||||
/* 80C7FD90 */ void initEffectSet0();
|
||||
@@ -41,11 +46,89 @@ public:
|
||||
/* 80C81154 */ void actionDead();
|
||||
/* 80C81428 */ void initActionEnd();
|
||||
/* 80C814FC */ void actionEnd();
|
||||
/* 80C81500 */ void Draw();
|
||||
/* 80C816A8 */ void Delete();
|
||||
/* 80C81500 */ int Draw();
|
||||
/* 80C816A8 */ int Delete();
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0xabc - 0x568];
|
||||
u8 getSwNo() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
u8 getSwNo2() { return fopAcM_GetParamBit(this, 8, 8); }
|
||||
u8 getSwNo3() { return fopAcM_GetParamBit(this, 16, 8); }
|
||||
|
||||
s16 getHeadJoint() { return mJoints[0]; }
|
||||
s16 getBigGearJoint() { return mJoints[1]; }
|
||||
s16 getSmallGear0Joint() { return mJoints[2]; }
|
||||
s16 getSmallGear1Joint() { return mJoints[3]; }
|
||||
s16 getSmallGear2Joint() { return mJoints[4]; }
|
||||
|
||||
u8 getSearchDist() { return fopAcM_GetParamBit(this, 0x1C, 4); }
|
||||
u16 getBeamSearchDist() { return field_0xa32 & 15; }
|
||||
|
||||
BOOL checkLockOnCamera() { return (field_0xa32 & 0x8000) >> 15; }
|
||||
|
||||
/* 0x568 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5A8 */ J3DModel* mBeamosModel;
|
||||
/* 0x5AC */ mDoExt_brkAnm* mpBrkAnm;
|
||||
/* 0x5B0 */ mDoExt_bckAnm* mpBckAnm;
|
||||
/* 0x5B4 */ J3DModel* mBeamEffectModel;
|
||||
/* 0x5B8 */ mDoExt_btkAnm* mpBtkAnm;
|
||||
/* 0x5BC */ mDoExt_btkAnm* mpBtkAnm2;
|
||||
/* 0x5C0 */ mDoExt_bckAnm* mpBckAnm2;
|
||||
/* 0x5C4 */ dCcD_Stts mStts;
|
||||
/* 0x600 */ dCcD_Sph field_0x600;
|
||||
/* 0x738 */ dCcD_Cps field_0x738;
|
||||
/* 0x87C */ dCcD_Cyl field_0x87c;
|
||||
/* 0x9B8 */ s16 mJoints[5];
|
||||
/* 0x9C2 */ s16 field_0x9c2;
|
||||
/* 0x9C4 */ s16 field_0x9c4;
|
||||
/* 0x9C6 */ s16 field_0x9c6;
|
||||
/* 0x9C8 */ s16 field_0x9c8;
|
||||
/* 0x9CA */ s16 field_0x9ca;
|
||||
/* 0x9CC */ s16 field_0x9cc;
|
||||
/* 0x9CE */ s16 field_0x9ce;
|
||||
/* 0x9D0 */ s16 field_0x9d0;
|
||||
/* 0x9D2 */ s16 field_0x9d2;
|
||||
/* 0x9D4 */ s16 field_0x9d4;
|
||||
/* 0x9D6 */ s16 field_0x9d6;
|
||||
/* 0x9D8 */ s16 field_0x9d8;
|
||||
/* 0x9DA */ s16 field_0x9da;
|
||||
/* 0x9DC */ s16 field_0x9dc;
|
||||
/* 0x9DE */ s16 field_0x9de;
|
||||
/* 0x9E0 */ J3DMaterial* mEyeMaterial;
|
||||
/* 0x9E4 */ cXyz field_0x9e4;
|
||||
/* 0x9F0 */ csXyz field_0x9f0;
|
||||
/* 0x9F8 */ cXyz field_0x9f8;
|
||||
/* 0xA04 */ u8 field_0xa04[0xa0c - 0xa04];
|
||||
/* 0xA0C */ f32 field_0xa0c;
|
||||
/* 0xA10 */ u8 field_0xa10;
|
||||
/* 0xA11 */ u8 field_0xa11;
|
||||
/* 0xA12 */ u8 field_0xa12;
|
||||
/* 0xA13 */ u8 field_0xa13;
|
||||
/* 0xA14 */ s8 field_0xa14;
|
||||
/* 0xA15 */ u8 field_0xa15;
|
||||
/* 0xA16 */ u8 mMode;
|
||||
/* 0xA17 */ u8 field_0xa17;
|
||||
/* 0xA18 */ u8 field_0xa18;
|
||||
/* 0xA19 */ s8 field_0xa19;
|
||||
/* 0xA1A */ u8 field_0xa1a;
|
||||
/* 0xA1B */ u8 field_0xa1b;
|
||||
/* 0xA1C */ u8 field_0xa1c;
|
||||
/* 0xA20 */ int field_0xa20;
|
||||
/* 0XA24 */ JPABaseEmitter* field_0xa24;
|
||||
/* 0xA28 */ f32 field_0xa28;
|
||||
/* 0xA2C */ f32 field_0xa2c;
|
||||
/* 0xA30 */ u16 field_0xa30;
|
||||
/* 0xA32 */ u16 field_0xa32;
|
||||
/* 0xA34 */ s16 field_0xa34;
|
||||
/* 0xA36 */ u8 field_0xa36;
|
||||
/* 0xA37 */ u8 field_0xa37;
|
||||
/* 0xA38 */ JPABaseEmitter* field_0xa38[2];
|
||||
/* 0xA40 */ JPABaseEmitter* field_0xa40[4];
|
||||
/* 0xA50 */ JPABaseEmitter* field_0xa50;
|
||||
/* 0xA54 */ JPABaseEmitter* field_0xa54;
|
||||
/* 0xA58 */ cXyz field_0xa58;
|
||||
/* 0xA64 */ cXyz field_0xa64;
|
||||
/* 0xA70 */ cXyz field_0xa70;
|
||||
/* 0xA7C */ Z2SoundObjSimple field_0xa7c;
|
||||
/* 0xA9C */ Z2SoundObjSimple field_0xa9c;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjLv6Bm_c) == 0xabc);
|
||||
|
||||
@@ -835,6 +835,11 @@ public:
|
||||
getTriPla(&poly);
|
||||
return cBgW_CheckBWall(poly.mNormal.y);
|
||||
}
|
||||
static bool checkGroundHit() {
|
||||
cM3dGPla poly;
|
||||
getTriPla(&poly);
|
||||
return cBgW_CheckBGround(poly.mNormal.y);
|
||||
}
|
||||
|
||||
static dBgS_ObjLinChk mLineCheck;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user