CommonLibSSE NG
Loading...
Searching...
No Matches
NiSkinInstance.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/N/NiObject.h"
5
6namespace RE
7{
8 class NiAVObject;
9 class NiTransform;
10 class NiSkinData;
11 class NiSkinPartition;
12
13 class NiSkinInstance : public NiObject
14 {
15 public:
16 inline static constexpr auto RTTI = RTTI_NiSkinInstance;
17 inline static auto Ni_RTTI = NiRTTI_NiSkinInstance;
18
19 ~NiSkinInstance() override; // 00
20
21 // override (NiObject)
22 const NiRTTI* GetRTTI() const override; // 02
23 NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
24 void LoadBinary(NiStream& a_stream) override; // 18
25 void LinkObject(NiStream& a_stream) override; // 19
26 bool RegisterStreamables(NiStream& a_stream) override; // 1A
27 void SaveBinary(NiStream& a_stream) override; // 1B
28 bool IsEqual(NiObject* a_object) override; // 1C
29 void PostLinkObject(NiStream& a_stream) override; // 1E - { return; }
30
31 // add
32 virtual void Unk_25(void); // 25
33
35
36 // members
42 std::uint32_t frameID; // 38
43 std::uint32_t numMatrices; // 3C
44 std::uint32_t numRegisters; // 40
45 std::uint32_t allocatedSize; // 44
46 void* boneMatrices; // 48
47 void* prevBoneMatrices; // 50
49#ifndef ENABLE_SKYRIM_VR
51 };
52 static_assert(sizeof(NiSkinInstance) == 0x88);
53#else
54 std::uint64_t unk60; // 60 - no lock in VR
55 };
56 static_assert(sizeof(NiSkinInstance) == 0x68);
57#endif
58}
Definition NiAVObject.h:50
Definition NiCloningProcess.h:10
Definition NiObject.h:37
Definition NiSmartPointer.h:9
Definition NiRTTI.h:6
Definition NiSkinInstance.h:14
const NiRTTI * GetRTTI() const override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
void PostLinkObject(NiStream &a_stream) override
~NiSkinInstance() override
static NiSkinInstance * Create()
std::uint32_t numMatrices
Definition NiSkinInstance.h:43
NiAVObject * rootParent
Definition NiSkinInstance.h:39
void SaveBinary(NiStream &a_stream) override
bool IsEqual(NiObject *a_object) override
std::uint32_t numRegisters
Definition NiSkinInstance.h:44
const NiTransform ** boneWorldTransforms
Definition NiSkinInstance.h:41
virtual void Unk_25(void)
NiPointer< NiSkinPartition > skinPartition
Definition NiSkinInstance.h:38
static auto Ni_RTTI
Definition NiSkinInstance.h:17
void LinkObject(NiStream &a_stream) override
void * prevBoneMatrices
Definition NiSkinInstance.h:47
WinAPI::CRITICAL_SECTION lock
Definition NiSkinInstance.h:50
void * skinToWorldWorldToSkinMatrix
Definition NiSkinInstance.h:48
NiPointer< NiSkinData > skinData
Definition NiSkinInstance.h:37
NiAVObject ** bones
Definition NiSkinInstance.h:40
std::uint32_t frameID
Definition NiSkinInstance.h:42
static constexpr auto RTTI
Definition NiSkinInstance.h:16
std::uint32_t allocatedSize
Definition NiSkinInstance.h:45
bool RegisterStreamables(NiStream &a_stream) override
void LoadBinary(NiStream &a_stream) override
void * boneMatrices
Definition NiSkinInstance.h:46
Definition NiStream.h:27
Definition NiTransform.h:9
Definition AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_NiSkinInstance(523976, 410556, 0x316c0d0)
constexpr REL::VariantID RTTI_NiSkinInstance(690429, 398284, 0x1f61f78)
Definition WinAPI.h:42