__sinit_d_com_inf_game_cpp OK (#140)

* mass mng header

* d_cc_d start

* c_cc_d ok

* tmp commit

* almost, reordering of vtable functions

* progress

* more progress

* cleanup, still non matching

* mark all of d_cc_d as nonmatching to OK

* c_cc_s

* c_cc_s OK

* d_cc_mass_s OK

* cleanup

* gameinfo __sinit, not OK

* a bit of cleanup

* format

* remove asm

Co-authored-by: lepelog <lepelog@users.noreply.github.com>
This commit is contained in:
lepelog
2021-08-17 02:59:00 +02:00
committed by GitHub
parent 9765844d92
commit 38eca47ad5
114 changed files with 2085 additions and 5680 deletions
+154 -85
View File
@@ -31,71 +31,86 @@ public:
/* 0x10 */ f32 _10;
/* 0x14 */ f32 _14;
};
cCcD_ShapeAttr() {}
/* 8008556C vt[2] */ virtual ~cCcD_ShapeAttr() {}
/* 802649D8 vt[3] */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const;
/* 802649D8 vt[3] */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const {
return false;
}
/* vt[4] */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const = 0;
/* vt[5] */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const = 0;
/* vt[6] */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const = 0;
/* vt[7] */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const = 0;
/* vt[8] */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const = 0;
/* vt[9] */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const = 0;
/* 802649E0 vt[10]*/ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const;
/* 802649E0 vt[10]*/ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const { return false; }
/* vt[11]*/ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const = 0;
/* vt[12]*/ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const = 0;
/* vt[13]*/ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const = 0;
/* vt[14]*/ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const = 0;
/* vt[15]*/ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const = 0;
/* vt[16]*/ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const = 0;
/* 80084E38 vt[17]*/ virtual const cXyz& GetCoCP() const;
/* 80084E2C vt[18]*/ virtual cXyz& GetCoCP();
/* 80084E38 vt[17]*/ virtual const cXyz& GetCoCP() const { return m_virtual_center; }
/* 80084E2C vt[18]*/ virtual cXyz& GetCoCP() { return m_virtual_center; }
/* vt[19]*/ virtual void CalcAabBox() = 0;
/* vt[20]*/ virtual bool GetNVec(cXyz const&, cXyz*) const = 0;
/* 80263A64 vt[21]*/ virtual void getShapeAccess(cCcD_ShapeAttr::Shape*) const;
static f32 m_virtual_center[3];
cM3dGAab& GetWorkAab() { return mAab; }
cM3dGAab const& GetWorkAab() const { return mAab; }
static cXyz m_virtual_center;
};
STATIC_ASSERT(0x20 == sizeof(cCcD_ShapeAttr));
class cCcD_TriAttr : public cCcD_ShapeAttr, public cM3dGTri {
public:
/* 80084E44 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const;
/* 80263A88 */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const;
/* 80263BCC */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const;
/* 80084E4C */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const;
/* 80263B90 */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
/* 80084E54 */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const;
/* 80263B58 */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const;
/* 80084E9C */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const;
/* 80084EBC */ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const;
/* 80084EA4 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const;
/* 80084E8C */ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const;
/* 80084EAC */ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const;
/* 80084E94 */ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const;
/* 80084EB4 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const;
/* 80263C04 */ virtual void CalcAabBox();
/* 80263C9C */ virtual bool GetNVec(cXyz const&, cXyz*) const;
/* 80264938 */ virtual ~cCcD_TriAttr();
/* 80263A88 */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const;
/* 80263BCC */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const;
/* 80263B90 */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
/* 80084E54 */ virtual bool CrossAtTg(cCcD_ShapeAttr const& shape, cXyz* xyz) const {
return shape.CrossAtTg(*this, xyz);
}
/* 80084E4C */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const { return false; }
/* 80084E44 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const { return false; }
/* 80263B58 */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const;
/* 80084EBC */ virtual bool CrossCo(cCcD_ShapeAttr const& shape, f32* f) const {
return shape.CrossCo(*this, f);
}
/* 80084EB4 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const { return false; }
/* 80084EAC */ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const { return false; }
/* 80084EA4 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const { return false; }
/* 80084E9C */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const { return false; }
/* 80084E94 */ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const { return false; }
/* 80084E8C */ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const { return false; }
/* 80264938 */ virtual ~cCcD_TriAttr() {}
cCcD_TriAttr() {}
};
class cCcD_CpsAttr : public cCcD_ShapeAttr, public cM3dGCps {
public:
/* 80085450 */ virtual ~cCcD_CpsAttr();
cCcD_CpsAttr() {}
/* 80085450 */ virtual ~cCcD_CpsAttr() {}
/* 80263DC0 */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
/* 80263E04 */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const;
/* 80084FE4 */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const;
/* 80084FDC */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const;
/* 80084FD4 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const;
/* 80084FE4 */ virtual bool CrossAtTg(cCcD_ShapeAttr const& shape, cXyz* xyz) const {
return shape.CrossAtTg(*this, xyz);
}
/* 80084FDC */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const { return false; }
/* 80084FD4 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const { return false; }
/* 80263D38 */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const;
/* 80263D7C */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const;
/* 80263F24 */ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const;
/* 80085024 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const;
/* 8008502C */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const;
/* 8008501C */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const;
/* 80263ED4 */ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const;
/* 80263F74 */ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const;
/* 80085034 */ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const;
/* 80085034 */ virtual bool CrossCo(cCcD_ShapeAttr const& shape, f32* f) const {
return shape.CrossCo(*this, f);
}
/* 8008502C */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const { return false; }
/* 80085024 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const { return false; }
/* 8008501C */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const { return false; }
/* 80263FC4 */ virtual void CalcAabBox();
/* 80264014 */ virtual bool GetNVec(cXyz const&, cXyz*) const;
};
@@ -104,23 +119,28 @@ STATIC_ASSERT(0x40 == sizeof(cCcD_CpsAttr));
class cCcD_SphAttr : public cCcD_ShapeAttr, public cM3dGSph {
public:
/* 8008721C */ virtual ~cCcD_SphAttr();
cCcD_SphAttr() {}
/* 8008721C */ virtual ~cCcD_SphAttr() {}
/* 80084B44 */ virtual const cXyz& GetCoCP() const { return mCenter; }
/* 80037A54 */ virtual cXyz& GetCoCP() { return mCenter; }
/* 80084B5C */ virtual bool CrossAtTg(cCcD_ShapeAttr const& shape, cXyz* xyz) const {
return shape.CrossAtTg(*this, xyz);
}
/* 80084B54 */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const { return false; }
/* 80084B4C */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const { return false; }
/* 80084BAC */ virtual bool CrossCo(cCcD_ShapeAttr const& shape, f32* f) const {
return shape.CrossCo(*this, f);
}
/* 80084BA4 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const { return false; }
/* 80084B9C */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const { return false; }
/* 80084B94 */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const { return false; }
/* 80264538 */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const;
/* 802645C0 */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const;
/* 80084B4C */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const;
/* 80084B54 */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const;
/* 80084B5C */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const;
/* 802644EC */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const;
/* 8026457C */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
/* 80264688 */ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const;
/* 80084B94 */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const;
/* 80084B9C */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const;
/* 80084BA4 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const;
/* 80084BAC */ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const;
/* 80264644 */ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const;
/* 802645F8 */ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const;
/* 80084B44 */ virtual const cXyz& GetCoCP() const;
/* 80037A54 */ virtual cXyz& GetCoCP();
/* 802646E0 */ virtual void CalcAabBox();
/* 8026476C */ virtual bool GetNVec(cXyz const&, cXyz*) const;
/* 80264808 */ virtual void getShapeAccess(cCcD_ShapeAttr::Shape*) const;
@@ -131,23 +151,28 @@ STATIC_ASSERT(0x34 == sizeof(cCcD_SphAttr));
class cCcD_CylAttr : public cCcD_ShapeAttr, public cM3dGCyl {
public:
/* 800854E0 */ virtual ~cCcD_CylAttr();
cCcD_CylAttr() {}
/* 800854E0 */ virtual ~cCcD_CylAttr() {}
/* 80084CC0 */ virtual const cXyz& GetCoCP() const { return mCenter; }
/* 8026420C */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
/* 802641C8 */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const;
/* 80084CC8 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const;
/* 80264250 */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const;
/* 80084CD0 */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const;
/* 80084CD8 */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const;
/* 80084CD8 */ virtual bool CrossAtTg(cCcD_ShapeAttr const& shape, cXyz* xyz) const {
return shape.CrossAtTg(*this, xyz);
}
/* 80084CD0 */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const { return false; }
/* 80084CC8 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const { return false; }
/* 8026417C */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const;
/* 80264288 */ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const;
/* 80264310 */ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const;
/* 80084D10 */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const;
/* 80084D18 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const;
/* 80084D20 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const;
/* 80084D28 */ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const;
/* 80084D28 */ virtual bool CrossCo(cCcD_ShapeAttr const& shape, f32* f) const {
return shape.CrossCo(*this, f);
}
/* 80084D20 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const { return false; }
/* 80084D18 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const { return false; }
/* 80084D10 */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const { return false; }
/* 802642CC */ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const;
/* 80084CC0 */ virtual const cXyz& GetCoCP() const;
/* 80037A4C */ virtual cXyz& GetCoCP();
/* 80037A4C */ virtual cXyz& GetCoCP() { return mCenter; }
/* 80264368 */ virtual void CalcAabBox();
/* 802643D0 */ virtual bool GetNVec(cXyz const&, cXyz*) const;
/* 802644B8 */ virtual void getShapeAccess(cCcD_ShapeAttr::Shape*) const;
@@ -158,13 +183,13 @@ STATIC_ASSERT(0x38 == sizeof(cCcD_CylAttr));
class cCcD_DivideInfo {
private:
/* 0x00 */ u32 field_0x0;
/* 0x04 */ u32 field_0x4;
/* 0x08 */ u32 field_0x8;
/* 0x00 */ u32 mXDivInfo;
/* 0x04 */ u32 mYDivInfo;
/* 0x08 */ u32 mZDivInfo;
/* 0x0C vtable */
public:
virtual void test(); // temp to build OK, remove later
virtual ~cCcD_DivideInfo();
cCcD_DivideInfo() {}
virtual ~cCcD_DivideInfo() {}
/* 80263358 */ void Set(u32, u32, u32);
/* 80263368 */ bool Chk(cCcD_DivideInfo const&) const;
}; // Size = 0x10
@@ -184,8 +209,8 @@ private:
/* 0x3C */ f32 mInvScaledZDiff;
public:
virtual void test(); // temp to build OK, remove later
virtual ~cCcD_DivideArea();
cCcD_DivideArea() {}
virtual ~cCcD_DivideArea() {}
/* 802633A8 */ void SetArea(cM3dGAab const&);
/* 802634D4 */ void CalcDivideInfo(cCcD_DivideInfo*, cM3dGAab const&, u32);
/* 802636A0 */ void CalcDivideInfoOverArea(cCcD_DivideInfo*, cM3dGAab const&);
@@ -217,10 +242,10 @@ struct cCcD_SrcObj {
class cCcD_GStts {
public:
/* 800837B0 */ ~cCcD_GStts();
/* 800837B0 */ virtual ~cCcD_GStts() {}
private:
/* 0x00 */ void* vtable;
/* 0x00 vtable */
}; // Size = 0x4
class cCcD_Stts {
@@ -233,6 +258,7 @@ private:
/* 0x16 */ u8 mTg;
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();
@@ -242,8 +268,8 @@ public:
/* 8026395C */ void ClrCcMove();
/* 80263970 */ void PlusDmg(int);
/* 80263984 */ f32 GetWeightF() const;
/* 802649E8 vt[7] */ virtual void ClrAt();
/* 802649EC vt[8] */ virtual void ClrTg();
/* 802649E8 vt[7] */ virtual void ClrAt() {}
/* 802649EC vt[8] */ virtual void ClrTg() { mTg = 0; }
u8 GetWeightUc() const { return mWeight; }
void SetWeight(u8 weight) { mWeight = weight; }
fopAc_ac_c* GetAc() { return mActor; }
@@ -254,30 +280,39 @@ STATIC_ASSERT(0x1C == sizeof(cCcD_Stts));
class cCcD_Obj; // placeholder
class cCcD_ObjCommonBase {
public:
/* 8008409C */ ~cCcD_ObjCommonBase();
/* 802639B0 */ void ct();
void setSPrm(s32 sprm) { mSPrm = sprm; }
s32 getSPrm() { return mSPrm; }
protected:
/* 0x00 */ int mSPrm;
/* 0x04 */ int mRPrm;
/* 0x08 */ cCcD_Obj* mHitObj;
/* 0x0C */ void* vtable;
/* 0x0C vtable */
public:
cCcD_ObjCommonBase() { ct(); }
/* 8008409C */ virtual ~cCcD_ObjCommonBase() {}
/* 802639B0 */ void ct();
void setSPrm(s32 sprm) { mSPrm = sprm; }
s32 getSPrm() const { return mSPrm; }
void setRPrm(s32 rprm) { mRPrm = rprm; }
s32 getRPrm() const { return mRPrm; }
cCcD_Obj* getHitObj() { return mHitObj; }
u32 MskSPrm(u32 mask) const { return mSPrm & mask; }
};
STATIC_ASSERT(0x10 == sizeof(cCcD_ObjCommonBase));
class cCcD_ObjAt : public cCcD_ObjCommonBase {
public:
/* 80084040 */ ~cCcD_ObjAt();
cCcD_ObjAt() { mType = 0; }
/* 80084040 */ virtual ~cCcD_ObjAt() {}
/* 8026483C */ void SetHit(cCcD_Obj*);
/* 8026484C */ void Set(cCcD_SrcObjAt const&);
/* 80264868 */ void ClrHit();
int GetType() const { return mType; }
u32 GetGrp() const { return MskSPrm(0x1E); }
bool ChkSet() const { return MskSPrm(1); }
u8 GetAtp() const { return mAtp; }
u32 MskType(u32 msk) const { return mType & msk; }
private:
protected:
/* 0x10 */ int mType;
/* 0x14 */ u8 mAtp;
};
@@ -286,12 +321,15 @@ STATIC_ASSERT(0x18 == sizeof(cCcD_ObjAt));
class cCcD_ObjTg : public cCcD_ObjCommonBase {
public:
/* 80083FE4 */ ~cCcD_ObjTg();
cCcD_ObjTg() { ct(); }
/* 80083FE4 */ virtual ~cCcD_ObjTg() {}
/* 80264880 */ void Set(cCcD_SrcObjTg const&);
/* 80264894 */ void SetGrp(u32);
/* 802648B0 */ void ClrHit();
/* 802648C8 */ void SetHit(cCcD_Obj*);
int GetType() const { return mType; }
u32 GetGrp() const { return MskSPrm(0x1E); }
bool ChkSet() const { return MskSPrm(1); }
private:
/* 0x10 */ int mType;
@@ -301,27 +339,55 @@ STATIC_ASSERT(0x14 == sizeof(cCcD_ObjTg));
class cCcD_ObjCo : public cCcD_ObjCommonBase {
public:
/* 80083F88 */ ~cCcD_ObjCo();
/* 80083F88 */ virtual ~cCcD_ObjCo() {}
/* 802648D8 */ void SetHit(cCcD_Obj*);
/* 802648E8 */ void ClrHit();
/* 80264900 */ void SetIGrp(u32);
/* 8026491C */ void SetVsGrp(u32);
u32 GetGrp() const { return MskSPrm(0x1E); }
bool ChkSet() const { return MskSPrm(1); }
u32 GetVsGrp() const { return MskSPrm(0x70); }
u32 GetIGrp() const { return MskSPrm(0xE); }
u32 ChkNoCrr() const { return MskSPrm(0x100); }
u32 ChkSph3DCrr() const { return MskSPrm(0x80); }
};
STATIC_ASSERT(0x10 == sizeof(cCcD_ObjCo));
class cCcD_ObjHitInf {
private:
protected:
/* 0x000 */ cCcD_ObjAt mObjAt;
/* 0x018 */ cCcD_ObjTg mObjTg;
/* 0x02C */ cCcD_ObjCo mObjCo;
/* 0x03C vtable */
public:
/* 80083EC8 */ virtual ~cCcD_ObjHitInf();
/* 80083EC8 */ virtual ~cCcD_ObjHitInf() {}
/* 802639C4 */ void Set(cCcD_SrcObjHitInf const&);
cCcD_ObjAt& GetObjAt() { return mObjAt; }
cCcD_ObjTg& GetObjTg() { return mObjTg; }
cCcD_ObjCo& GetObjCo() { return mObjCo; }
u32 GetTgGrp() const { return mObjTg.GetGrp(); }
u32 GetAtGrp() const { return mObjAt.GetGrp(); }
u32 GetCoGrp() const { return mObjCo.GetGrp(); }
int GetTgType() const { return mObjTg.GetType(); }
int GetAtType() const { return mObjAt.GetType(); }
bool ChkTgSet() const { return mObjTg.ChkSet(); }
bool ChkAtSet() const { return mObjAt.ChkSet(); }
bool ChkCoSet() const { return mObjCo.ChkSet(); }
u32 ChkCoSameActorHit() const { return mObjCo.MskSPrm(0x400); }
u32 GetCoVsGrp() const { return mObjCo.GetVsGrp(); }
u32 GetCoIGrp() const { return mObjCo.GetIGrp(); }
u8 GetAtAtp() const { return mObjAt.GetAtp(); }
u32 ChkAtNoTgHitInfSet() const { return mObjAt.MskSPrm(0x20); }
u32 ChkTgNoAtHitInfSet() const { return mObjTg.MskSPrm(0x20); }
u32 ChkCoNoCoHitInfSet() const { return mObjCo.MskSPrm(0x200); }
bool ChkTgNoSlingHitInfSet() const { return mObjTg.MskSPrm(0x40); }
void SetAtHit(cCcD_Obj* obj) { mObjAt.SetHit(obj); }
void SetTgHit(cCcD_Obj* obj) { mObjTg.SetHit(obj); }
void SetCoHit(cCcD_Obj* obj) { mObjCo.SetHit(obj); }
bool ChkAtType(u32 type) const { return mObjAt.MskType(type); }
u32 ChkCoNoCrr() const { return mObjCo.ChkNoCrr(); }
u32 ChkCoSph3DCrr() const { return mObjCo.ChkSph3DCrr(); }
}; // Size = 0x40
@@ -331,18 +397,20 @@ class cCcD_GObjInf;
class cCcD_Obj : public cCcD_ObjHitInf {
public:
/* 80083DE0 */ virtual ~cCcD_Obj();
/* 800851A4 */ virtual cCcD_GObjInf const* GetGObjInf() const;
/* 800847C8 */ virtual cCcD_GObjInf* GetGObjInf();
/* 80084BE8 */ virtual cCcD_ShapeAttr const* GetShapeAttr() const;
/* 80085130 */ virtual cCcD_ShapeAttr* GetShapeAttr();
/* 80084BF0 */ virtual void Draw(_GXColor const&);
cCcD_Obj() { ct(); }
/* 80083DE0 */ virtual ~cCcD_Obj() {}
/* 800851A4 */ virtual cCcD_GObjInf const* GetGObjInf() const { return NULL; }
/* 800847C8 */ virtual cCcD_GObjInf* GetGObjInf() { return NULL; }
/* 80084BE8 */ virtual cCcD_ShapeAttr const* GetShapeAttr() const { return NULL; }
/* 80085130 */ virtual cCcD_ShapeAttr* GetShapeAttr() { return NULL; }
/* 80084BF0 */ virtual void Draw(_GXColor const&) {}
/* 80263A10 */ void ct();
/* 80263A1C */ void Set(cCcD_SrcObj const&);
fopAc_ac_c* GetAc();
cCcD_Stts* GetStts() { return mStts; }
cCcD_DivideInfo& GetDivideInfo() { return mDivideInfo; }
int ChkBsRevHit() const { return field_0x40 & 2; }
private:
/* 0x040 */ int field_0x40;
@@ -354,12 +422,13 @@ STATIC_ASSERT(0x58 == sizeof(cCcD_Obj));
class cCcD_GObjInf : public cCcD_Obj {
public:
/* 80083CE8 */ virtual ~cCcD_GObjInf();
/* 800851A0 */ virtual cCcD_GObjInf* GetGObjInf();
/* 80084BE4 */ virtual cCcD_GObjInf const* GetGObjInf() const;
/* 80085138 */ virtual void ClrAtHit();
/* 80085158 */ virtual void ClrTgHit();
/* 8008517C */ virtual void ClrCoHit();
cCcD_GObjInf() {}
/* 80083CE8 */ virtual ~cCcD_GObjInf() {}
/* 80085138 */ virtual void ClrAtHit() { mObjAt.ClrHit(); }
/* 80085158 */ virtual void ClrTgHit() { mObjTg.ClrHit(); }
/* 8008517C */ virtual void ClrCoHit() { mObjCo.ClrHit(); }
/* 80084BE4 */ virtual cCcD_GObjInf const* GetGObjInf() const { return this; }
/* 800851A0 */ virtual cCcD_GObjInf* GetGObjInf() { return this; }
};
STATIC_ASSERT(0x58 == sizeof(cCcD_GObjInf));
+3 -3
View File
@@ -32,9 +32,9 @@ public:
/* 80264C5C */ void ClrCoHitInf();
/* 80264CF0 */ void ClrTgHitInf();
/* 80264D90 */ void ClrAtHitInf();
/* 80264E2C */ int ChkNoHitAtTg(cCcD_Obj*, cCcD_Obj*);
/* 80264E2C */ bool ChkNoHitAtTg(cCcD_Obj*, cCcD_Obj*);
/* 80264F40 */ void ChkAtTg();
/* 8026515C */ void ChkNoHitCo(cCcD_Obj*, cCcD_Obj*);
/* 8026515C */ bool ChkNoHitCo(cCcD_Obj*, cCcD_Obj*);
/* 80265230 */ void ChkCo();
/* 802653A0 vt[2] */ virtual void CalcTgPlusDmg(cCcD_Obj*, cCcD_Obj*, cCcD_Stts*, cCcD_Stts*);
/* 802653C8 */ void SetAtTgCommonHitInf(cCcD_Obj*, cCcD_Obj*, cXyz*);
@@ -55,7 +55,7 @@ public:
cCcD_GObjInf const*, cCcD_Stts*,
cCcD_Stts*, cCcD_GStts*, cCcD_GStts*);
/* 80265E10 vt[8] */ virtual bool ChkNoHitGCo(cCcD_Obj*, cCcD_Obj*);
/* 80030BDC vt[9] */ virtual ~cCcS();
/* 80030BDC vt[9] */ virtual ~cCcS() {}
/* 80265E18 vt[10] */ virtual void MoveAfterCheck();
/* 80265DF4 vt[11] */ virtual void SetCoGCorrectProc(cCcD_Obj*, cCcD_Obj*);
}; // Size = 0x284C
-1
View File
@@ -12,7 +12,6 @@ public:
/* 0x0C */ cXyz mMax;
/* 0x18 vtable */
virtual void test(); // temp to build OK, remove later
virtual ~cM3dGAab() {}
void Set(const cXyz*, const cXyz*);
bool CrossY(const cXyz*) const;
+7 -4
View File
@@ -13,12 +13,15 @@ struct cM3dGCylS {
}; // Size = 0x14
class cM3dGSph;
class cM3dGCyl : public cM3dGCylS {
/* 0x14 vtable */
class cM3dGCyl {
public:
/* 0x00 */ cXyz mCenter;
/* 0x0C */ f32 mRadius;
/* 0x10 */ f32 mHeight;
/* 0x14 vtable */
cM3dGCyl() {}
cM3dGCyl(const cXyz*, f32, f32);
virtual void test(); // temp to build OK, remove later
virtual ~cM3dGCyl();
virtual ~cM3dGCyl() {}
void Set(const cM3dGCylS&);
void Set(const cXyz&, f32, f32);
void SetC(const cXyz&);
+1 -1
View File
@@ -9,7 +9,7 @@ class cM3dGPla {
public:
cXyz mNormal;
f32 mD;
cM3dGPla();
cM3dGPla() {}
cM3dGPla(const cXyz*, f32);
virtual ~cM3dGPla() {}
bool crossInfLin(const cXyz&, const cXyz&, cXyz&) const;
+2 -2
View File
@@ -18,8 +18,8 @@ public:
/* 0x0C */ f32 mRadius;
/* 0x10 vtable */
virtual void test(); // temp to build OK, remove later
virtual ~cM3dGSph();
cM3dGSph() {}
virtual ~cM3dGSph() {}
void SetC(const cXyz&);
void Set(const cXyz&, f32);
void Set(const cM3dGSphS&);
+1
View File
@@ -15,6 +15,7 @@ public:
Vec mB;
Vec mC;
cM3dGTri() {}
virtual ~cM3dGTri() {}
bool cross(const cM3dGCyl*, Vec*) const;
void setPos(const Vec*, const Vec*, const Vec*);
-6
View File
@@ -75,12 +75,6 @@ struct cXyz : Vec {
x = f;
}
void set(f32 pX, f32 pY, f32 pZ) {
x = pX;
y = pY;
z = pZ;
}
void setMin(const cXyz& other) {
if (x > other.x) {
x = other.x;