Files
Commonwealth-Online-Public/plugin/lib/commonlibf4/include/RE/H/hknpPhysicsSystem.h
T
2026-05-30 18:33:24 +12:00

54 lines
1.6 KiB
C++

#pragma once
#include "RE/H/hkArray.h"
#include "RE/H/hkRefPtr.h"
#include "RE/H/hkReferencedObject.h"
#include "RE/H/hknpActivation.h"
#include "RE/H/hknpBodyId.h"
#include "RE/H/hknpConstraintId.h"
#include "RE/H/hknpWorld.h"
namespace RE
{
class hknpPhysicsSystemData;
class __declspec(novtable) hknpPhysicsSystem :
public hkReferencedObject
{
public:
static constexpr auto RTTI{ RTTI::hknpPhysicsSystem };
static constexpr auto VTABLE{ VTABLE::hknpPhysicsSystem };
enum class Flags : std::int32_t
{
CLONE_POWERABLE_CONSTRAINT_DATAS = 0x1,
FORCE_EXPORTABLE_CONSTRAINTS = 0x2,
CREATE_CONSTRAINTS = 0x4,
DEFAULT_FLAGS = 0x5,
};
virtual ~hknpPhysicsSystem(); // 00
void AddToWorld(hknpWorld::AdditionMode a_additionMode, hkFlags<hknpWorld::AdditionFlagsEnum, std::uint8_t> a_additionFlags, hknpActivationMode::Enum a_constraintActivationMode)
{
using func_t = decltype(&hknpPhysicsSystem::AddToWorld);
static REL::Relocation<func_t> func{ ID::hknpPhysicsSystem::AddToWorld };
func(this, a_additionMode, a_additionFlags, a_constraintActivationMode);
}
void RemoveFromWorld()
{
using func_t = decltype(&hknpPhysicsSystem::RemoveFromWorld);
static REL::Relocation<func_t> func{ ID::hknpPhysicsSystem::RemoveFromWorld };
func(this);
}
// members
hkRefPtr<const hknpPhysicsSystemData> m_data; // 0x10
hkRefPtr<hknpWorld> m_world; // 0x18
hkArray<hknpBodyId> m_bodyIds; // 0x20
hkArray<hknpConstraintId> m_constraintIds; // 0x30
};
static_assert(sizeof(hknpPhysicsSystem) == 0x40);
}