mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07: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 */
|
||||
|
||||
+144
-134
File diff suppressed because it is too large
Load Diff
+215
-140
File diff suppressed because it is too large
Load Diff
@@ -768,7 +768,7 @@ void daArrow_c::arrowShooting() {
|
||||
}
|
||||
|
||||
if (mArrowType == 2) {
|
||||
field_0x688.SetAtMtrl(04);
|
||||
field_0x688.SetAtMtrl(dCcD_MTRL_LIGHT);
|
||||
field_0x688.OnAtNoHitMark();
|
||||
} else {
|
||||
if (mArrowType == 4) {
|
||||
|
||||
@@ -11,8 +11,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct mDoLib_clipper {
|
||||
static u8 mClipper[92];
|
||||
static f32 mSystemFar;
|
||||
@@ -303,7 +301,6 @@ extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__8dCcD_Sph[36];
|
||||
extern "C" extern void* __vt__8dCcD_Cyl[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
|
||||
@@ -330,7 +330,7 @@ void daNbomb_c::tgHitCallback(dCcD_GObjInf* i_hitObj) {
|
||||
procCarryInit();
|
||||
onStateFlg0(FLG0_SET_HOOKSHOT_OFFSET);
|
||||
} else if (i_hitObj->ChkAtType(0x200)) {
|
||||
if (i_hitObj->GetAtMtrl() == 3 && !checkStateCarry() && !checkStateExplode() &&
|
||||
if (i_hitObj->GetAtMtrl() == dCcD_MTRL_WIND && !checkStateCarry() && !checkStateExplode() &&
|
||||
fopAcM_GetParam(this) != PRM_FLOWER_BOMB)
|
||||
{
|
||||
cLib_addCalcPos(&field_0xc20, *i_hitObj->GetAtVecP() * 2.0f, 0.5f, 10.0f, 1.0f);
|
||||
@@ -340,7 +340,7 @@ void daNbomb_c::tgHitCallback(dCcD_GObjInf* i_hitObj) {
|
||||
onStateFlg0(FLG0_BOMB_HIT);
|
||||
}
|
||||
|
||||
if (i_hitObj->GetAtMtrl() == 2) {
|
||||
if (i_hitObj->GetAtMtrl() == dCcD_MTRL_ICE) {
|
||||
setFreeze();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,8 +10,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
@@ -582,7 +580,6 @@ extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__8dCcD_Cyl[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" u8 item_info__10dItem_data[1020 + 4 /* padding */];
|
||||
|
||||
@@ -854,7 +854,7 @@ static int daE_ARROW_Create(fopAc_ac_c* i_this) {
|
||||
a_this->mCcAtSph.SetAtHitCallback(atHit_CB);
|
||||
|
||||
if (a_this->mArrowType == ARROW_TYPE_FIRE) {
|
||||
a_this->mCcAtSph.SetAtMtrl(1);
|
||||
a_this->mCcAtSph.SetAtMtrl(dCcD_MTRL_FIRE);
|
||||
}
|
||||
|
||||
a_this->mCcAtSph.StartCAt(a_this->current.pos);
|
||||
|
||||
@@ -2044,10 +2044,10 @@ static cPhs__Step daE_BA_Create(fopAc_ac_c* i_this) {
|
||||
_this->mSph.SetStts(&_this->mStts);
|
||||
if (_this->mType == e_ba_class::TYPE_FIRE) {
|
||||
_this->mSph.SetAtType(0x100);
|
||||
_this->mSph.SetAtMtrl(1);
|
||||
_this->mSph.SetAtMtrl(dCcD_MTRL_FIRE);
|
||||
} else if (_this->mType == e_ba_class::TYPE_ICE) {
|
||||
_this->mSph.SetAtType(0x100);
|
||||
_this->mSph.SetAtMtrl(2);
|
||||
_this->mSph.SetAtMtrl(dCcD_MTRL_ICE);
|
||||
}
|
||||
|
||||
_this->mAcch.Set(fopAcM_GetPosition_p(_this), fopAcM_GetOldPosition_p(_this), _this,
|
||||
|
||||
@@ -1868,7 +1868,7 @@ s32 daE_FZ_c::create() {
|
||||
mAtSph.SetAtSpl(dCcG_At_Spl_UNK_1);
|
||||
setActionMode(ACT_ROLLMOVE,0);
|
||||
} else {
|
||||
mAtSph.SetAtMtrl(2);
|
||||
mAtSph.SetAtMtrl(dCcD_MTRL_ICE);
|
||||
mRadiusBase = 1.0f;
|
||||
cM_rnd() < 0.5f ? setActionMode(ACT_WAIT,0) : setActionMode(ACT_MOVE,0);
|
||||
}
|
||||
|
||||
@@ -1072,7 +1072,7 @@ s32 daE_FZ_c::create() {
|
||||
mAtSph.SetAtSpl(dCcG_At_Spl_UNK_1);
|
||||
setActionMode(ACT_ROLLMOVE,0);
|
||||
} else {
|
||||
mAtSph.SetAtMtrl(2);
|
||||
mAtSph.SetAtMtrl(dCcD_MTRL_ICE);
|
||||
mRadiusBase = 1.0f;
|
||||
cM_rnd() < 0.5f ? setActionMode(ACT_WAIT,0) : setActionMode(ACT_MOVE,0);
|
||||
}
|
||||
|
||||
@@ -1695,7 +1695,8 @@ extern "C" asm void __dt__8cM3dGAabFv() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm br_s::~br_s() {
|
||||
extern "C" asm void __dt__4br_sFv() {
|
||||
// asm br_s::~br_s() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_brg/d_a_obj_brg/__dt__4br_sFv.s"
|
||||
}
|
||||
@@ -1705,7 +1706,8 @@ asm br_s::~br_s() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm br_s::br_s() {
|
||||
extern "C" asm void __ct__4br_sFv() {
|
||||
// asm br_s::br_s() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_brg/d_a_obj_brg/__ct__4br_sFv.s"
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user