CommonLibSSE NG
BSValueNode.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSNiNode.h"
4 
5 namespace RE
6 {
7  class BSMasterParticleSystem;
8 
9  class BSValueNode : public BSNiNode
10  {
11  public:
12  inline static constexpr auto RTTI = RTTI_BSValueNode;
13  inline static constexpr auto Ni_RTTI = NiRTTI_BSValueNode;
14 
15  ~BSValueNode() override; // 00
16 
17  // override (BSNiNode)
18  const NiRTTI* GetRTTI() const override; // 02
19  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
20  void LoadBinary(NiStream& a_stream) override; // 18
21  void LinkObject(NiStream& a_stream) override; // 19
22  bool RegisterStreamables(NiStream& a_stream) override; // 1A
23  void SaveBinary(NiStream& a_stream) override; // 1B
24  bool IsEqual(NiObject* a_object) override; // 1C
25 #ifndef SKYRIM_CROSS_VR
26  void UpdateWorldData(NiUpdateData* a_data) override; // 30
27 #endif
28 
29  // add
30  virtual bool ParseNameForValue(); // 35
31 
33  {
34 #define RUNTIME_DATA_CONTENT \
35  std::uint8_t flags; /* 128 */ \
36  std::uint32_t value; /* 12C */ \
37  NiPointer<BSMasterParticleSystem> associatedObject; /* 130 */
38  };
39 
40  [[nodiscard]] inline VALUE_NODE_RUNTIME_DATA& GetValueNodeRuntimeData() noexcept
41  {
42  return REL::RelocateMember<VALUE_NODE_RUNTIME_DATA>(this, 0x128, 0x150);
43  }
44 
45  [[nodiscard]] inline const VALUE_NODE_RUNTIME_DATA& GetValueNodeRuntimeData() const noexcept
46  {
47  return REL::RelocateMember<VALUE_NODE_RUNTIME_DATA>(this, 0x128, 0x150);
48  }
49 
50  // members
51 #ifndef SKYRIM_CROSS_VR
52  RUNTIME_DATA_CONTENT // 128, 150
53 #endif
54  };
55 }
56 #undef RUNTIME_DATA_CONTENT
#define RUNTIME_DATA_CONTENT
Definition: BSValueNode.h:34
Definition: BSNiNode.h:8
Definition: BSValueNode.h:10
void UpdateWorldData(NiUpdateData *a_data) override
void LoadBinary(NiStream &a_stream) override
void SaveBinary(NiStream &a_stream) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
const VALUE_NODE_RUNTIME_DATA & GetValueNodeRuntimeData() const noexcept
Definition: BSValueNode.h:45
virtual bool ParseNameForValue()
bool IsEqual(NiObject *a_object) override
VALUE_NODE_RUNTIME_DATA & GetValueNodeRuntimeData() noexcept
Definition: BSValueNode.h:40
void LinkObject(NiStream &a_stream) override
static constexpr auto Ni_RTTI
Definition: BSValueNode.h:13
const NiRTTI * GetRTTI() const override
~BSValueNode() override
bool RegisterStreamables(NiStream &a_stream) override
static constexpr auto RTTI
Definition: BSValueNode.h:12
Definition: NiCloningProcess.h:10
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: NiAVObject.h:25
Definition: AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_BSValueNode(524560, 411158, 0x3176000)
constexpr REL::VariantID RTTI_BSValueNode(690677, 398532, 0x1f65570)
Definition: BSValueNode.h:33