mirror of
https://github.com/zeldaret/tp
synced 2026-07-10 15:13:54 -04:00
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:
@@ -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));
|
||||
|
||||
@@ -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); }
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -98,6 +98,8 @@ inline void mDoAud_sceneBgmStart() {
|
||||
Z2AudioMgr::getInterface()->sceneBgmStart();
|
||||
}
|
||||
|
||||
inline void mDoAud_seDeleteObject(Vec*) {}
|
||||
|
||||
inline void mDoAud_load2ndDynamicWave() {
|
||||
Z2AudioMgr::getInterface()->load2ndDynamicWave();
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user