diff --git a/configure.py b/configure.py index 20979a9fa..ad8325300 100644 --- a/configure.py +++ b/configure.py @@ -392,7 +392,7 @@ config.libs = [ Object(NonMatching, "d/d_bg_w_deform.cpp"), Object(NonMatching, "d/d_bg_w_hf.cpp"), Object(NonMatching, "d/d_bg_w_sv.cpp"), - Object(NonMatching, "d/d_cc_d.cpp"), + Object(Matching, "d/d_cc_d.cpp"), Object(NonMatching, "d/d_cc_mass_s.cpp"), Object(NonMatching, "d/d_cc_s.cpp"), Object(NonMatching, "d/d_cc_uty.cpp"), diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h index 06026acc2..0fe9c9443 100644 --- a/include/SSystem/SComponent/c_cc_d.h +++ b/include/SSystem/SComponent/c_cc_d.h @@ -387,7 +387,11 @@ protected: public: cCcD_ObjCommonBase() { ct(); } virtual ~cCcD_ObjCommonBase() {} - void ct(); + void ct() { + SetSPrm(0); + SetRPrm(0); + ClrObj(); + } void SetSPrm(u32 sprm) { mSPrm = sprm; } u32 getSPrm() const { return mSPrm; } void SetRPrm(u32 rprm) { mRPrm = rprm; } @@ -571,7 +575,9 @@ public: virtual cCcD_GObjInf* GetGObjInf() { return NULL; } virtual cCcD_ShapeAttr const* GetShapeAttr() const { return NULL; } virtual cCcD_ShapeAttr* GetShapeAttr() { return NULL; } - void ct(); + void ct() { + mFlags = 0; + } void Set(cCcD_SrcObj const&); cCcD_Stts* GetStts() { return mStts; } @@ -593,7 +599,7 @@ STATIC_ASSERT(0x50 == sizeof(cCcD_Obj)); class cCcD_GObjInf : public cCcD_Obj { public: cCcD_GObjInf() {} - virtual ~cCcD_GObjInf(); + virtual ~cCcD_GObjInf() {} virtual void ClrAtHit() { mObjAt.ClrHit(); } virtual void ClrTgHit() { mObjTg.ClrHit(); } virtual void ClrCoHit() { mObjCo.ClrHit(); } diff --git a/include/d/d_cc_d.h b/include/d/d_cc_d.h index 1e7e01e68..575e0d783 100644 --- a/include/d/d_cc_d.h +++ b/include/d/d_cc_d.h @@ -142,7 +142,12 @@ public: mApid = fpcM_ERROR_PROCESS_ID_e; mAc = NULL; } - void ct(); + void ct() { + mSPrm = 0; + mRPrm = 0; + mHitCallback = NULL; + mEffCounter = 0; + } void SetHitApid(unsigned int); fopAc_ac_c* GetAc(); void Set(dCcD_SrcGAtTgCoCommonBase const& base) { @@ -177,6 +182,7 @@ public: class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase { public: void Set(dCcD_SrcGObjAt const&); + dCcD_GObjAt() {} virtual ~dCcD_GObjAt() {} void SetVec(cXyz& vec) { mVec = vec; } cXyz& GetVec() { return mVec; } diff --git a/src/d/d_cc_d.cpp b/src/d/d_cc_d.cpp index ee570cafa..d77af66d2 100644 --- a/src/d/d_cc_d.cpp +++ b/src/d/d_cc_d.cpp @@ -113,11 +113,9 @@ void dCcD_GObjTg::Set(const dCcD_SrcGObjTg& src) { /* 800AB520-800AB63C .text __ct__12dCcD_GObjInfFv */ dCcD_GObjInf::dCcD_GObjInf() { - /* Nonmatching */ } dCcD_GObjInf::~dCcD_GObjInf() { - /* Nonmatching */ } /* 800AB7C0-800AB7C4 .text GetGObjInf__12dCcD_GObjInfFv */ @@ -265,7 +263,7 @@ void dCcD_GObjInf::Set(const dCcD_SrcGObjInf& src) { /* 800ABC54-800ABCC4 .text dCcD_GetGObjInf__FP8cCcD_Obj */ dCcD_GObjInf* dCcD_GetGObjInf(cCcD_Obj* pobj) { - JUT_ASSERT(531, pobj != 0); + JUT_ASSERT(VERSION_SELECT(466, 531, 531), pobj != 0); return (dCcD_GObjInf*)pobj->GetGObjInf(); } @@ -302,7 +300,8 @@ void dCcD_Cyl::StartCTg(cXyz& pos) { /* 800ABE64-800ABEE0 .text MoveCAtTg__8dCcD_CylFR4cXyz */ void dCcD_Cyl::MoveCAtTg(cXyz& pos) { - cXyz vel = pos - GetC(); + cXyz& center = GetC(); + cXyz vel = pos - center; SetAtVec(vel); SetTgVec(vel); SetC(pos); @@ -310,14 +309,16 @@ void dCcD_Cyl::MoveCAtTg(cXyz& pos) { /* 800ABEE0-800ABF50 .text MoveCAt__8dCcD_CylFR4cXyz */ void dCcD_Cyl::MoveCAt(cXyz& pos) { - cXyz vel = pos - GetC(); + cXyz& center = GetC(); + cXyz vel = pos - center; SetAtVec(vel); SetC(pos); } /* 800ABF50-800ABFC0 .text MoveCTg__8dCcD_CylFR4cXyz */ void dCcD_Cyl::MoveCTg(cXyz& pos) { - cXyz vel = pos - GetC(); + cXyz& center = GetC(); + cXyz vel = pos - center; SetTgVec(vel); SetC(pos); } @@ -337,7 +338,8 @@ void dCcD_Sph::StartCAt(cXyz& pos) { /* 800AC078-800AC0E8 .text MoveCAt__8dCcD_SphFR4cXyz */ void dCcD_Sph::MoveCAt(cXyz& pos) { - cXyz atVec = pos - *GetCP(); + const cXyz* center = GetCP(); + cXyz atVec = pos - *center; SetAtVec(atVec); SetC(pos); }