CommonLibSSE NG
Loading...
Searching...
No Matches
NiGeometry.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/N/NiAVObject.h"
5#include "RE/N/NiProperty.h"
7
8namespace RE
9{
10 class NiGeometry : public NiAVObject
11 {
12 public:
14 {
15#define RUNTIME_DATA_CONTENT \
16 NiPointer<NiProperty> m_spPropertyState; /* 110 */ \
17 NiPointer<NiProperty> m_spEffectState; /* 118 */ \
18 NiPointer<NiSkinInstance> m_spSkinInstance; /* 120 */ \
19 NiPointer<NiGeometryData> m_spModelData; /* 128 */ \
20 std::uint64_t unk130; /* 130 */
21
23 };
24 static_assert(sizeof(RUNTIME_DATA) == 0x28);
25
26 // add
27 SKYRIM_REL_VR_VIRTUAL void Unk_35(void); // 35, 36 - call controller vtbl+0xA0?
28 SKYRIM_REL_VR_VIRTUAL void Unk_36(void); // 36, 37 - ret 0
29 SKYRIM_REL_VR_VIRTUAL void Unk_37(void); // 37, 38 - same as Unk_33
30 SKYRIM_REL_VR_VIRTUAL void* Unk_38(void); // 38, 39 - ret call m_spModelData vtbl+0x9C
31 SKYRIM_REL_VR_VIRTUAL void SetGeometryData(NiGeometryData* unk1); // 39, 3A - set and AddRef geometry data
32 SKYRIM_REL_VR_VIRTUAL void* Unk_3A(void); // 3A, 3B - ret call m_spModelData vtbl+0x94
33 SKYRIM_REL_VR_VIRTUAL std::uint16_t Unk_3B(bool unk1); // 3B, 3C ??
34
35 [[nodiscard]] inline RUNTIME_DATA& GetRuntimeData() noexcept
36 {
37 return REL::RelocateMember<RUNTIME_DATA>(this, 0x110, 0x138);
38 }
39
40 [[nodiscard]] inline const RUNTIME_DATA& GetRuntimeData() const noexcept
41 {
42 return REL::RelocateMember<RUNTIME_DATA>(this, 0x110, 0x138);
43 }
44
45 RUNTIME_DATA_CONTENT // 110, 138
46 };
47#if !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
48 static_assert(sizeof(NiGeometry) == 0x160);
49#else
50 static_assert(sizeof(NiGeometry) == 0x138);
51#endif
52}
53#undef RUNTIME_DATA_CONTENT
#define RUNTIME_DATA_CONTENT
Definition Actor.h:633
#define SKYRIM_REL_VR_VIRTUAL
Definition Relocation.h:152
Definition NiAVObject.h:50
Definition NiGeometryData.h:16
Definition NiGeometry.h:11
SKYRIM_REL_VR_VIRTUAL void * Unk_3A(void)
SKYRIM_REL_VR_VIRTUAL std::uint16_t Unk_3B(bool unk1)
RUNTIME_DATA & GetRuntimeData() noexcept
Definition NiGeometry.h:35
SKYRIM_REL_VR_VIRTUAL void Unk_35(void)
SKYRIM_REL_VR_VIRTUAL void Unk_36(void)
SKYRIM_REL_VR_VIRTUAL void * Unk_38(void)
SKYRIM_REL_VR_VIRTUAL void Unk_37(void)
const RUNTIME_DATA & GetRuntimeData() const noexcept
Definition NiGeometry.h:40
SKYRIM_REL_VR_VIRTUAL void SetGeometryData(NiGeometryData *unk1)
Definition AbsorbEffect.h:6
Definition NiGeometry.h:14