CommonLibSSE NG
Loading...
Searching...
No Matches
ShaderReferenceEffect.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/B/BSTArray.h"
7
8namespace RE
9{
10 class BSEffectShaderData;
11 class BSParticleShaderObjectEmitter;
12 class BSParticleShaderProperty;
13 class NiAVObject;
14 class NiSourceTexture;
15 class TESBoundObject;
16 class TESEffectShader;
17 class BSEffectShaderData;
18
20 {
21 public:
22 inline static constexpr auto RTTI = RTTI_ShaderReferenceEffect;
24 inline static constexpr auto VTABLE = VTABLE_ShaderReferenceEffect;
25 inline static constexpr auto TYPE = TEMP_EFFECT_TYPE::kRefShader;
26
27 enum class Flag
28 {
29 kNone = 0,
30 kVisible = 1 << 0,
31 kInterfaceEffect = 1 << 1,
32 kAllowTargetRoot = 1 << 7
33 };
34
36 {
37 std::uint64_t unk00; // 00
39 };
40 static_assert(sizeof(TextureRequest) == 0x10);
41
43 {
46 };
47 static_assert(sizeof(ParticleShader) == 0x10);
48
49 ~ShaderReferenceEffect() override; // 00
50
51 // override (ReferenceEffect)
52 const NiRTTI* GetRTTI() const override; // 02
53 bool Update(float a_arg1) override; // 28
54 NiAVObject* Get3D() const override; // 29 - { return lastRootNode.get(); }
55 TEMP_EFFECT_TYPE GetType() const override; // 2C - { return 10; }
56 void SaveGame(BGSSaveGameBuffer* a_buf) override; // 2D
57 void LoadGame(BGSLoadGameBuffer* a_buf) override; // 2E
58 void FinishLoadGame(BGSLoadGameBuffer* a_buf) override; // 2F - { return ReferenceEffect::Unk_2F(); }
59 bool IsInterfaceEffect() const override; // 30 - { return (unk130 >> 1) & 1; }
60 void SetInterfaceEffect(bool a_set) override; // 31
61 bool GetStackable() const override; // 32 - { return true; }
62 bool GetStackableMatch(BSTempEffect* a_effect) const override; // 33
63 void Push() override; // 34 - { if (effectShaderData) ++pushCount; }
64 void Pop() override; // 35
65 void Init() override; // 36
66 void Suspend() override; // 37
67 void Resume() override; // 38
68 void ClearTarget() override; // 39
69 void UpdatePosition() override; // 3B
70 NiAVObject* GetAttachRoot() override; // 3C
71 void DetachImpl() override; // 3E
72
73 // members
78 BSTArray<void*> unk0A8; // 0A8 - smart ptrs
80 std::uint32_t pad0CC; // 0CC
91 float unk120; // 120
92 float unk124; // 124 - 1.0f
93 float addonModelsScaleStart; // 128 - 1.0f
94 std::uint32_t unk12C; // 12C
96 std::uint32_t pushCount; // 134
97 };
98 static_assert(sizeof(ShaderReferenceEffect) == 0x138);
99}
Definition BGSLoadGameBuffer.h:6
Definition BSEffectShaderData.h:16
Definition BSTArray.h:377
Definition BSTempEffect.h:29
Definition NiAVObject.h:50
Definition NiSmartPointer.h:9
Definition NiRTTI.h:6
Definition ReferenceEffect.h:12
Definition ShaderReferenceEffect.h:20
Flag
Definition ShaderReferenceEffect.h:28
std::uint32_t pushCount
Definition ShaderReferenceEffect.h:96
bool GetStackableMatch(BSTempEffect *a_effect) const override
static constexpr auto TYPE
Definition ShaderReferenceEffect.h:25
BSTArray< NiPointer< NiAVObject > > addonModels
Definition ShaderReferenceEffect.h:75
TESEffectShader * effectData
Definition ShaderReferenceEffect.h:88
NiAVObject * GetAttachRoot() override
NiPointer< NiAVObject > lastRootNode
Definition ShaderReferenceEffect.h:86
float unk120
Definition ShaderReferenceEffect.h:91
BSTArray< void * > unk078
Definition ShaderReferenceEffect.h:76
void UpdatePosition() override
void DetachImpl() override
BSEffectShaderData * effectShaderData
Definition ShaderReferenceEffect.h:89
NiPointer< NiAVObject > targetRoot
Definition ShaderReferenceEffect.h:90
bool Update(float a_arg1) override
static constexpr auto VTABLE
Definition ShaderReferenceEffect.h:24
stl::enumeration< Flag, std::uint32_t > flags
Definition ShaderReferenceEffect.h:95
~ShaderReferenceEffect() override
float unk124
Definition ShaderReferenceEffect.h:92
NiPointer< NiSourceTexture > particleShaderTexture
Definition ShaderReferenceEffect.h:81
NiPointer< NiSourceTexture > holesTexture
Definition ShaderReferenceEffect.h:84
void FinishLoadGame(BGSLoadGameBuffer *a_buf) override
std::uint32_t pad0CC
Definition ShaderReferenceEffect.h:80
static constexpr auto RTTI
Definition ShaderReferenceEffect.h:22
static auto Ni_RTTI
Definition ShaderReferenceEffect.h:23
BSTArray< TextureRequest > textureRequests
Definition ShaderReferenceEffect.h:74
bool IsInterfaceEffect() const override
void Resume() override
std::uint32_t unk12C
Definition ShaderReferenceEffect.h:94
NiAVObject * Get3D() const override
void SaveGame(BGSSaveGameBuffer *a_buf) override
bool GetStackable() const override
NiPointer< NiSourceTexture > paletteTexture
Definition ShaderReferenceEffect.h:85
TEMP_EFFECT_TYPE GetType() const override
void SetInterfaceEffect(bool a_set) override
const NiRTTI * GetRTTI() const override
TESBoundObject * wornObject
Definition ShaderReferenceEffect.h:87
NiPointer< NiSourceTexture > particlePaletteTexture
Definition ShaderReferenceEffect.h:82
NiPointer< NiSourceTexture > fillTexture
Definition ShaderReferenceEffect.h:83
BSTArray< void * > unk0A8
Definition ShaderReferenceEffect.h:78
float addonModelsScaleStart
Definition ShaderReferenceEffect.h:93
void Suspend() override
BSSoundHandle soundHandle
Definition ShaderReferenceEffect.h:79
BSTArray< ParticleShader > particleShaders
Definition ShaderReferenceEffect.h:77
void LoadGame(BGSLoadGameBuffer *a_buf) override
void ClearTarget() override
Definition TESBoundObject.h:24
Definition TESEffectShader.h:182
Definition PCH.h:223
Definition AbsorbEffect.h:6
TEMP_EFFECT_TYPE
Definition BSTempEffect.h:13
constexpr REL::VariantID RTTI_ShaderReferenceEffect(686554, 394391, 0x1f01168)
constexpr std::array< REL::VariantID, 1 > VTABLE_ShaderReferenceEffect
Definition Offsets_VTABLE.h:1935
constexpr REL::VariantID NiRTTI_ShaderReferenceEffect(516712, 402958, 0x2feacf8)
Definition BSSoundHandle.h:9
Definition ShaderReferenceEffect.h:43
NiPointer< BSParticleShaderObjectEmitter > particleEmitter
Definition ShaderReferenceEffect.h:45
NiPointer< BSParticleShaderProperty > particleShaderProp
Definition ShaderReferenceEffect.h:44
Definition ShaderReferenceEffect.h:36
std::uint64_t unk00
Definition ShaderReferenceEffect.h:37
NiPointer< NiSourceTexture > unk08
Definition ShaderReferenceEffect.h:38