CommonLibSSE NG
hkpEntity.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/H/hkArray.h"
4 #include "RE/H/hkBaseTypes.h"
5 #include "RE/H/hkSmallArray.h"
7 #include "RE/H/hkpMaterial.h"
8 #include "RE/H/hkpWorldObject.h"
9 
10 namespace RE
11 {
12  class hkpConstraintInstance;
13  class hkLocalFrame;
14  class hkSpuCollisionCallbackUtil;
15  class hkpAction;
16  class hkpBreakableBody;
17  class hkpContactListener;
18  class hkpEntityActivationListener;
19  class hkpEntityListener;
20  class hkpSimulationIsland;
21  struct hkConstraintInternal;
22 
23  class hkpEntity : public hkpWorldObject
24  {
25  public:
26  inline static constexpr auto RTTI = RTTI_hkpEntity;
27  inline static constexpr auto VTABLE = VTABLE_hkpEntity;
28 
30  {
31  kNone = 0,
32  kContactPointAdded = 1 << 0,
33  kContactPointProcess = 1 << 1,
34  kContactPointRemoved = 1 << 2,
36  };
37 
39  {
40  public:
41  // members
42  void* data; // 00
43  std::uint16_t size; // 08
44  std::uint16_t capacityAndFlags; // 0A
45  std::uint32_t pad0C; // 0C
46  };
47  static_assert(sizeof(SmallArraySerializeOverrideType) == 0x10);
48 
50  {
51  public:
52  // members
53  hkSpuCollisionCallbackUtil* util; // 00
54  std::uint16_t capacity; // 08
56  std::uint8_t userFilter; // 0B
57  std::uint32_t pad0C; // 0C
58  };
59  static_assert(sizeof(SpuCollisionCallback) == 0x10);
60 
62  {
63  public:
64  // members
67  };
68  static_assert(sizeof(ExtendedListeners) == 0x20);
69 
70  ~hkpEntity() override; // 00
71 
72  // override (hkpWorldObject)
73  void CalcContentStatistics(hkStatisticsCollector* a_collector, const hkClass* a_class) const override; // 02
74  hkMotionState* GetMotionState() override; // 05 - { return 0; }
75 
76  // add
77  virtual void DeallocateInternalArrays(); // 06
78 
79  // members
81  std::uint32_t pad00C; // 0DC
83  float damageMultiplier; // 0E8
84  std::uint32_t pad01C; // 0EC
85  hkpBreakableBody* breakableBody; // 0F0
86  std::uint32_t solverData; // 0F8
88  std::uint16_t contactPointCallbackDelay; // 0FE
93  std::int8_t autoRemoveLevel; // 138
95  std::uint8_t responseModifierFlags; // 13A
96  std::uint8_t pad13B; // 13B
97  std::uint32_t uid; // 13C
104  std::uint32_t npData; // 2C0
105  std::uint32_t pad2C4; // 2C4
106  std::uint64_t pad2C8; // 2C8
107  };
108  static_assert(sizeof(hkpEntity) == 0x2D0);
109 }
Definition: hkArray.h:190
Definition: hkMotionState.h:11
std::uint32_t pad0C
Definition: hkpEntity.h:45
void * data
Definition: hkpEntity.h:42
std::uint16_t capacityAndFlags
Definition: hkpEntity.h:44
std::uint16_t size
Definition: hkpEntity.h:43
Definition: hkpEntity.h:24
std::uint8_t responseModifierFlags
Definition: hkpEntity.h:95
hkArray< std::uint8_t > constraintRuntime
Definition: hkpEntity.h:91
static constexpr auto RTTI
Definition: hkpEntity.h:26
SpuCollisionCallback spuCollisionCallback
Definition: hkpEntity.h:98
void * limitContactImpulseUtilAndFlag
Definition: hkpEntity.h:82
hkSmallArray< hkpAction * > actions
Definition: hkpEntity.h:101
float damageMultiplier
Definition: hkpEntity.h:83
std::uint32_t npData
Definition: hkpEntity.h:104
ExtendedListeners * extendedListeners
Definition: hkpEntity.h:103
hkObjectIndex storageIndex
Definition: hkpEntity.h:87
hkArray< hkpConstraintInstance * > constraintsSlave
Definition: hkpEntity.h:90
std::uint8_t pad13B
Definition: hkpEntity.h:96
std::int8_t autoRemoveLevel
Definition: hkpEntity.h:93
void CalcContentStatistics(hkStatisticsCollector *a_collector, const hkClass *a_class) const override
std::uint32_t uid
Definition: hkpEntity.h:97
SpuCollisionCallbackEventFilter
Definition: hkpEntity.h:30
hkSmallArray< hkConstraintInternal > constraintsMaster
Definition: hkpEntity.h:89
hkpBreakableBody * breakableBody
Definition: hkpEntity.h:85
std::uint16_t contactPointCallbackDelay
Definition: hkpEntity.h:88
hkpMaterial material
Definition: hkpEntity.h:80
~hkpEntity() override
std::uint32_t pad00C
Definition: hkpEntity.h:81
hkMotionState * GetMotionState() override
hkRefPtr< hkLocalFrame > localFrame
Definition: hkpEntity.h:102
std::uint32_t pad2C4
Definition: hkpEntity.h:105
hkpSimulationIsland * simulationIsland
Definition: hkpEntity.h:92
static constexpr auto VTABLE
Definition: hkpEntity.h:27
std::uint64_t pad2C8
Definition: hkpEntity.h:106
hkSmallArray< hkpContactListener * > contactListeners
Definition: hkpEntity.h:100
std::uint32_t pad01C
Definition: hkpEntity.h:84
virtual void DeallocateInternalArrays()
hkpMaxSizeMotion motion
Definition: hkpEntity.h:99
std::uint32_t solverData
Definition: hkpEntity.h:86
std::uint8_t numShapeKeysInContactPointProperties
Definition: hkpEntity.h:94
Definition: hkpMaterial.h:8
Definition: hkpKeyframedRigidMotion.h:47
Definition: hkpSimulationIsland.h:16
Definition: hkpWorldObject.h:28
Definition: AbsorbEffect.h:6
std::uint16_t hkObjectIndex
Definition: hkBaseTypes.h:5
constexpr REL::VariantID RTTI_hkpEntity(689851, 397706, 0x1f59410)
constexpr std::array< REL::VariantID, 1 > VTABLE_hkpEntity
Definition: Offsets_VTABLE.h:5000
Definition: hkpEntity.h:62
hkSmallArray< hkpEntityListener * > entityListeners
Definition: hkpEntity.h:66
hkSmallArray< hkpEntityActivationListener * > activationListeners
Definition: hkpEntity.h:65
Definition: hkpEntity.h:50
std::uint8_t userFilter
Definition: hkpEntity.h:56
std::uint16_t capacity
Definition: hkpEntity.h:54
std::uint32_t pad0C
Definition: hkpEntity.h:57
hkSpuCollisionCallbackUtil * util
Definition: hkpEntity.h:53
stl::enumeration< SpuCollisionCallbackEventFilter, std::uint8_t > eventFilter
Definition: hkpEntity.h:55