mirror of
https://github.com/PrimeDecomp/prime.git
synced 2025-09-01 16:48:36 +00:00
39 lines
1.6 KiB
C++
39 lines
1.6 KiB
C++
#ifndef _CRIPPER
|
|
#define _CRIPPER
|
|
|
|
#include "MetroidPrime/CGrappleParameters.hpp"
|
|
#include "MetroidPrime/Enemies/CPatterned.hpp"
|
|
#include "MetroidPrime/TCastTo.hpp"
|
|
|
|
class CRipper : public CPatterned {
|
|
static const uint skNumProperties;
|
|
|
|
public:
|
|
static uint GetNumProperties() { return skNumProperties; }
|
|
CRipper(TUniqueId uid, const rstl::string& name, EFlavorType type, const CEntityInfo& info,
|
|
const CTransform4f& transform, const CModelData& modelData,
|
|
const CPatternedInfo& patternedInfo, const CActorParameters& actorParams,
|
|
const CGrappleParameters& grappleParams);
|
|
~CRipper();
|
|
void Accept(IVisitor& visitor) override;
|
|
void Think(float dt, CStateManager& mgr) override;
|
|
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr) override;
|
|
EWeaponCollisionResponseTypes GetCollisionResponseType(const CVector3f& position, const CVector3f& direction, const CWeaponMode& mode, int projectileAtrib) const override;
|
|
void KnockBack(const CVector3f& direction, CStateManager& mgr, const CDamageInfo& damage, EKnockBackType knockBack, bool inDeferred, float mag) override;
|
|
bool PathOver(CStateManager& mgr, float arg) override;
|
|
void Patrol(CStateManager& mgr, EStateMsg msg, float arg) override;
|
|
|
|
private:
|
|
void ProcessGrapplePoint(CStateManager& mgr);
|
|
void AddGrapplePoint(CStateManager& mgr);
|
|
void RemoveGrapplePoint(CStateManager& mgr);
|
|
void AddPlatform(CStateManager& mgr);
|
|
void RemovePlatform(CStateManager& mgr);
|
|
CGrappleParameters mGrappleParams;
|
|
TUniqueId mGrapplePoint;
|
|
TUniqueId mPlatform;
|
|
bool mMuted : 1;
|
|
};
|
|
|
|
#endif // _CRIPPER
|