#ifndef _CPOWERBOMB #define _CPOWERBOMB #include "types.h" #include "MetroidPrime/Weapons/CWeapon.hpp" class CGenDescription; class CElementGen; class CPowerBomb : public CWeapon { public: CPowerBomb(TToken< CGenDescription > particle, TUniqueId uid, TAreaId aid, TUniqueId playerId, const CTransform4f& xf, const CDamageInfo& dInfo); ~CPowerBomb(); void Accept(IVisitor& visitor) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void Think(float, CStateManager&) override; void AddToRenderer(const CFrustumPlanes&, const CStateManager&) const override; void Render(const CStateManager&) const override; rstl::optional_object GetTouchBounds() const override; void Touch(CActor&, CStateManager&) override; float GetCurTime() const { return x15c_curTime; } bool IsEnding() const { return x15c_curTime > kEndingTime; } void ApplyDynamicDamage(const CVector3f&, CStateManager&); private: static CColor kFadeColor; static const float kEndingTime; bool x158_24_canStartFilter : 1; bool x158_25_filterEnabled : 1; float x15c_curTime; float x160_curRadius; float x164_radiusIncrement; rstl::single_ptr< CElementGen > x168_particle; float x16c_radius; }; #endif // _CPOWERBOMB