2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-14 22:06:10 +00:00

Implement CDroneLaser

This commit is contained in:
2020-04-08 10:54:46 -07:00
parent 784e956819
commit 94dbd091ae
3 changed files with 98 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
#pragma once
#include "Runtime/World/CActor.hpp"
namespace urde {
class CElementGen;
namespace MP1 {
class CDroneLaser : public CActor {
zeus::CVector3f xe8_ = zeus::skZero3f;
TUniqueId xf4_scannerLight = kInvalidUniqueId;
TLockedToken<CGenDescription> xf8_beamDesc;
std::unique_ptr<CElementGen> x104_beamParticle;
void SetScannerLightActive(CStateManager& mgr, bool activate);
void RenderBeam(u32 w, float f, const zeus::CColor& col, bool) const;
public:
CDroneLaser(TUniqueId uid, TAreaId aId, const zeus::CTransform& xf, CAssetId particle);
void Accept(IVisitor& visitor) override;
void Think(float dt, CStateManager& mgr) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr) override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override;
void Render(const CStateManager& mgr) const override;
void CalculateRenderBounds() override;
};
} // namespace MP1
} // namespace urde