2023-08-22 00:26:59 +03:00
|
|
|
#ifndef _CSCRIPTSEQUENCETIMER
|
|
|
|
|
#define _CSCRIPTSEQUENCETIMER
|
|
|
|
|
|
|
|
|
|
#include "MetroidPrime/CEntity.hpp"
|
|
|
|
|
|
|
|
|
|
#include "MetroidPrime/ScriptLoader/SLdrConnection.hpp"
|
|
|
|
|
|
|
|
|
|
class CScriptSequenceTimer : public CEntity {
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
CScriptSequenceTimer(TUniqueId, const rstl::string&, const CEntityInfo&, const rstl::vector< SLdrConnection >& connections, float startTime, float maxTime, float loopStartTime, bool isAutostart, bool isLoop, bool takeExternalTime);
|
|
|
|
|
~CScriptSequenceTimer();
|
2024-01-22 11:55:44 +02:00
|
|
|
CEntity* TypesMatch(int typeId) const override;
|
2023-08-22 00:26:59 +03:00
|
|
|
|
|
|
|
|
void Think(float dt, CStateManager& mgr) override;
|
2024-01-22 11:55:44 +02:00
|
|
|
void AcceptScriptMsg(CStateManager& mgr, const CScriptMsg&) override;
|
2023-08-22 00:26:59 +03:00
|
|
|
|
|
|
|
|
void fn_801e1c1c(float f, CStateManager& mgr);
|
|
|
|
|
|
|
|
|
|
void SetCurrentTime(float);
|
|
|
|
|
void fn_801e1af8(float f, CStateManager& mgr);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
float m_startTime; // 0x24
|
|
|
|
|
float m_currentTime; // 0x28
|
|
|
|
|
float m_maxTime; // 0x2c
|
|
|
|
|
float m_loopStartTime; // 0x30
|
|
|
|
|
bool m_isAutostart : 1;
|
|
|
|
|
bool m_isLoop : 1;
|
|
|
|
|
bool m_takeExternalTime : 1;
|
|
|
|
|
rstl::vector< SLdrConnection > m_connections;
|
|
|
|
|
CScriptMsg m_scriptMsg; // 0x48
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // _CSCRIPTSEQUENCETIMER
|