2020-04-08 17:54:46 +00:00
|
|
|
#pragma once
|
|
|
|
#include "Runtime/World/CActor.hpp"
|
|
|
|
|
2021-04-10 08:42:06 +00:00
|
|
|
namespace metaforce {
|
2020-04-08 17:54:46 +00:00
|
|
|
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;
|
2020-05-31 21:23:02 +00:00
|
|
|
|
2020-04-08 17:54:46 +00:00
|
|
|
public:
|
2021-05-26 14:00:57 +00:00
|
|
|
DEFINE_ENTITY
|
2020-04-08 17:54:46 +00:00
|
|
|
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;
|
2020-05-31 21:23:02 +00:00
|
|
|
void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
|
|
|
|
void Render(CStateManager& mgr) override;
|
2020-04-08 17:54:46 +00:00
|
|
|
void CalculateRenderBounds() override;
|
2020-09-15 05:35:29 +00:00
|
|
|
|
|
|
|
void sub_80167754(CStateManager& mgr, const zeus::CVector3f& pos, const zeus::CVector3f& look);
|
2020-04-08 17:54:46 +00:00
|
|
|
};
|
|
|
|
} // namespace MP1
|
2021-04-10 08:42:06 +00:00
|
|
|
} // namespace metaforce
|