mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 23:47:42 +00:00
Working grapple beam
This commit is contained in:
@@ -9,12 +9,11 @@ namespace urde
|
||||
CScriptGrapplePoint::CScriptGrapplePoint(TUniqueId uid, std::string_view name, const CEntityInfo& info,
|
||||
const zeus::CTransform &transform, bool active,
|
||||
const CGrappleParameters ¶ms)
|
||||
: CActor(uid, active, name, info, transform, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::Orbit),
|
||||
CActorParameters::None(),
|
||||
kInvalidUniqueId),
|
||||
xe8_(x34_transform.origin - 0.5f,
|
||||
x34_transform.origin + 0.5f),
|
||||
x100_parameters(params)
|
||||
: CActor(uid, active, name, info, transform, CModelData::CModelDataNull(), CMaterialList(EMaterialTypes::Orbit),
|
||||
CActorParameters::None(),
|
||||
kInvalidUniqueId),
|
||||
xe8_touchBounds(x34_transform.origin - 0.5f, x34_transform.origin + 0.5f),
|
||||
x100_parameters(params)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -23,4 +22,47 @@ void CScriptGrapplePoint::Accept(IVisitor& visitor)
|
||||
visitor.Visit(this);
|
||||
}
|
||||
|
||||
void CScriptGrapplePoint::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr)
|
||||
{
|
||||
switch (msg)
|
||||
{
|
||||
case EScriptObjectMessage::Activate:
|
||||
if (!GetActive())
|
||||
{
|
||||
AddMaterial(EMaterialTypes::Orbit, mgr);
|
||||
SetActive(true);
|
||||
}
|
||||
break;
|
||||
case EScriptObjectMessage::Deactivate:
|
||||
if (GetActive())
|
||||
{
|
||||
RemoveMaterial(EMaterialTypes::Orbit, mgr);
|
||||
SetActive(false);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CScriptGrapplePoint::Think(float, CStateManager&)
|
||||
{
|
||||
// Empty
|
||||
}
|
||||
|
||||
void CScriptGrapplePoint::Render(const CStateManager&) const
|
||||
{
|
||||
// Empty
|
||||
}
|
||||
|
||||
std::experimental::optional<zeus::CAABox> CScriptGrapplePoint::GetTouchBounds() const
|
||||
{
|
||||
return {xe8_touchBounds};
|
||||
}
|
||||
|
||||
void CScriptGrapplePoint::AddToRenderer(const zeus::CFrustum&, const CStateManager& mgr) const
|
||||
{
|
||||
CActor::EnsureRendered(mgr);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user