diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2025-12-29 14:12:01 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-29 04:12:01 -0800 |
| commit | e77f841d351a2623490acdf0913eaf8f97f844d2 (patch) | |
| tree | 7e1b0b2f04f945cb053899eef9fbf2041e212c41 /include/SSystem | |
| parent | 1f391dc5bde660c21b4f9d5cf942049f94c6ac2e (diff) | |
Work on d_cc_d debug (#3002)
Diffstat (limited to 'include/SSystem')
| -rw-r--r-- | include/SSystem/SComponent/c_cc_d.h | 36 | ||||
| -rw-r--r-- | include/SSystem/SComponent/c_m3d.h | 7 | ||||
| -rw-r--r-- | include/SSystem/SComponent/c_m3d_g_lin.h | 3 |
3 files changed, 31 insertions, 15 deletions
diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h index 0ad2f717a7..413664746b 100644 --- a/include/SSystem/SComponent/c_cc_d.h +++ b/include/SSystem/SComponent/c_cc_d.h @@ -78,6 +78,10 @@ struct cCcD_SrcSphAttr { cM3dGSphS mSph; }; +struct cCcD_SrcCylAttr { + cM3dGCylS mCyl; +}; + class cCcD_DivideInfo { private: /* 0x00 */ u32 mXDivInfo; @@ -214,7 +218,7 @@ public: cCcD_Obj* GetHitObj() { return mHitObj; } const cCcD_Obj* GetHitObj() const { return mHitObj; } u32 MskSPrm(u32 mask) const { return mSPrm & mask; } - u32 MskRPrm(u32 mask) { return mRPrm & mask; } + u32 MskRPrm(u32 mask) const { return mRPrm & mask; } void OnSPrmBit(u32 flag) { mSPrm |= flag; } void OffSPrmBit(u32 flag) { mSPrm &= ~flag; } u32 ChkSPrm(u32 prm) const { return MskSPrm(prm); } @@ -228,7 +232,8 @@ STATIC_ASSERT(0x10 == sizeof(cCcD_ObjCommonBase)); #pragma pack(1) class cCcD_ObjAt : public cCcD_ObjCommonBase { public: - cCcD_ObjAt() { mType = 0; } + cCcD_ObjAt() { Ct(); } + void Ct() { mType = 0; } virtual ~cCcD_ObjAt() {} void SetHit(cCcD_Obj*); void Set(cCcD_SrcObjAt const&); @@ -241,7 +246,7 @@ public: void SetType(u32 type) { mType = type; } void SetAtp(int atp) { mAtp = atp; } void ClrSet() { OffSPrmBit(1); } - u32 ChkHit() { return MskRPrm(1); } + u32 ChkHit() const { return MskRPrm(1); } protected: /* 0x10 */ int mType; @@ -266,7 +271,7 @@ public: u32 GetGrp() const { return MskSPrm(0x1E); } bool ChkSet() const { return MskSPrm(1); } void ClrSet() { OffSPrmBit(1); } - u32 ChkHit() { return MskRPrm(1); } + u32 ChkHit() const { return MskRPrm(1); } private: /* 0x10 */ int mType; @@ -276,6 +281,8 @@ STATIC_ASSERT(0x14 == sizeof(cCcD_ObjTg)); class cCcD_ObjCo : public cCcD_ObjCommonBase { public: + cCcD_ObjCo() { Ct(); } + void Ct() {} virtual ~cCcD_ObjCo() {} void SetHit(cCcD_Obj*); void ClrHit(); @@ -292,7 +299,7 @@ public: void OnCoSameActorHit() { OnSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SAME_ACTOR_HIT); } void OffCoSameActorHit() { OffSPrmBit(cCcD_ObjCommonBase::CO_SPRM_SAME_ACTOR_HIT); } void ClrSet() { OffSPrmBit(1); } - u32 ChkHit() { return MskRPrm(1); } + u32 ChkHit() const { return MskRPrm(1); } void Set(cCcD_SrcObjCo const& src) { cCcD_ObjCommonBase::Set(src.mBase); } }; @@ -368,12 +375,12 @@ public: void ClrAtHit() { mObjAt.ClrHit(); } void ClrTgHit() { mObjTg.ClrHit(); } void ClrCoHit() { mObjCo.ClrHit(); } - u32 ChkAtHit() { return mObjAt.ChkHit(); } - u32 ChkTgHit() { return mObjTg.ChkHit(); } - u32 ChkCoHit() { return mObjCo.ChkHit(); } - cCcD_Obj* GetAtHitObj() { return mObjAt.GetHitObj(); } - cCcD_Obj* GetTgHitObj() { return mObjTg.GetHitObj(); } - cCcD_Obj* GetCoHitObj() { return mObjCo.GetHitObj(); } + u32 ChkAtHit() const { return mObjAt.ChkHit(); } + u32 ChkTgHit() const { return mObjTg.ChkHit(); } + u32 ChkCoHit() const { return mObjCo.ChkHit(); } + cCcD_Obj* GetAtHitObj() const { return (cCcD_Obj*)mObjAt.GetHitObj(); } + cCcD_Obj* GetTgHitObj() const { return (cCcD_Obj*)mObjTg.GetHitObj(); } + cCcD_Obj* GetCoHitObj() const { return (cCcD_Obj*)mObjCo.GetHitObj(); } u32 ChkAtSPrm(u32 prm) { return mObjAt.ChkSPrm(prm); } u32 ChkCoSPrm(u32 prm) const { return mObjCo.ChkSPrm(prm); } void OnTgNoSlingHitInfSet() { mObjTg.OnSPrmBit(0x40); } @@ -463,9 +470,9 @@ class cCcD_GObjInf : public cCcD_Obj { public: cCcD_GObjInf() {} virtual ~cCcD_GObjInf() {} - virtual void ClrAtHit() { mObjAt.ClrHit(); } - virtual void ClrTgHit() { mObjTg.ClrHit(); } - virtual void ClrCoHit() { mObjCo.ClrHit(); } + virtual void ClrAtHit() { cCcD_ObjHitInf::ClrAtHit(); } + virtual void ClrTgHit() { cCcD_ObjHitInf::ClrTgHit(); } + virtual void ClrCoHit() { cCcD_ObjHitInf::ClrCoHit(); } virtual cCcD_GObjInf const* GetGObjInf() const { return this; } virtual cCcD_GObjInf* GetGObjInf() { return this; } }; @@ -582,6 +589,7 @@ public: virtual void CalcAabBox(); virtual bool GetNVec(cXyz const&, cXyz*) const; virtual void getShapeAccess(cCcD_ShapeAttr::Shape*) const; + void Set(const cCcD_SrcCylAttr& src) { cM3dGCyl::Set(src.mCyl); } const cM3dGCyl* GetShapeP() const { return this; } diff --git a/include/SSystem/SComponent/c_m3d.h b/include/SSystem/SComponent/c_m3d.h index 4c4d947100..6634100209 100644 --- a/include/SSystem/SComponent/c_m3d.h +++ b/include/SSystem/SComponent/c_m3d.h @@ -108,4 +108,11 @@ inline bool cM3d_Cross_CylSph(const cM3dGCyl* cyl, const cM3dGSph* sph, Vec* out return cM3d_Cross_CylSph(cyl, sph, out, &sp10); } +#ifdef DEBUG + +bool cM3d_UpMtx_Base(const Vec& param_1, const Vec& param_2, Mtx param_3); +bool cM3d_UpMtx(const Vec& param_1, Mtx param_2); + +#endif + #endif diff --git a/include/SSystem/SComponent/c_m3d_g_lin.h b/include/SSystem/SComponent/c_m3d_g_lin.h index 85bfc28437..d6b86ebcf0 100644 --- a/include/SSystem/SComponent/c_m3d_g_lin.h +++ b/include/SSystem/SComponent/c_m3d_g_lin.h @@ -18,7 +18,7 @@ public: void SetStartEnd(const cXyz&, const cXyz&); void SetStartEnd(const Vec&, const Vec&); void CalcPos(Vec*, f32) const; - void CalcVec(Vec* pOut) const { VECSubtract(&this->mEnd, &this->mStart, pOut); } + void CalcVec(Vec* pOut) const { PSVECSubtract(&this->mEnd, &this->mStart, pOut); } void SetEnd(const cXyz&); void set(const Vec& i_start, const Vec& i_end) { SetStartEnd(i_start, i_end); } @@ -31,6 +31,7 @@ public: cXyz& GetEndP(void) { return mEnd; } cXyz& GetEnd() { return mEnd; } const cXyz& GetEnd() const { return mEnd; } + f32 GetLen() const { return PSVECDistance(&mStart, &mEnd); } }; // Size = 0x1C STATIC_ASSERT(0x1C == sizeof(cM3dGLin)); |
