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