#ifndef _CWEAPON #define _CWEAPON #include "types.h" #include "MetroidPrime/CActor.hpp" #include "MetroidPrime/CDamageInfo.hpp" #include "MetroidPrime/Weapons/WeaponTypes.hpp" class CWeapon : public CActor { public: // TODO // CEntity ~CWeapon() override; void Think(float dt, CStateManager& mgr) override; // CActor void Render(const CStateManager&) const override; EWeaponCollisionResponseTypes GetCollisionResponseType(const CVector3f&, const CVector3f&, const CWeaponMode&, int /*EProjectileAttrib?*/) const override; void FluidFXThink(EFluidState, CScriptWater&, CStateManager&) override; EProjectileAttrib GetAttribField() const { return xe8_projectileAttribs; } private: EProjectileAttrib xe8_projectileAttribs; TUniqueId xec_ownerId; EWeaponType xf0_weaponType; CMaterialFilter xf8_filter; CDamageInfo x110_origDamageInfo; CDamageInfo x12c_curDamageInfo; float x148_curTime; float x14c_damageFalloffSpeed; float x150_damageDuration; float x154_interferenceDuration; }; CHECK_SIZEOF(CWeapon, 0x158) #endif // _CWEAPON