CommonLibSSE (Parapets fork)
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 NiAVObject;
12 class TESBoundObject;
13 class TESEffectShader;
14
16 {
17 public:
18 inline static constexpr auto RTTI = RTTI_ShaderReferenceEffect;
19 inline static constexpr auto Ni_RTTI = NiRTTI_ShaderReferenceEffect;
20
21 struct Data048
22 {
23 std::uint64_t unk00; // 00
24 std::uint64_t unk08; // 08
25 };
26 static_assert(sizeof(Data048) == 0x10);
27
28 struct Data090
29 {
30 std::uint64_t unk00; // 00 - smart ptr
31 std::uint64_t unk08; // 08 - smart ptr
32 };
33 static_assert(sizeof(Data090) == 0x10);
34
35 ~ShaderReferenceEffect() override; // 00
36
37 // override (ReferenceEffect)
38 const NiRTTI* GetRTTI() const override; // 02
39 bool Update(float a_arg1) override; // 28
40 NiAVObject* Get3D() const override; // 29 - { return lastRootNode.get(); }
41 TEMP_EFFECT_TYPE GetType() const override; // 2C - { return 10; }
42 void SaveGame(BGSSaveGameBuffer* a_buf) override; // 2D
43 void LoadGame(BGSLoadGameBuffer* a_buf) override; // 2E
44 void FinishLoadGame(BGSLoadGameBuffer* a_buf) override; // 2F - { return ReferenceEffect::Unk_2F(); }
45 bool IsInterfaceEffect() const override; // 30 - { return (unk130 >> 1) & 1; }
46 void SetInterfaceEffect(bool a_set) override; // 31
47 bool GetStackable() const override; // 32 - { return true; }
48 bool GetStackableMatch(BSTempEffect* a_effect) const override; // 33
49 void Push() override; // 34 - { if (effectShaderData) ++pushCount; }
50 void Pop() override; // 35
51 void Unk_36(void) override; // 36
52 void Unk_37(void) override; // 37
53 void Unk_38(void) override; // 38
54 void Unk_39(void) override; // 39
55 void UpdatePosition() override; // 3B
56 void Unk_3C(void) override; // 3C
57 void Unk_3E(void) override; // 3E
58
59 // members
61 BSTArray<void*> unk060; // 060 - smart ptrs
64 BSTArray<void*> unk0A8; // 0A8 - smart ptrs
66 std::uint32_t pad0CC; // 0CC
67 void* unk0D0; // 0D0 - smart ptr
68 void* unk0D8; // 0D8 - smart ptr
69 void* unk0E0; // 0E0 - smart ptr
70 void* unk0E8; // 0E8 - smart ptr
71 void* unk0F0; // 0F0 - smart ptr
76 void* unk118; // 118 - smart ptr
77 std::uint32_t unk120; // 120
78 std::uint32_t unk124; // 124
79 std::uint32_t unk128; // 128
80 std::uint32_t unk12C; // 12C
81 std::uint32_t flags; // 130
82 std::uint32_t pushCount; // 134
83 };
84 static_assert(sizeof(ShaderReferenceEffect) == 0x138);
85}
Definition: BSEffectShaderData.h:16
Definition: BSTArray.h:377
Definition: BSTempEffect.h:29
Definition: NiAVObject.h:45
Definition: NiSmartPointer.h:9
Definition: NiRTTI.h:6
Definition: ReferenceEffect.h:11
Definition: ShaderReferenceEffect.h:16
std::uint32_t pushCount
Definition: ShaderReferenceEffect.h:82
void * unk118
Definition: ShaderReferenceEffect.h:76
bool GetStackableMatch(BSTempEffect *a_effect) const override
TESEffectShader * effectData
Definition: ShaderReferenceEffect.h:74
void * unk0E0
Definition: ShaderReferenceEffect.h:69
NiPointer< NiAVObject > lastRootNode
Definition: ShaderReferenceEffect.h:72
void * unk0D0
Definition: ShaderReferenceEffect.h:67
std::uint32_t flags
Definition: ShaderReferenceEffect.h:81
BSTArray< void * > unk078
Definition: ShaderReferenceEffect.h:62
void UpdatePosition() override
BSEffectShaderData * effectShaderData
Definition: ShaderReferenceEffect.h:75
bool Update(float a_arg1) override
void * unk0D8
Definition: ShaderReferenceEffect.h:68
~ShaderReferenceEffect() override
void * unk0E8
Definition: ShaderReferenceEffect.h:70
void Unk_37(void) override
BSTArray< void * > unk060
Definition: ShaderReferenceEffect.h:61
BSTArray< Data090 > unk090
Definition: ShaderReferenceEffect.h:63
void FinishLoadGame(BGSLoadGameBuffer *a_buf) override
void Unk_3E(void) override
std::uint32_t pad0CC
Definition: ShaderReferenceEffect.h:66
std::uint32_t unk128
Definition: ShaderReferenceEffect.h:79
std::uint32_t unk124
Definition: ShaderReferenceEffect.h:78
std::uint32_t unk120
Definition: ShaderReferenceEffect.h:77
static constexpr auto RTTI
Definition: ShaderReferenceEffect.h:18
bool IsInterfaceEffect() const override
std::uint32_t unk12C
Definition: ShaderReferenceEffect.h:80
NiAVObject * Get3D() const override
void SaveGame(BGSSaveGameBuffer *a_buf) override
void Unk_36(void) override
void Unk_39(void) override
bool GetStackable() const override
TEMP_EFFECT_TYPE GetType() const override
void SetInterfaceEffect(bool a_set) override
const NiRTTI * GetRTTI() const override
void * unk0F0
Definition: ShaderReferenceEffect.h:71
void Unk_38(void) override
TESBoundObject * wornObject
Definition: ShaderReferenceEffect.h:73
BSTArray< void * > unk0A8
Definition: ShaderReferenceEffect.h:64
BSTArray< Data048 > unk048
Definition: ShaderReferenceEffect.h:60
BSSoundHandle soundHandle
Definition: ShaderReferenceEffect.h:65
void LoadGame(BGSLoadGameBuffer *a_buf) override
static constexpr auto Ni_RTTI
Definition: ShaderReferenceEffect.h:19
void Unk_3C(void) override
Definition: TESBoundObject.h:24
Definition: TESEffectShader.h:171
Definition: AbsorbEffect.h:6
TEMP_EFFECT_TYPE
Definition: BSTempEffect.h:13
constexpr REL::ID NiRTTI_ShaderReferenceEffect
Definition: Offsets_NiRTTI.h:323
constexpr REL::ID RTTI_ShaderReferenceEffect
Definition: Offsets_RTTI.h:5810
Definition: BSSoundHandle.h:10
Definition: ShaderReferenceEffect.h:22
std::uint64_t unk00
Definition: ShaderReferenceEffect.h:23
std::uint64_t unk08
Definition: ShaderReferenceEffect.h:24
Definition: ShaderReferenceEffect.h:29
std::uint64_t unk08
Definition: ShaderReferenceEffect.h:31
std::uint64_t unk00
Definition: ShaderReferenceEffect.h:30