d_cc_d work

This commit is contained in:
Jasper St. Pierre
2023-09-30 19:42:26 -07:00
parent f44e135b45
commit 03d835f6d4
7 changed files with 198 additions and 91 deletions
+16 -5
View File
@@ -78,6 +78,10 @@ public:
STATIC_ASSERT(0x20 == sizeof(cCcD_ShapeAttr));
struct cCcD_SrcCylAttr {
cM3dGCylS mCyl;
};
struct cCcD_SrcTriAttr {
cM3dGTriS mTri;
};
@@ -156,6 +160,10 @@ class cCcD_SphAttr : public cCcD_ShapeAttr, public cM3dGSph {
public:
cCcD_SphAttr() {}
inline void Set(const cCcD_SrcSphAttr& src) {
cM3dGSph::Set(src.mSph);
}
virtual ~cCcD_SphAttr() {}
virtual const cXyz& GetCoCP() const { return mCenter; }
virtual cXyz& GetCoCP() { return mCenter; }
@@ -187,6 +195,10 @@ STATIC_ASSERT(0x34 == sizeof(cCcD_SphAttr));
class cCcD_CylAttr : public cCcD_ShapeAttr, public cM3dGCyl {
public:
cCcD_CylAttr() {}
inline void Set(const cCcD_SrcCylAttr& src) {
cM3dGCyl::Set(src.mCyl);
}
virtual ~cCcD_CylAttr() {}
virtual const cXyz& GetCoCP() const { return mCenter; }
virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
@@ -366,7 +378,7 @@ public:
virtual ~cCcD_ObjAt() {}
void SetHit(cCcD_Obj*);
void Set(cCcD_SrcObjAt const&);
void ClrHit() { ClrObj(); }
void ClrHit() { ClrRPrm(1); ClrObj(); }
int GetType() const { return mType; }
u32 GetGrp() const { return MskSPrm(0x1E); }
bool ChkSet() const { return MskSPrm(1); }
@@ -391,7 +403,7 @@ public:
virtual ~cCcD_ObjTg() {}
void Set(cCcD_SrcObjTg const&);
void SetGrp(u32);
void ClrHit();
void ClrHit() { ClrRPrm(1); ClrObj(); }
void SetHit(cCcD_Obj*);
int GetType() const { return mType; }
void SetType(u32 type) { mType = type; }
@@ -410,7 +422,7 @@ class cCcD_ObjCo : public cCcD_ObjCommonBase {
public:
virtual ~cCcD_ObjCo() {}
void SetHit(cCcD_Obj*);
void ClrHit();
void ClrHit() { ClrRPrm(1); ClrObj(); }
void SetIGrp(u32);
void SetVsGrp(u32);
u32 GetGrp() const { return MskSPrm(0x1E); }
@@ -505,7 +517,6 @@ public:
virtual cCcD_GObjInf const* GetGObjInf() const { return NULL; }
virtual cCcD_GObjInf* GetGObjInf() { return NULL; }
virtual cCcD_ShapeAttr const* GetShapeAttr() const { return NULL; }
virtual cCcD_ShapeAttr* GetShapeAttr() { return NULL; }
void ct();
void Set(cCcD_SrcObj const&);
fopAc_ac_c* GetAc();
@@ -528,7 +539,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(); }
+4 -1
View File
@@ -18,7 +18,10 @@ public:
cM3dGCps(void) {}
virtual ~cM3dGCps(void) {}
void Set(const cXyz&, const cXyz&, f32);
void Set(const cM3dGCpsS&);
void Set(const cM3dGCpsS& src) {
SetStartEnd(src.mStart, src.mEnd);
SetR(src.mRadius);
}
void SetCps(const cM3dGCps&);
bool Cross(cM3dGCps const* other, cXyz* xyz) const {
return cM3d_Cross_CpsCps(*this, *other, xyz);
+5
View File
@@ -25,6 +25,11 @@ public:
void SetC(const cXyz& pos);
void SetH(f32 h);
void SetR(f32 r);
inline void Set(const cM3dGCylS & src) {
SetC(src.mCenter);
SetR(src.mRadius);
SetH(src.mHeight);
}
bool cross(const cM3dGSph*, cXyz*) const;
bool cross(const cM3dGCyl*, cXyz*) const;
bool cross(const cM3dGSph*, f32*) const;
+4 -1
View File
@@ -19,7 +19,10 @@ public:
mStart = start;
mEnd = end;
}
void SetStartEnd(const Vec&, const Vec&);
void SetStartEnd(const Vec& start, const Vec& end) {
mStart = start;
mEnd = end;
}
void CalcPos(Vec*, f32) const;
void CalcVec(Vec* pOut) const { VECSubtract(&this->mEnd, &this->mStart, pOut); }
void SetEnd(const cXyz&);
+5 -1
View File
@@ -23,10 +23,14 @@ public:
virtual ~cM3dGSph() {}
void SetC(const cXyz&);
void SetR(f32);
void Set(const cM3dGSphS & src) {
SetC(src.mCenter);
SetR(src.mRadius);
}
bool cross(const cM3dGSph*, cXyz*) const;
bool cross(const cM3dGCyl*, cXyz*) const;
bool cross(const cM3dGSph*, f32*) const;
const cXyz& GetC(void) const { return mCenter; }
const cXyz& GetC() const { return mCenter; }
const cXyz* GetCP() const { return &mCenter; }
const f32 GetR(void) const { return mRadius; }
f32 GetCX(void) const { return mCenter.x; }
+37 -20
View File
@@ -15,7 +15,7 @@ enum dCcG_At_Spl {};
enum dCcG_Tg_Spl {};
struct dCcD_SrcGAtTgCoCommonBase {
/* 0x0 */ u32 mGFlag;
/* 0x0 */ u32 mSPrm;
}; // Size: 0x4
struct dCcD_SrcGObjAt {
@@ -57,7 +57,7 @@ struct dCcD_SrcTri {
struct dCcD_SrcCyl {
/* 0x00 */ dCcD_SrcGObjInf mObjInf;
/* 0x30 */ cM3dGCylS mCyl;
/* 0x30 */ cCcD_SrcCylAttr mCylAttr;
}; // Size: 0x44
struct dCcD_SrcCps {
@@ -72,8 +72,8 @@ public:
void Ct();
void Move();
void ClrAt() { mAt = 0; }
void ClrTg() { mTg = 0; }
void ClrAt() { mAtSpl = 0; }
void ClrTg() { mTgSpl = 0; }
void SetAtApid(unsigned int id) { mAtApid = id; }
void SetTgApid(unsigned int id) { mTgApid = id; }
u8 GetRoomId() { return mRoomId; }
@@ -82,15 +82,15 @@ public:
unsigned int GetTgOldApid() { return mTgOldApid; }
bool ChkNoActor() { return field_0x1C & 1; }
bool ChkNoneActorPerfTblId() { return field_0x08 == 0xFFFF; }
dCcG_At_Spl GetAtSpl() { return (dCcG_At_Spl)mAt; }
void SetAtSpl(dCcG_At_Spl spl) { mAt = spl; }
dCcG_Tg_Spl GetTgSpl() { return (dCcG_Tg_Spl)mTg; }
void SetTgSpl(dCcG_Tg_Spl spl) { mTg = spl; }
dCcG_At_Spl GetAtSpl() { return (dCcG_At_Spl)mAtSpl; }
void SetAtSpl(dCcG_At_Spl spl) { mAtSpl = spl; }
dCcG_Tg_Spl GetTgSpl() { return (dCcG_Tg_Spl)mTgSpl; }
void SetTgSpl(dCcG_Tg_Spl spl) { mTgSpl = spl; }
void OnNoActor() { field_0x1C |= 1; }
// private:
/* 0x04 */ u8 mAt;
/* 0x05 */ u8 mTg;
/* 0x04 */ u8 mAtSpl;
/* 0x05 */ u8 mTgSpl;
/* 0x06 */ u8 mRoomId;
/* 0x08 */ u16 field_0x08;
/* 0x0C */ int mAtApid;
@@ -103,11 +103,19 @@ public:
class dCcD_Stts : public cCcD_Stts, public dCcD_GStts {
public:
dCcD_Stts() {}
virtual cCcD_GStts* GetGStts();
virtual cCcD_GStts* GetGStts() {
return (cCcD_GStts*)this;
}
void Init(int, int, fopAc_ac_c*);
virtual void Ct();
virtual void ClrAt();
virtual void ClrTg();
virtual void ClrAt() {
cCcD_Stts::ClrAt();
dCcD_GStts::ClrAt();
}
virtual void ClrTg() {
cCcD_Stts::ClrTg();
dCcD_GStts::ClrTg();
}
virtual ~dCcD_Stts() {}
}; // Size = 0x3C
@@ -118,7 +126,7 @@ typedef void (*dCcD_HitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_G
// Attack/Defense/Correction Collider Common Base
class dCcD_GAtTgCoCommonBase {
public:
/* 0x00 */ u32 mGFlag;
/* 0x00 */ u32 mSPrm;
/* 0x04 */ u32 mRPrm;
/* 0x08 */ dCcD_HitCallback mHitCallback;
/* 0x0C */ u32 mApid;
@@ -136,21 +144,28 @@ public:
void ct();
void SetHitApid(unsigned int);
fopAc_ac_c* GetAc();
void Set(dCcD_SrcGAtTgCoCommonBase const&);
void Set(dCcD_SrcGAtTgCoCommonBase const& base) {
mSPrm = base.mSPrm;
ClrEffCounter();
}
void SetEffCounterTimer();
void SubtractEffCounter() { mEffCounter -= 1; }
void SubtractEffCounter() {
mEffCounter -= 1;
if (mEffCounter < 0)
mEffCounter = 0;
}
bool ChkEffCounter() { return mEffCounter >= 0; }
virtual ~dCcD_GAtTgCoCommonBase() {}
void ClrEffCounter() { mEffCounter = 0; }
u32 GetGFlag() const { return mGFlag; }
u32 GetSPrm() const { return mSPrm; }
u32 GetRPrm() const { return mRPrm; }
u32 MskSPrm(u32 mask) const { return mGFlag & mask; }
u32 MskSPrm(u32 mask) const { return mSPrm & mask; }
u32 MskRPrm(u32 mask) const { return mRPrm & mask; }
bool ChkSPrm(u32 mask) const { return MskSPrm(mask); }
void OnSPrm(u32 flag) { mGFlag |= flag; }
void OnSPrm(u32 flag) { mSPrm |= flag; }
void OnRPrm(u32 flag) { mRPrm |= flag; }
void OffSPrm(u32 flag) { mGFlag &= ~flag; }
void OffSPrm(u32 flag) { mSPrm &= ~flag; }
void OffRPrm(u32 flag) { mRPrm &= ~flag; }
bool ChkRPrm(u32 flag) const { return MskRPrm(flag); }
void SetHitCallback(dCcD_HitCallback callback) { mHitCallback = callback; }
@@ -207,6 +222,7 @@ public:
cXyz* GetVecP() { return &mVec; }
void SetHitPos(cXyz& pos) { mHitPos = pos; }
cXyz* GetHitPosP() { return &mHitPos; }
inline void ClrHit() { ClrActorInfo(); }
private:
/* 0x1C */ u8 mSe;
@@ -224,6 +240,7 @@ class dCcD_GObjCo : public dCcD_GAtTgCoCommonBase {
public:
virtual ~dCcD_GObjCo() {}
void Set(dCcD_SrcGObjCo const& pSrc) { dCcD_GAtTgCoCommonBase::Set(pSrc.mBase); }
void ClrHit() { ClrActorInfo(); }
}; // Size = 0x1C ?
// Object Info
+127 -63
View File
@@ -29,8 +29,8 @@ void dCcD_GAtTgCoCommonBase::SetEffCounterTimer() {
/* 800AB334-800AB384 .text __ct__10dCcD_GSttsFv */
dCcD_GStts::dCcD_GStts() {
mAt = 0;
mTg = 0;
mAtSpl = 0;
mTgSpl = 0;
mRoomId = 0;
field_0x08 = -1;
mAtApid = -1;
@@ -42,7 +42,15 @@ dCcD_GStts::dCcD_GStts() {
/* 800AB384-800AB3BC .text Ct__10dCcD_GSttsFv */
void dCcD_GStts::Ct() {
/* Nonmatching */
mAtSpl = 0;
mTgSpl = 0;
mRoomId = 0;
field_0x08 = -1;
mAtApid = -1;
mAtOldApid = -1;
mTgApid = -1;
mTgOldApid = -1;
field_0x1C = 0;
}
/* 800AB3BC-800AB3DC .text Move__10dCcD_GSttsFv */
@@ -79,17 +87,28 @@ void dCcD_Stts::Init(int param_0, int param_1, fopAc_ac_c* pActor) {
/* 800AB46C-800AB4A0 .text Ct__9dCcD_SttsFv */
void dCcD_Stts::Ct() {
/* Nonmatching */
cCcD_Stts::Ct();
dCcD_GStts::Ct();
}
/* 800AB4A0-800AB4D0 .text Set__11dCcD_GObjAtFRC14dCcD_SrcGObjAt */
void dCcD_GObjAt::Set(const dCcD_SrcGObjAt&) {
/* Nonmatching */
void dCcD_GObjAt::Set(const dCcD_SrcGObjAt& src) {
dCcD_GAtTgCoCommonBase::Set(src.mBase);
mSe = src.mSe;
mMtrl = 0;
mHitMark = src.mHitMark;
mSpl = src.mSpl;
}
/* 800AB4D0-800AB520 .text Set__11dCcD_GObjTgFRC14dCcD_SrcGObjTg */
void dCcD_GObjTg::Set(const dCcD_SrcGObjTg&) {
/* Nonmatching */
void dCcD_GObjTg::Set(const dCcD_SrcGObjTg& src) {
dCcD_GAtTgCoCommonBase::Set(src.mBase);
mSe = src.mSe;
mMtrl = 0;
mHitMark = src.mHitMark;
mSpl = src.mSpl;
mHitPos = cXyz::Zero;
mShieldFrontRangeYAngle = NULL;
}
/* 800AB520-800AB63C .text __ct__12dCcD_GObjInfFv */
@@ -97,6 +116,10 @@ dCcD_GObjInf::dCcD_GObjInf() {
/* Nonmatching */
}
dCcD_GObjInf::~dCcD_GObjInf() {
/* Nonmatching */
}
/* 800AB7C0-800AB7C4 .text GetGObjInf__12dCcD_GObjInfFv */
cCcD_GObjInf* dCcD_GObjInf::GetGObjInf() {
return (cCcD_GObjInf*)this;
@@ -104,21 +127,23 @@ cCcD_GObjInf* dCcD_GObjInf::GetGObjInf() {
/* 800AB7C4-800AB81C .text ClrAtHit__12dCcD_GObjInfFv */
void dCcD_GObjInf::ClrAtHit() {
OffAtHitBit();
cCcD_Obj::ClrAtHit();
mGObjAt.ClrHit();
OffAtShieldHit();
OffAtHitNoActor();
SubtractAtEffCounter();
if (!ChkAtEffCounter()) {
ClrAtEffCounter();
}
}
#if VERSION != VERSION_JPN
/* 800AB81C-800AB874 .text ChkAtHit__12dCcD_GObjInfFv */
u32 dCcD_GObjInf::ChkAtHit() {
/* Nonmatching */
if (!cCcD_ObjHitInf::ChkAtHit())
return 0;
if (!ChkAtHitNoActor() && !GetAtHitAc())
return 0;
else
return 1;
}
#endif
@@ -130,7 +155,10 @@ void dCcD_GObjInf::ResetAtHit() {
/* 800AB8B4-800AB904 .text GetAtHitObj__12dCcD_GObjInfFv */
cCcD_Obj* dCcD_GObjInf::GetAtHitObj() {
/* Nonmatching */
if (!ChkAtHitNoActor() && !GetAtHitAc())
return NULL;
return cCcD_ObjHitInf::GetAtHitObj();
}
/* 800AB904-800AB938 .text GetAtHitGObj__12dCcD_GObjInfFv */
@@ -149,131 +177,167 @@ u8 dCcD_GObjInf::ChkAtNoGuard() {
/* 800AB958-800AB9B0 .text ClrTgHit__12dCcD_GObjInfFv */
void dCcD_GObjInf::ClrTgHit() {
/* Nonmatching */
cCcD_ObjHitInf::ClrTgHit();
mGObjTg.ClrHit();
OffTgHitNoActor();
OffTgShieldHit();
SubtractTgEffCounter();
}
#if VERSION != VERSION_JPN
/* 800AB9B0-800ABA08 .text ChkTgHit__12dCcD_GObjInfFv */
u32 dCcD_GObjInf::ChkTgHit() {
/* Nonmatching */
if (!cCcD_ObjHitInf::ChkTgHit())
return 0;
if (!ChkTgHitNoActor() && !GetTgHitAc())
return 0;
else
return 1;
}
#endif
/* 800ABA08-800ABA48 .text ResetTgHit__12dCcD_GObjInfFv */
void dCcD_GObjInf::ResetTgHit() {
/* Nonmatching */
// cCcD_ObjHitInf::ResetTgHit();
ClrTgEffCounter();
}
/* 800ABA48-800ABA98 .text GetTgHitObj__12dCcD_GObjInfFv */
cCcD_Obj* dCcD_GObjInf::GetTgHitObj() {
/* Nonmatching */
if (!ChkTgHitNoActor() && !GetTgHitAc())
return NULL;
return cCcD_ObjHitInf::GetTgHitObj();
}
/* 800ABA98-800ABACC .text GetTgHitGObj__12dCcD_GObjInfFv */
dCcD_GObjInf* dCcD_GObjInf::GetTgHitGObj() {
/* Nonmatching */
cCcD_Obj * pHitObj = GetTgHitObj();
if (pHitObj == NULL)
return NULL;
return dCcD_GetGObjInf(pHitObj);
}
/* 800ABACC-800ABB00 .text GetTgHitObjSe__12dCcD_GObjInfFv */
u8 dCcD_GObjInf::GetTgHitObjSe() {
/* Nonmatching */
dCcD_GObjInf * pHitInf = GetTgHitGObj();
if (pHitInf == NULL)
return 0;
return pHitInf->GetAtSe();
}
/* 800ABB00-800ABB4C .text ClrCoHit__12dCcD_GObjInfFv */
void dCcD_GObjInf::ClrCoHit() {
/* Nonmatching */
cCcD_ObjHitInf::ClrCoHit();
mGObjCo.ClrHit();
OffCoHitNoActor();
SubtractCoEffCounter();
}
#if VERSION != VERSION_JPN
/* 800ABB4C-800ABBA4 .text ChkCoHit__12dCcD_GObjInfFv */
u32 dCcD_GObjInf::ChkCoHit() {
/* Nonmatching */
if (!cCcD_ObjHitInf::ChkCoHit())
return 0;
if (!ChkCoHitNoActor() && !GetCoHitAc())
return 0;
else
return 1;
}
#endif
/* 800ABBA4-800ABBF4 .text GetCoHitObj__12dCcD_GObjInfFv */
cCcD_Obj* dCcD_GObjInf::GetCoHitObj() {
/* Nonmatching */
if (!ChkCoHitNoActor() && !GetCoHitAc())
return NULL;
return cCcD_ObjHitInf::GetCoHitObj();
}
/* 800ABBF4-800ABC54 .text Set__12dCcD_GObjInfFRC15dCcD_SrcGObjInf */
void dCcD_GObjInf::Set(const dCcD_SrcGObjInf&) {
/* Nonmatching */
void dCcD_GObjInf::Set(const dCcD_SrcGObjInf& src) {
cCcD_Obj::Set(src.mObj);
mGObjAt.Set(src.mGObjAt);
mGObjTg.Set(src.mGObjTg);
mGObjCo.Set(src.mGObjCo);
}
/* 800ABC54-800ABCC4 .text dCcD_GetGObjInf__FP8cCcD_Obj */
dCcD_GObjInf* dCcD_GetGObjInf(cCcD_Obj* pobj) {
/* Nonmatching */
JUT_ASSERT(531, pobj != 0);
return (dCcD_GObjInf*)pobj->GetGObjInf();
}
/* 800ABCC4-800ABD34 .text Set__8dCcD_CpsFRC11dCcD_SrcCps */
void dCcD_Cps::Set(const dCcD_SrcCps&) {
/* Nonmatching */
void dCcD_Cps::Set(const dCcD_SrcCps& src) {
dCcD_GObjInf::Set(src.mObjInf);
cCcD_CpsAttr::Set(src.mCpsAttr);
}
/* 800ABD34-800ABD54 .text Set__8dCcD_TriFRC11dCcD_SrcTri */
void dCcD_Tri::Set(const dCcD_SrcTri&) {
/* Nonmatching */
void dCcD_Tri::Set(const dCcD_SrcTri& src) {
dCcD_GObjInf::Set(src.mObjInf);
}
/* 800ABD54-800ABDCC .text Set__8dCcD_CylFRC11dCcD_SrcCyl */
void dCcD_Cyl::Set(const dCcD_SrcCyl&) {
/* Nonmatching */
void dCcD_Cyl::Set(const dCcD_SrcCyl& src) {
dCcD_GObjInf::Set(src.mObjInf);
cCcD_CylAttr::Set(src.mCylAttr);
}
/* 800ABDCC-800ABE18 .text StartCAt__8dCcD_CylFR4cXyz */
void dCcD_Cyl::StartCAt(cXyz&) {
/* Nonmatching */
void dCcD_Cyl::StartCAt(cXyz& pos) {
cXyz vel = cXyz::Zero;
SetAtVec(vel);
SetC(pos);
}
/* 800ABE18-800ABE64 .text StartCTg__8dCcD_CylFR4cXyz */
void dCcD_Cyl::StartCTg(cXyz&) {
/* Nonmatching */
void dCcD_Cyl::StartCTg(cXyz& pos) {
cXyz vel = cXyz::Zero;
SetTgVec(vel);
SetC(pos);
}
/* 800ABE64-800ABEE0 .text MoveCAtTg__8dCcD_CylFR4cXyz */
void dCcD_Cyl::MoveCAtTg(cXyz&) {
/* Nonmatching */
void dCcD_Cyl::MoveCAtTg(cXyz& pos) {
cXyz vel = pos - GetC();
SetAtVec(vel);
SetTgVec(vel);
SetC(pos);
}
/* 800ABEE0-800ABF50 .text MoveCAt__8dCcD_CylFR4cXyz */
void dCcD_Cyl::MoveCAt(cXyz&) {
/* Nonmatching */
void dCcD_Cyl::MoveCAt(cXyz& pos) {
cXyz vel = pos - GetC();
SetAtVec(vel);
SetC(pos);
}
/* 800ABF50-800ABFC0 .text MoveCTg__8dCcD_CylFR4cXyz */
void dCcD_Cyl::MoveCTg(cXyz&) {
/* Nonmatching */
void dCcD_Cyl::MoveCTg(cXyz& pos) {
cXyz vel = pos - GetC();
SetTgVec(vel);
SetC(pos);
}
/* 800ABFC0-800AC02C .text Set__8dCcD_SphFRC11dCcD_SrcSph */
void dCcD_Sph::Set(const dCcD_SrcSph&) {
/* Nonmatching */
void dCcD_Sph::Set(const dCcD_SrcSph& src) {
dCcD_GObjInf::Set(src.mObjInf);
cCcD_SphAttr::Set(src.mSphAttr);
}
/* 800AC02C-800AC078 .text StartCAt__8dCcD_SphFR4cXyz */
void dCcD_Sph::StartCAt(cXyz&) {
/* Nonmatching */
void dCcD_Sph::StartCAt(cXyz& pos) {
cXyz atVec = cXyz::Zero;
SetAtVec(atVec);
SetC(pos);
}
/* 800AC078-800AC0E8 .text MoveCAt__8dCcD_SphFR4cXyz */
void dCcD_Sph::MoveCAt(cXyz&) {
/* Nonmatching */
}
/* 800AC6F0-800AC700 .text GetGStts__9dCcD_SttsFv */
cCcD_GStts* dCcD_Stts::GetGStts() {
/* Nonmatching */
}
/* 800AC700-800AC70C .text ClrAt__9dCcD_SttsFv */
void dCcD_Stts::ClrAt() {
/* Nonmatching */
}
/* 800AC70C-800AC71C .text ClrTg__9dCcD_SttsFv */
void dCcD_Stts::ClrTg() {
/* Nonmatching */
void dCcD_Sph::MoveCAt(cXyz& pos) {
cXyz atVec = pos - *GetCP();
SetAtVec(atVec);
SetC(pos);
}