mirror of https://github.com/AxioDL/metaforce.git
Complete CCollisionActor imp, initial CJoinCollisionDescription
This commit is contained in:
parent
22989ff47c
commit
b15e61c258
|
@ -65,7 +65,30 @@ CCollisionActor::CCollisionActor(TUniqueId uid1, TAreaId aId, TUniqueId uid2, bo
|
||||||
|
|
||||||
void CCollisionActor::Accept(IVisitor& visitor) { visitor.Visit(this); }
|
void CCollisionActor::Accept(IVisitor& visitor) { visitor.Visit(this); }
|
||||||
|
|
||||||
void CCollisionActor::AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) {}
|
void CCollisionActor::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr)
|
||||||
|
{
|
||||||
|
switch(msg)
|
||||||
|
{
|
||||||
|
case EScriptObjectMessage::ToggleActive:
|
||||||
|
case EScriptObjectMessage::Deleted:
|
||||||
|
case EScriptObjectMessage::Constructed:
|
||||||
|
break;
|
||||||
|
case EScriptObjectMessage::Alert:
|
||||||
|
case EScriptObjectMessage::InternalMessage10:
|
||||||
|
case EScriptObjectMessage::InternalMessage11:
|
||||||
|
{
|
||||||
|
CEntity* ent = mgr.ObjectById(x25c_owner);
|
||||||
|
if (ent)
|
||||||
|
mgr.SendScriptMsg(ent, x2fc_lastTouched, msg);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
mgr.SendScriptMsgAlways(x25c_owner, x8_uid, msg);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
CActor::AcceptScriptMsg(msg, uid, mgr);
|
||||||
|
}
|
||||||
|
|
||||||
CHealthInfo* CCollisionActor::HealthInfo() { return &x28c_healthInfo; }
|
CHealthInfo* CCollisionActor::HealthInfo() { return &x28c_healthInfo; }
|
||||||
|
|
||||||
|
|
|
@ -7,4 +7,15 @@ CCollisionActorManager::CCollisionActorManager(CStateManager&, TUniqueId, TAreaI
|
||||||
const std::vector<CJointCollisionDescription>&, bool)
|
const std::vector<CJointCollisionDescription>&, bool)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 CCollisionActorManager::GetNumCollisionActors() const
|
||||||
|
{
|
||||||
|
return x0_jointDescriptions.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
CJointCollisionDescription CCollisionActorManager::GetCollisionDescFromIndex(u32 idx) const
|
||||||
|
{
|
||||||
|
return x0_jointDescriptions[idx];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ public:
|
||||||
void SetActive(CStateManager&, bool);
|
void SetActive(CStateManager&, bool);
|
||||||
|
|
||||||
u32 GetNumCollisionActors() const;
|
u32 GetNumCollisionActors() const;
|
||||||
CJointCollisionDescription GetCollisionDescFfromIndex(u32) const;
|
CJointCollisionDescription GetCollisionDescFromIndex(u32) const;
|
||||||
zeus::CTransform GetWRLocatorTransform(const CAnimData&, CSegId, const zeus::CTransform&, const zeus::CTransform&);
|
zeus::CTransform GetWRLocatorTransform(const CAnimData&, CSegId, const zeus::CTransform&, const zeus::CTransform&);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,17 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
u32 x0_;
|
||||||
|
u32 x4_;
|
||||||
|
CSegId x8_;
|
||||||
|
CSegId x9_;
|
||||||
|
zeus::CVector3f xc_;
|
||||||
|
zeus::CVector3f x18_;
|
||||||
|
float x24_;
|
||||||
|
float x28_;
|
||||||
|
std::string x2c_;
|
||||||
|
TUniqueId x3c_;
|
||||||
|
float x40_;
|
||||||
public:
|
public:
|
||||||
CJointCollisionDescription(ECollisionType, CSegId, CSegId, const zeus::CVector3f&, const zeus::CVector3f&, float,
|
CJointCollisionDescription(ECollisionType, CSegId, CSegId, const zeus::CVector3f&, const zeus::CVector3f&, float,
|
||||||
float, EOrientationType, const std::string&, float);
|
float, EOrientationType, const std::string&, float);
|
||||||
|
|
Loading…
Reference in New Issue