prime/include/MetroidPrime/Enemies/CPuffer.hpp

48 lines
1.4 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();
void Accept(IVisitor&);
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&);
void Think(float, CStateManager&);
rstl::optional_object< CAABox > GetTouchBounds() const;
void Touch(CActor&, CStateManager&);
void Death(CStateManager&, const CVector3f&, EScriptObjectState);
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 sub8025bfa4(CStateManager&);
};
#endif // _CPUFFER