CommonLibSSE (Parapets fork)
ShaderReferenceEffect.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSSoundHandle.h"
4 #include "RE/B/BSTArray.h"
5 #include "RE/N/NiSmartPointer.h"
6 #include "RE/R/ReferenceEffect.h"
7 
8 namespace 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
const NiRTTI * GetRTTI() const override
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
NiAVObject * Get3D() const override
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
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
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