CommonLibSSE (Parapets fork)
NiSkinPartition.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/M/MemoryManager.h"
4 #include "RE/N/NiGeometryData.h"
5 #include "RE/N/NiObject.h"
6 
7 namespace RE
8 {
9  struct ID3D11Buffer;
10 
11  class NiSkinPartition : public NiObject
12  {
13  public:
14  inline static constexpr auto RTTI = RTTI_NiSkinPartition;
15  inline static constexpr auto Ni_RTTI = NiRTTI_NiSkinPartition;
16 
17  struct TriShape
18  {
19  ID3D11Buffer* vertexBuffer; // 00
20  ID3D11Buffer* indexBuffer; // 08
21  std::uint64_t vertexDesc; // 10
22  volatile std::uint32_t refCount; // 18
23  std::uint32_t pad1C; // 1C
24  std::uint8_t* rawVertexData; // 20
25  std::uint16_t* rawIndexData; // 28
26  };
27  static_assert(sizeof(TriShape) == 0x30);
28 
29  class Partition
30  {
31  public:
32  std::uint64_t vertexDesc; // 00
33  std::uint16_t* bones; // 08
34  float* weights; // 10
35  std::uint16_t* vertexMap; // 18
36  std::uint8_t* bonePalette; // 20
37  std::uint16_t* triList; // 28
38  std::uint16_t* stripLengths; // 30
39  std::uint16_t vertices; // 38
40  std::uint16_t triangles; // 3A
41  std::uint16_t numBones; // 3C
42  std::uint16_t strips; // 3E
43  std::uint16_t bonesPerVertex; // 40
44  std::uint16_t pad42; // 42
45  float unk44; // 44
47  };
48  static_assert(sizeof(Partition) == 0x50);
49 
50  ~NiSkinPartition() override; // 00
51 
52  // override (NiObject)
53  const NiRTTI* GetRTTI() const override; // 02
54  void LoadBinary(NiStream& a_stream) override; // 18
55  void LinkObject(NiStream& a_stream) override; // 19 - { NiObject::LinkObject(a_stream); }
56  bool RegisterStreamables(NiStream& a_stream) override; // 1A - { return NiObject::RegisterStreamables(a_stream); }
57  void SaveBinary(NiStream& a_stream) override; // 1B
58  bool IsEqual(NiObject* a_object) override; // 1C
59 
60  // add
61  virtual void Unk_25(void); // 25
62 
63  // members
64  std::uint32_t numPartitions; // 10
65  std::uint32_t pad14; // 14
67  std::uint64_t unk20; // 20
68  };
69  static_assert(sizeof(NiSkinPartition) == 0x28);
70 }
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiSkinPartition.h:30
float unk44
Definition: NiSkinPartition.h:45
std::uint16_t strips
Definition: NiSkinPartition.h:42
std::uint8_t * bonePalette
Definition: NiSkinPartition.h:36
std::uint16_t numBones
Definition: NiSkinPartition.h:41
std::uint16_t * vertexMap
Definition: NiSkinPartition.h:35
float * weights
Definition: NiSkinPartition.h:34
TriShape * buffData
Definition: NiSkinPartition.h:46
std::uint64_t vertexDesc
Definition: NiSkinPartition.h:32
std::uint16_t pad42
Definition: NiSkinPartition.h:44
std::uint16_t * stripLengths
Definition: NiSkinPartition.h:38
std::uint16_t * triList
Definition: NiSkinPartition.h:37
std::uint16_t vertices
Definition: NiSkinPartition.h:39
std::uint16_t * bones
Definition: NiSkinPartition.h:33
std::uint16_t triangles
Definition: NiSkinPartition.h:40
std::uint16_t bonesPerVertex
Definition: NiSkinPartition.h:43
Definition: NiSkinPartition.h:12
static constexpr auto RTTI
Definition: NiSkinPartition.h:14
std::uint32_t pad14
Definition: NiSkinPartition.h:65
~NiSkinPartition() override
virtual void Unk_25(void)
SimpleArray< Partition > partitions
Definition: NiSkinPartition.h:66
bool IsEqual(NiObject *a_object) override
bool RegisterStreamables(NiStream &a_stream) override
std::uint64_t unk20
Definition: NiSkinPartition.h:67
std::uint32_t numPartitions
Definition: NiSkinPartition.h:64
static constexpr auto Ni_RTTI
Definition: NiSkinPartition.h:15
void LoadBinary(NiStream &a_stream) override
const NiRTTI * GetRTTI() const override
void LinkObject(NiStream &a_stream) override
void SaveBinary(NiStream &a_stream) override
Definition: NiStream.h:6
Definition: MemoryManager.h:166
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_NiSkinPartition
Definition: Offsets_RTTI.h:5475
constexpr REL::ID NiRTTI_NiSkinPartition
Definition: Offsets_NiRTTI.h:295
Definition: NiSkinPartition.h:18
std::uint16_t * rawIndexData
Definition: NiSkinPartition.h:25
std::uint8_t * rawVertexData
Definition: NiSkinPartition.h:24
std::uint64_t vertexDesc
Definition: NiSkinPartition.h:21
ID3D11Buffer * vertexBuffer
Definition: NiSkinPartition.h:19
std::uint32_t pad1C
Definition: NiSkinPartition.h:23
volatile std::uint32_t refCount
Definition: NiSkinPartition.h:22
ID3D11Buffer * indexBuffer
Definition: NiSkinPartition.h:20