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