mirror of
https://github.com/PrimeDecomp/prime.git
synced 2025-12-21 09:39:10 +00:00
48
src/MetroidPrime/ScriptObjects/CScriptGrapplePoint.cpp
Normal file
48
src/MetroidPrime/ScriptObjects/CScriptGrapplePoint.cpp
Normal 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); }
|
||||
Reference in New Issue
Block a user