metaforce/Runtime/World/CScriptActor.hpp

51 lines
1.7 KiB
C++
Raw Normal View History

2016-04-19 00:17:49 +00:00
#ifndef __URDE_CSCRIPTACTOR_HPP__
#define __URDE_CSCRIPTACTOR_HPP__
#include "CPhysicsActor.hpp"
2017-02-03 23:32:15 +00:00
#include "CHealthInfo.hpp"
#include "CDamageVulnerability.hpp"
2016-04-19 00:17:49 +00:00
namespace urde
{
class CScriptActor : public CPhysicsActor
{
2017-02-03 23:32:15 +00:00
protected:
CHealthInfo x258_initialHealth;
CHealthInfo x260_currentHealth;
CDamageVulnerability x268_damageVulnerability;
float x2d0_;
float x2d4_;
s32 x2d8_;
float x2dc_;
TUniqueId x2e0_ = kInvalidUniqueId;
bool x2e2_24_ : 1;
bool x2e2_25_ : 1;
bool x2e2_26_ : 1;
bool x2e2_27_ : 1;
bool x2e2_28_ : 1;
bool x2e2_29_ : 1;
bool x2e2_30_ : 1;
bool x2e2_31_ : 1;
bool x2e3_24_ : 1;
2016-04-19 00:17:49 +00:00
public:
CScriptActor(TUniqueId, const std::string&, const CEntityInfo&, const zeus::CTransform&, CModelData&&,
const zeus::CAABox& aabb, float, float, const CMaterialList& matList, const CHealthInfo&,
const CDamageVulnerability&, const CActorParameters&, bool, bool, u32, float, bool, bool, bool, bool);
2017-01-15 03:07:01 +00:00
void Accept(IVisitor& visitor);
2017-02-03 23:32:15 +00:00
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&);
void Think(float, CStateManager&);
void PreRender(const zeus::CFrustum&, const CStateManager&);
zeus::CAABox GetSortingBounds(const CStateManager&) const;
EWeaponCollisionResponseTypes GetCollisionResponseType(const zeus::CVector3f&, const zeus::CVector3f&,
CWeaponMode&, int);
rstl::optional_object<zeus::CAABox> GetTouchBounds() const;
void Touch(CActor&, CStateManager&);
const CDamageVulnerability* GetDamageVulnerability() { return &x268_damageVulnerability; }
CHealthInfo* HealthInfo() { return &x260_currentHealth; }
2016-04-19 00:17:49 +00:00
};
}
#endif // __URDE_CSCRIPTACTOR_HPP__