prime/include/MetroidPrime/Enemies/CPuffer.hpp

48 lines
1.5 KiB
C++

#ifndef _CPUFFER
#define _CPUFFER
#include "types.h"
#include "MetroidPrime/CDamageInfo.hpp"
#include "MetroidPrime/Enemies/CPatterned.hpp"
class CPatternedInfo;
class CGenDescription;
class CPuffer : public CPatterned {
public:
CPuffer(TUniqueId uid, const rstl::string& name, const CEntityInfo& info, const CTransform4f& xf,
const CModelData& modelData, const CActorParameters& actorParameters,
const CPatternedInfo& patternedInfo, float hoverSpeed, CAssetId cloudEffect,
const CDamageInfo& cloudDamage, CAssetId cloudSteam, float f2, bool b1, bool b2, bool b3,
const CDamageInfo& explosionDamage, ushort sfxId);
~CPuffer() override;
void Accept(IVisitor&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Think(float, CStateManager&) override;
rstl::optional_object< CAABox > GetTouchBounds() const override;
void Touch(CActor&, CStateManager&) override;
void Death(CStateManager&, const CVector3f&, EScriptObjectState) override;
private:
CVector3f x568_face;
TToken< CGenDescription > x574_cloudEffect;
CDamageInfo x57c_cloudDamage;
bool x598_24_ : 1;
bool x598_25_ : 1;
bool x598_26_ : 1;
ushort x59a_;
CDamageInfo x59c_explosionDamage;
float x5b8_;
CAssetId x5bc_cloudSteam;
CVector3f x5c0_move;
TUniqueId x5cc_;
int x5d0_enabledParticles;
rstl::reserved_vector< CVector3f, 14 > x5d4_gasLocators;
void UpdateJets(CStateManager&);
};
#endif // _CPUFFER