CommonLibSSE (powerof3)
BSDismemberSkinInstance.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiSkinInstance.h"
4 
5 namespace RE
6 {
8  {
9  public:
10  inline static constexpr auto RTTI = RTTI_BSDismemberSkinInstance;
11  inline static constexpr auto Ni_RTTI = NiRTTI_BSDismemberSkinInstance;
12  inline static constexpr auto VTABLE = VTABLE_BSDismemberSkinInstance;
13 
14  struct Data
15  {
16  public:
17  // members
18  bool editorVisible; // 0
19  bool startNetBoneSet; // 1
20  std::uint16_t slot; // 2 - https://wiki.nexusmods.com/index.php/Skyrim_bodyparts_number
21  };
22  static_assert(sizeof(Data) == 0x4);
23 
24  ~BSDismemberSkinInstance() override; // 00
25 
26  // override (NiSkinInstance)
27  const NiRTTI* GetRTTI() const override; // 02
28  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
29  void LoadBinary(NiStream& a_stream) override; // 18
30  void LinkObject(NiStream& a_stream) override; // 19 - { NiSkinInstance::LinkObject(a_stream); }
31  bool RegisterStreamables(NiStream& a_stream) override; // 1A - { return NiSkinInstance::RegisterStreamables(a_stream) != false; }
32  void SaveBinary(NiStream& a_stream) override; // 1B
33  bool IsEqual(NiObject* a_object) override; // 1C
34  void Unk_25(void) override; // 25
35 
36  void UpdateDismemberPartion(std::uint16_t a_slot, bool a_enable)
37  {
38  using func_t = decltype(&BSDismemberSkinInstance::UpdateDismemberPartion);
39  static REL::Relocation<func_t> func{ RELOCATION_ID(15576, 15753) };
40  return func(this, a_slot, a_enable);
41  }
42 
43  // members
44  std::int32_t numPartitions; // 88
45  std::uint32_t pad8C; // 8C
46  Data* partitions; // 90
47  bool unk98; // 98
48  std::uint8_t pad99; // 99
49  std::uint16_t pad9A; // 9A
50  std::uint32_t pad9C; // 9C
51  };
52  static_assert(sizeof(BSDismemberSkinInstance) == 0xA0);
53 }
#define RELOCATION_ID(SE, AE)
Definition: PCH.h:505
Definition: Relocation.h:210
Definition: BSDismemberSkinInstance.h:8
void Unk_25(void) override
std::int32_t numPartitions
Definition: BSDismemberSkinInstance.h:44
void SaveBinary(NiStream &a_stream) override
static constexpr auto Ni_RTTI
Definition: BSDismemberSkinInstance.h:11
bool IsEqual(NiObject *a_object) override
void LoadBinary(NiStream &a_stream) override
Data * partitions
Definition: BSDismemberSkinInstance.h:46
NiObject * CreateClone(NiCloningProcess &a_cloning) override
void LinkObject(NiStream &a_stream) override
bool unk98
Definition: BSDismemberSkinInstance.h:47
static constexpr auto RTTI
Definition: BSDismemberSkinInstance.h:10
std::uint16_t pad9A
Definition: BSDismemberSkinInstance.h:49
std::uint32_t pad8C
Definition: BSDismemberSkinInstance.h:45
void UpdateDismemberPartion(std::uint16_t a_slot, bool a_enable)
Definition: BSDismemberSkinInstance.h:36
std::uint32_t pad9C
Definition: BSDismemberSkinInstance.h:50
static constexpr auto VTABLE
Definition: BSDismemberSkinInstance.h:12
std::uint8_t pad99
Definition: BSDismemberSkinInstance.h:48
const NiRTTI * GetRTTI() const override
bool RegisterStreamables(NiStream &a_stream) override
Definition: NiCloningProcess.h:10
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiSkinInstance.h:16
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BSDismemberSkinInstance
Definition: Offsets_VTABLE.h:8993
constexpr REL::ID NiRTTI_BSDismemberSkinInstance(static_cast< std::uint64_t >(523941))
constexpr REL::ID RTTI_BSDismemberSkinInstance(static_cast< std::uint64_t >(690430))
Definition: BSDismemberSkinInstance.h:15
bool editorVisible
Definition: BSDismemberSkinInstance.h:18
std::uint16_t slot
Definition: BSDismemberSkinInstance.h:20
bool startNetBoneSet
Definition: BSDismemberSkinInstance.h:19