some cc doc and obj_brg work (#2184)

* some cc doc

* document dCcD material types

* work on d_a_obj_brg
This commit is contained in:
TakaRikka
2024-07-22 11:33:37 -07:00
committed by GitHub
parent 70e278ee84
commit 6bf2f3cc55
35 changed files with 2989 additions and 458 deletions
+15 -14
View File
@@ -6,6 +6,7 @@
#include "SSystem/SComponent/c_m3d_g_cyl.h"
#include "SSystem/SComponent/c_m3d_g_sph.h"
#include "SSystem/SComponent/c_m3d_g_tri.h"
#include "f_pc/f_pc_manager.h"
typedef struct _GXColor GXColor;
class fopAc_ac_c;
@@ -319,34 +320,34 @@ private:
class cCcD_Stts {
private:
/* 0x00 */ cXyz mXyz;
/* 0x0C */ fopAc_ac_c* mActor;
/* 0x10 */ int mApid;
/* 0x14 */ u8 mWeight;
/* 0x00 */ cXyz m_cc_move;
/* 0x0C */ fopAc_ac_c* mp_actor;
/* 0x10 */ fpc_ProcID m_apid;
/* 0x14 */ u8 m_weight;
/* 0x15 */ u8 field_0x15;
/* 0x16 */ u8 mTg;
/* 0x16 */ u8 m_dmg;
public:
cCcD_Stts() {}
/* 801410A4 vt[3] */ virtual ~cCcD_Stts() {}
/* 80263894 vt[4] */ virtual const cCcD_GStts* GetGStts() const;
/* 8026389C vt[5] */ virtual cCcD_GStts* GetGStts();
/* 802638A4 */ void Init(int, int, void*, unsigned int);
/* 802638A4 */ void Init(int, int, void*, fpc_ProcID);
/* 80263904 vt[6] */ virtual void Ct();
/* 80263934 */ void PlusCcMove(f32, f32, f32);
/* 8026395C */ void ClrCcMove();
/* 80263970 */ void PlusDmg(int);
/* 80263984 */ f32 GetWeightF() const;
/* 802649E8 vt[7] */ virtual void ClrAt() {}
/* 802649EC vt[8] */ virtual void ClrTg() { mTg = 0; }
/* 802649EC vt[8] */ virtual void ClrTg() { m_dmg = 0; }
u8 GetWeightUc() const { return mWeight; }
void SetWeight(u8 weight) { mWeight = weight; }
fopAc_ac_c* GetAc() { return mActor; }
fopAc_ac_c* GetActor() const { return mActor; }
void SetActor(void* ac) { mActor = (fopAc_ac_c*)ac; }
cXyz* GetCCMoveP() { return &mXyz; }
unsigned int GetApid() const { return mApid; }
u8 GetWeightUc() const { return m_weight; }
void SetWeight(u8 weight) { m_weight = weight; }
fopAc_ac_c* GetAc() { return mp_actor; }
fopAc_ac_c* GetActor() const { return mp_actor; }
void SetActor(void* ac) { mp_actor = (fopAc_ac_c*)ac; }
cXyz* GetCCMoveP() { return &m_cc_move; }
fpc_ProcID GetApid() const { return m_apid; }
}; // Size = 0x1C
STATIC_ASSERT(0x1C == sizeof(cCcD_Stts));
+4 -3
View File
@@ -30,10 +30,11 @@ public:
bool cross(const cM3dGSph*, cXyz*) const;
bool cross(const cM3dGCyl*, cXyz*) const;
void calcMinMax(cXyz*, cXyz*);
const cXyz* GetCP(void) const { return &mCenter; }
f32 GetR(void) const { return mRadius; }
const cXyz* GetCP() const { return &mCenter; }
cXyz* GetCP() { return &mCenter; }
f32 GetR() const { return mRadius; }
f32* GetRP() { return &mRadius; }
f32 GetH(void) const { return mHeight; }
f32 GetH() const { return mHeight; }
cXyz& GetC() { return mCenter; }
bool Cross(const cM3dGCps* cps, cXyz* xyz) const { return cM3d_Cross_CpsCyl(*cps, *this, xyz); }
+2
View File
@@ -221,6 +221,8 @@ public:
bool ChkFlush() { return field_0x91 & 8; }
void SetLock() { mFlags |= LOCK_e; }
bool ChkRoofRegist() { return field_0x91 & 4;}
cBgD_Vtx_t* GetVtxTbl() const { return pm_vtx_tbl; }
int GetVtxNum() const { return pm_bgd->m_v_num; }
public:
/* 0x18 */ MtxP pm_base; // Model Matrix
+4
View File
@@ -5,6 +5,10 @@
class dBgWSv : public dBgW {
public:
dBgWSv() {
field_0xc0 = NULL;
}
/* 80082F98 */ u8 Set(cBgD_t*, u32);
/* 80083020 */ void CopyBackVtx();
/* 8008308C */ bool CrrPosWork(cXyz*, int, int, int);
+12 -1
View File
@@ -36,6 +36,17 @@ enum dCcD_hitSe {
/* 23 */ dCcD_SE_23,
};
enum dCcD_Material {
dCcD_MTRL_NONE,
dCcD_MTRL_FIRE,
dCcD_MTRL_ICE,
dCcD_MTRL_WIND,
dCcD_MTRL_LIGHT,
dCcD_MTRL_UNK_5,
dCcD_MTRL_UNK_6,
dCcD_MTRL_UNK_7,
};
enum dCcG_At_Spl {
/* 0x0 */ dCcG_At_Spl_UNK_0,
/* 0x1 */ dCcG_At_Spl_UNK_1,
@@ -135,7 +146,7 @@ class dCcD_Stts : public cCcD_Stts, public dCcD_GStts {
public:
dCcD_Stts() {}
/* 80083850 */ virtual cCcD_GStts* GetGStts();
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
/* 80083860 */ void Init(int weight, int, fopAc_ac_c* pactor);
/* 800838F4 */ virtual void Ct();
/* 80083928 */ virtual void ClrAt();
/* 80083934 */ virtual void ClrTg();
+2 -2
View File
@@ -26,7 +26,7 @@ public:
/* 800872B0 */ void Move();
/* 800872D0 */ void Draw();
/* 8008730C */ void MassClear();
/* 80087330 */ int ChkAtTgMtrlHit(u8, u8);
/* 80087330 */ BOOL ChkAtTgMtrlHit(u8, u8);
/* 8008640C */ virtual void SetPosCorrect(cCcD_Obj*, cXyz*, cCcD_Obj*, cXyz*, f32);
/* 80086240 */ virtual void SetCoGObjInf(bool, bool, cCcD_GObjInf*, cCcD_GObjInf*, cCcD_Stts*,
@@ -47,7 +47,7 @@ public:
void SetMass(cCcD_Obj* i_obj, u8 i_priority) { mMass_Mng.Set(i_obj, i_priority); }
void PrepareMass() { mMass_Mng.Prepare(); }
static u8 m_mtrl_hit_tbl[64];
static bool m_mtrl_hit_tbl[64];
// /* 0x0000 */ cCcS mCCcS;
/* 0x284C */ dCcMassS_Mng mMass_Mng;
+2
View File
@@ -98,6 +98,8 @@ inline void mDoAud_sceneBgmStart() {
Z2AudioMgr::getInterface()->sceneBgmStart();
}
inline void mDoAud_seDeleteObject(Vec*) {}
inline void mDoAud_load2ndDynamicWave() {
Z2AudioMgr::getInterface()->load2ndDynamicWave();
}
+79 -8
View File
@@ -2,6 +2,43 @@
#define D_A_OBJ_BRG_H
#include "f_op/f_op_actor_mng.h"
#include "d/bg/d_bg_w_sv.h"
#include "d/cc/d_cc_d.h"
struct br_s {
/* 0x000 */ J3DModel* mpBridgeModel;
/* 0x004 */ J3DModel* mpKnotModels[2];
/* 0x00C */ JPABaseEmitter* field_0xc;
/* 0x010 */ JPABaseEmitter* field_0x10;
/* 0x014 */ mDoExt_3DlineMat1_c field_0x014;
/* 0x050 */ cXyz field_0x050[3];
/* 0x074 */ cXyz field_0x074[3];
/* 0x098 */ cXyz field_0x098[2];
/* 0x0B0 */ cXyz field_0x0b0;
/* 0x0BC */ cXyz field_0x0bc;
/* 0x0C8 */ cXyz field_0x0c8;
/* 0x0D4 */ csXyz field_0x0d4;
/* 0x0DC */ f32 field_0x0dc;
/* 0x0E0 */ f32 field_0x0e0;
/* 0x0E4 */ f32 field_0x0e4;
/* 0x0E8 */ f32 field_0x0e8;
/* 0x0EC */ f32 field_0x0ec;
/* 0x0F0 */ s16 field_0x0f0;
/* 0x0F2 */ s16 field_0x0f2;
/* 0x0F4 */ s16 field_0x0f4;
/* 0x0F6 */ s16 field_0x0f6;
/* 0x0F8 */ s16 field_0x0f8;
/* 0x0FA */ s16 field_0x0fa;
/* 0x0FC */ s16 field_0x0fc;
/* 0x0FE */ s16 field_0x0fe[2];
/* 0x104 */ dCcD_Cyl mCyl[2];
/* 0x37C */ dKy_tevstr_c mTevstr;
/* 0x704 */ s8 field_0x704;
/* 0x705 */ s8 field_0x705;
/* 0x706 */ u8 field_0x706;
/* 0x707 */ u8 field_0x707;
/* 0x708 */ u8 field_0x708;
};
/**
* @ingroup actors-objects
@@ -12,17 +49,51 @@
*
*/
class obj_brg_class : public fopAc_ac_c {
private:
/* 0x568 */ u8 field_0x568[0xb1f8 - 0x568];
public:
/* 0x0568 */ request_of_phase_process_class mPhase;
/* 0x0570 */ br_s mBr[24];
/* 0xAE90 */ mDoExt_3DlineMat1_c field_0xae90;
/* 0xAECC */ dBgWSv* mpBgW;
/* 0xAED0 */ int field_0xaed0;
/* 0xAED4 */ int field_0xaed4;
/* 0xAED8 */ int field_0xaed8;
/* 0xAEDC */ f32 field_0xaedc;
/* 0xAEE0 */ f32 field_0xaee0;
/* 0xAEE4 */ f32 field_0xaee4;
/* 0xAEE8 */ f32 field_0xaee8;
/* 0xAEEC */ f32 field_0xaeec;
/* 0xAEF0 */ f32 field_0xaef0;
/* 0xAEF4 */ f32 field_0xaef4;
/* 0xAEF8 */ cXyz mEndPos;
/* 0xAF04 */ cXyz field_0xaf04;
/* 0xAF10 */ cXyz field_0xaf10;
/* 0xAF1C */ s16 field_0xaf1c;
/* 0xAF1E */ s16 field_0xaf1e;
/* 0xAF20 */ s16 field_0xaf20;
/* 0xAF22 */ s16 field_0xaf22;
/* 0xAF24 */ s16 field_0xaf24;
/* 0xAF26 */ s16 field_0xaf26;
/* 0xAF28 */ s16 field_0xaf28;
/* 0xAF2A */ u8 field_0xAF2A[0xAF2C - 0xAF2A];
/* 0xAF2C */ s16 field_0xaf2c;
/* 0xAF2E */ s16 field_0xaf2e;
/* 0xAF30 */ f32 field_0xaf30;
/* 0xAF34 */ dCcD_Cyl mCyl[2];
/* 0xB1AC */ dCcD_Stts mCcStts;
/* 0xB1E8 */ u8 mType;
/* 0xB1E9 */ u8 field_0xb1e9;
/* 0xB1EA */ s8 field_0xb1ea;
/* 0xB1EB */ s8 field_0xb1eb;
/* 0xB1EC */ s8 field_0xb1ec;
/* 0xB1ED */ s8 field_0xb1ed;
/* 0xB1EE */ u8 field_0xB1EE[0xB1EF - 0xB1EE];
/* 0xB1EF */ s8 field_0xb1ef;
/* 0xB1F0 */ s8 field_0xb1f0;
/* 0xB1F1 */ u8 field_0xb1f1;
/* 0xB1F2 */ u8 field_0xb1f2[0xb1f8 - 0xB1F2];
};
STATIC_ASSERT(sizeof(obj_brg_class) == 0xb1f8);
struct br_s {
public:
/* 80BC1F54 */ ~br_s();
/* 80BC2000 */ br_s();
};
#endif /* D_A_OBJ_BRG_H */