Match and link CScriptGrapplePoint

Former-commit-id: 49f6652114
This commit is contained in:
Henrique Gemignani Passos Lima
2022-10-17 21:28:33 +03:00
parent ad67d2787d
commit 33543d78fc
6 changed files with 118 additions and 8 deletions

View File

@@ -0,0 +1,48 @@
#include "MetroidPrime/ScriptObjects/CScriptGrapplePoint.hpp"
#include "MetroidPrime/CActorParameters.hpp"
CScriptGrapplePoint::CScriptGrapplePoint(TUniqueId uid, const rstl::string& name,
const CEntityInfo& info, const CTransform4f& xf,
bool active, const CGrappleParameters& params)
: CActor(uid, active, name, info, xf, CModelData::CModelDataNull(), CMaterialList(kMT_Orbit),
CActorParameters::None(), kInvalidUniqueId)
, xe8_touchBounds(x34_transform.GetTranslation() - CVector3f(0.5f, 0.5f, 0.5f),
x34_transform.GetTranslation() + CVector3f(0.5f, 0.5f, 0.5f))
, x100_parameters(params) {}
CScriptGrapplePoint::~CScriptGrapplePoint() {}
void CScriptGrapplePoint::AddToRenderer(const CFrustumPlanes&, const CStateManager& mgr) const {
CActor::EnsureRendered(mgr);
}
rstl::optional_object< CAABox > CScriptGrapplePoint::GetTouchBounds() const {
return xe8_touchBounds;
}
void CScriptGrapplePoint::Render(const CStateManager&) const {}
void CScriptGrapplePoint::Think(float, CStateManager&) {}
void CScriptGrapplePoint::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid,
CStateManager& mgr) {
switch (msg) {
case kSM_Activate:
if (!GetActive()) {
AddMaterial(kMT_Orbit, mgr);
SetActive(true);
}
break;
case kSM_Deactivate:
if (GetActive()) {
RemoveMaterial(kMT_Orbit, mgr);
SetActive(false);
}
break;
default:
break;
}
}
void CScriptGrapplePoint::Accept(IVisitor& visitor) { visitor.Visit(*this); }