Files
Henrique Gemignani Passos Lima e310ef9ce8 Improve CannonBall rel
2025-01-12 15:45:04 +02:00

40 lines
1.0 KiB
C++

#ifndef _CSCRIPTCANNONBALL
#define _CSCRIPTCANNONBALL
#include "MetroidPrime/CActor.hpp"
#include "rstl/reserved_vector.hpp"
class CScriptCannonBall : public CActor {
public:
struct TrackedShot {
TrackedShot(TUniqueId, bool);
TUniqueId m_scriptObject;
float m_f;
int m_updateFrameIdx;
bool m_b : 1;
bool m_flag2 : 1;
void Think(float dt, CStateManager& mgr, int i);
void FreeScriptObject(CStateManager& mgr);
void OnIncrementMsg(CStateManager& mgr, int);
};
CScriptCannonBall(TUniqueId uid, const rstl::string& name, const CEntityInfo& info,
const CTransform4f& xf, CAssetId effect);
~CScriptCannonBall();
void Think(float dt, CStateManager& mgr) override;
void AcceptScriptMsg(CStateManager& mgr, const CScriptMsg&) override;
CHealthInfo* HealthInfo(CStateManager&) override;
private:
CAssetId m_effect;
rstl::reserved_vector< TrackedShot, 4 > m_fields;
};
CEntity* REL_LoadCannonBall(CStateManager& mgr, CInputStream& input, const CEntityInfo& info);
#endif // _CSCRIPTCANNONBALL