CommonLibSSE NG
Loading...
Searching...
No Matches
BSMultiIndexTriShape.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSTriShape.h"
4#include "RE/N/NiColor.h"
6
7namespace RE
8{
9 namespace BSGraphics
10 {
11 class IndexBuffer;
12 }
13
14 class BSShaderProperty;
15
17 {
18 public:
19 inline static constexpr auto RTTI = RTTI_BSMultiIndexTriShape;
21
23 {
24#define RUNTIME_DATA_CONTENT \
25 BSGraphics::IndexBuffer* altIndexBuffer; /* 00 */ \
26 std::uint32_t altPrimCount; /* 08 */ \
27 DirectX::XMFLOAT4X4 materialProjection; /* 0C */ \
28 std::uint32_t pad1AC; /* 4C */ \
29 NiPointer<BSShaderProperty> additionalShaderProperty; /* 50 */ \
30 std::uint8_t useAdditionalTriList; /* 58 */ \
31 std::uint8_t pad1B9; /* 59 */ \
32 std::uint16_t pad1BA; /* 5A */ \
33 NiColorA materialParams; /* 5C */ \
34 float materialScale; /* 6C */ \
35 float normalDampener; /* 70 */ \
36 std::uint32_t unk1D4; /* 74 */
37
39 };
40 static_assert(sizeof(MULTI_INDEX_TRISHAPE_RUNTIME_DATA) == 0x78);
41
42 ~BSMultiIndexTriShape() override; // 00
43
44 // override (BSGeometry)
45 const NiRTTI* GetRTTI() const override; // 02
46 NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
47#if !defined(ENABLE_SKYRIM_VR) || (!defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_VR))
48 // Compatibility between VR and non-VR breaks beyond this point.
49 BSMultiIndexTriShape* AsMultiIndexTriShape() override; // 35 - { return this; }
50#endif
51
53 {
54 return REL::RelocateMember<MULTI_INDEX_TRISHAPE_RUNTIME_DATA>(this, 0x160, 0x1A8);
55 }
56
57 [[nodiscard]] inline const MULTI_INDEX_TRISHAPE_RUNTIME_DATA& GetMultiIndexTrishapeRuntimeData() const noexcept
58 {
59 return REL::RelocateMember<MULTI_INDEX_TRISHAPE_RUNTIME_DATA>(this, 0x160, 0x1A8);
60 }
61
62 // members
63#ifndef SKYRIM_CROSS_VR
64 RUNTIME_DATA_CONTENT // 160, 1A8
65#endif
66 };
67#ifndef ENABLE_SKYRIM_VR
68 static_assert(sizeof(BSMultiIndexTriShape) == 0x1D8);
69#elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
70 static_assert(sizeof(BSMultiIndexTriShape) == 0x220);
71#endif
72}
73#undef RUNTIME_DATA_CONTENT
RUNTIME_DATA_CONTENT
Definition BSGeometry.h:141
Definition BSMultiIndexTriShape.h:17
MULTI_INDEX_TRISHAPE_RUNTIME_DATA & GetMultiIndexTrishapeRuntimeData() noexcept
Definition BSMultiIndexTriShape.h:52
const NiRTTI * GetRTTI() const override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
const MULTI_INDEX_TRISHAPE_RUNTIME_DATA & GetMultiIndexTrishapeRuntimeData() const noexcept
Definition BSMultiIndexTriShape.h:57
BSMultiIndexTriShape * AsMultiIndexTriShape() override
static constexpr auto RTTI
Definition BSMultiIndexTriShape.h:19
~BSMultiIndexTriShape() override
static auto Ni_RTTI
Definition BSMultiIndexTriShape.h:20
Definition BSShaderProperty.h:17
Definition BSTriShape.h:8
Definition NiCloningProcess.h:10
Definition NiObject.h:37
Definition NiRTTI.h:6
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BSMultiIndexTriShape(692088, 400132, 0x1f80ad8)
constexpr REL::VariantID NiRTTI_BSMultiIndexTriShape(528364, 415310, 0x36f1aa0)