CommonLibSSE NG
Loading...
Searching...
No Matches
BSMultiStreamInstanceTriShape.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace RE
6{
8 {
9 public:
10 inline static constexpr auto RTTI = RTTI_BSMultiStreamInstanceTriShape;
12
14 {
15#define RUNTIME_DATA_CONTENT \
16 BSTArray<void*> unk160; /* 00 */ \
17 std::uint32_t unk178; /* 18 */ \
18 std::uint32_t unk17C; /* 1C */ \
19 std::uint64_t unk180; /* 20 */ \
20 std::uint64_t unk188; /* 28 */ \
21 std::uint32_t unk190; /* 30 */ \
22 std::uint32_t unk194; /* 34 */ \
23 std::uint32_t unk198; /* 38 */
24
26 };
27 static_assert(sizeof(MULTISTREAM_TRISHAPE_RUNTIME_DATA) == 0x40);
28
30
31 // override (BSInstanceTriShape)
32 const NiRTTI* GetRTTI() const override; // 02
33 NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
34#if !defined(ENABLE_SKYRIM_VR) || (!defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_VR))
35 // The following are virtual functions past the point where VR compatibility breaks.
36 void OnVisible(NiCullingProcess& a_process) override; // 34
37
38 // overrides for BSTriShape
39 void Unk_37(void) override; // 37
40 void BeginAddingInstances(std::uint32_t a_numFloatsPerInstance) override; // 38
41 void AddInstances(std::uint32_t a_numFloatsPerInstance, std::uint16_t& a_instanceData) override; // 39
42 void DoneAddingInstances(BSTArray<std::uint32_t>& a_instances) override; // 3A
43 bool GetIsAddingInstances() override; // 3B
44 std::uint32_t AddGroup(std::uint32_t a_numInstances, std::uint16_t& a_instanceData, std::uint32_t a_arg3, float a_arg4) override; // 3C
45 void RemoveGroup(std::uint32_t a_numInstance) override; // 3D
46#endif
47
49 {
50 return REL::RelocateMember<MULTISTREAM_TRISHAPE_RUNTIME_DATA>(this, 0x160, 0x1A8);
51 }
52
53 [[nodiscard]] inline const MULTISTREAM_TRISHAPE_RUNTIME_DATA& GetMultiStreamTrishapeRuntimeData() const noexcept
54 {
55 return REL::RelocateMember<MULTISTREAM_TRISHAPE_RUNTIME_DATA>(this, 0x160, 0x1A8);
56 }
57
58 // members
59#ifndef SKYRIM_CROSS_VR
60 RUNTIME_DATA_CONTENT // 160, 1A8
61#endif
62 };
63#ifndef ENABLE_SKYRIM_VR
64 static_assert(sizeof(BSMultiStreamInstanceTriShape) == 0x1A0);
65#elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
66 static_assert(sizeof(BSMultiStreamInstanceTriShape) == 0x1E8);
67#endif
68}
69#undef RUNTIME_DATA_CONTENT
RUNTIME_DATA_CONTENT
Definition BSGeometry.h:141
Definition BSInstanceTriShape.h:9
Definition BSMultiStreamInstanceTriShape.h:8
const NiRTTI * GetRTTI() const override
void BeginAddingInstances(std::uint32_t a_numFloatsPerInstance) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
const MULTISTREAM_TRISHAPE_RUNTIME_DATA & GetMultiStreamTrishapeRuntimeData() const noexcept
Definition BSMultiStreamInstanceTriShape.h:53
void DoneAddingInstances(BSTArray< std::uint32_t > &a_instances) override
std::uint32_t AddGroup(std::uint32_t a_numInstances, std::uint16_t &a_instanceData, std::uint32_t a_arg3, float a_arg4) override
static constexpr auto RTTI
Definition BSMultiStreamInstanceTriShape.h:10
static auto Ni_RTTI
Definition BSMultiStreamInstanceTriShape.h:11
void OnVisible(NiCullingProcess &a_process) override
MULTISTREAM_TRISHAPE_RUNTIME_DATA & GetMultiStreamTrishapeRuntimeData() noexcept
Definition BSMultiStreamInstanceTriShape.h:48
void RemoveGroup(std::uint32_t a_numInstance) override
void AddInstances(std::uint32_t a_numFloatsPerInstance, std::uint16_t &a_instanceData) override
Definition BSTArray.h:377
Definition NiCloningProcess.h:10
Definition NiCullingProcess.h:34
Definition NiObject.h:37
Definition NiRTTI.h:6
Definition AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_BSMultiStreamInstanceTriShape(524606, 411246, 0x317c968)
constexpr REL::VariantID RTTI_BSMultiStreamInstanceTriShape(690705, 398560, 0x1f65e58)