mirror of
				https://github.com/PrimeDecomp/prime.git
				synced 2025-10-27 23:30:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef _CMETAREE
 | |
| #define _CMETAREE
 | |
| 
 | |
| #include "types.h"
 | |
| 
 | |
| #include "MetroidPrime/CDamageInfo.hpp"
 | |
| #include "MetroidPrime/Enemies/CPatterned.hpp"
 | |
| 
 | |
| class CPatternedInfo;
 | |
| class CGenDescription;
 | |
| 
 | |
| class CMetaree : public CPatterned {
 | |
| public:
 | |
|   CMetaree(TUniqueId uid, const rstl::string& name, EFlavorType flavor, const CEntityInfo& info,
 | |
|            const CTransform4f& xf, const CModelData& mData, const CPatternedInfo& pInfo,
 | |
|            const CDamageInfo& dInfo, float f1, const CVector3f& v1, float f2, EBodyType bodyType,
 | |
|            float f3, float f4, const CActorParameters& aParms);
 | |
| 
 | |
|   // CEntity
 | |
|   void Accept(IVisitor& visitor) override;
 | |
|   void Think(float dt, CStateManager& mgr) override;
 | |
|   void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
 | |
| 
 | |
|   // CActor
 | |
|   void Touch(CActor&, CStateManager&) override;
 | |
| 
 | |
|   // CPhysicsActor
 | |
|   void CollidedWith(const TUniqueId& id, const CCollisionInfoList& list,
 | |
|                     CStateManager& mgr) override;
 | |
| 
 | |
|   // CAi
 | |
|   void Dead(CStateManager&, EStateMsg, float) override;
 | |
|   void Halt(CStateManager&, EStateMsg, float) override;
 | |
|   void Attack(CStateManager&, EStateMsg, float) override;
 | |
|   void Active(CStateManager&, EStateMsg, float) override;
 | |
|   void InActive(CStateManager&, EStateMsg, float) override;
 | |
|   void Flee(CStateManager&, EStateMsg, float) override;
 | |
|   void Explode(CStateManager&, EStateMsg, float) override;
 | |
|   bool InRange(CStateManager&, float) override;
 | |
|   bool Delay(CStateManager&, float) override;
 | |
|   bool ShouldAttack(CStateManager&, float) override;
 | |
| 
 | |
|   // CPatterned
 | |
|   void ThinkAboutMove(float) override;
 | |
| 
 | |
| private:
 | |
|   float x568_delay;
 | |
|   float x56c_haltDelay;
 | |
|   float x570_dropHeight;
 | |
|   CVector3f x574_offset;
 | |
|   float x580_attackSpeed;
 | |
|   CVector3f x584_lookPos;
 | |
|   CVector3f x590_projectileDelta;
 | |
|   CVector3f x59c_velocity;
 | |
|   int x5a8_;
 | |
|   CDamageInfo x5ac_damageInfo;
 | |
|   ushort x5c8_attackSfx;
 | |
|   bool x5ca_24_ : 1;
 | |
|   bool x5ca_25_started : 1;
 | |
|   bool x5ca_26_deactivated : 1;
 | |
|   uint x5cc_;
 | |
| };
 | |
| 
 | |
| #endif // _CMETAREE
 |