prime/include/MetroidPrime/CEntity.hpp

48 lines
1.3 KiB
C++
Raw Normal View History

2022-08-09 23:03:51 +00:00
#ifndef _CENTITY_HPP
#define _CENTITY_HPP
#include "types.h"
#include "MetroidPrime/CEntityInfo.hpp"
#include "MetroidPrime/CStateManager.hpp"
#include "MetroidPrime/TCastTo.hpp"
#include "MetroidPrime/TGameTypes.hpp"
#include "rstl/string.hpp"
#include "rstl/vector.hpp"
class CEntity {
public:
virtual ~CEntity();
virtual void Accept(IVisitor& visitor) = 0;
virtual void PreThink(float dt, CStateManager& mgr);
virtual void Think(float dt, CStateManager& mgr);
2022-08-11 02:33:46 +00:00
virtual void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr);
2022-08-09 23:03:51 +00:00
virtual void SetActive(bool active);
CEntity(TUniqueId id, const CEntityInfo& info, bool active, const rstl::string& name);
2022-08-11 02:33:46 +00:00
void SendScriptMsgs(EScriptObjectState state, CStateManager& mgr, EScriptObjectMessage msg);
TUniqueId GetUniqueId() const { return x8_uid; }
TAreaId GetAreaId() const;
2022-09-14 05:24:12 +00:00
bool GetActive() const { return x30_24_active; }
2022-09-15 04:08:47 +00:00
const rstl::vector<SConnection>& GetConnectionList() const { return x20_conns; }
2022-08-11 02:33:46 +00:00
2022-08-09 23:03:51 +00:00
static rstl::vector<SConnection> NullConnectionList;
protected:
TAreaId x4_areaId;
TUniqueId x8_uid;
TEditorId xc_editorId;
rstl::string x10_name;
rstl::vector<SConnection> x20_conns;
bool x30_24_active : 1;
bool x30_25_inGraveyard : 1;
bool x30_26_scriptingBlocked : 1;
2022-08-11 02:33:46 +00:00
bool x30_27_notInArea : 1;
2022-08-09 23:03:51 +00:00
};
2022-08-13 01:26:00 +00:00
CHECK_SIZEOF(CEntity, 0x34)
2022-08-09 23:03:51 +00:00
#endif