CommonLibVR
BSMasterParticleSystem.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiNode.h"
4 
5 namespace RE
6 {
7  class NiParticles;
8 
10  {
11  public:
12  inline static constexpr auto RTTI = RTTI_BSMasterParticleSystem;
13  inline static constexpr auto Ni_RTTI = NiRTTI_BSMasterParticleSystem;
14  inline static constexpr auto VTABLE = VTABLE_BSMasterParticleSystem;
15 
16  ~BSMasterParticleSystem() override; // 00
17 
18  // override (NiNode)
19  const NiRTTI* GetRTTI() const override; // 02
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  void PostLinkObject(NiStream& a_stream) override; // 1E
25  bool IsEqual(NiObject* a_object) override; // 1C
26  void UpdateDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2C
27  void UpdateSelectedDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2D
28  void UpdateRigidDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2E
29 
30  // members
33  std::int32_t index; // 158
34  std::uint32_t unk15C; // 15C
35  std::uint16_t unk160; // 160
36  std::uint16_t maxEmitterObj; // 162
37  std::uint16_t maxParticlesPerFrame; // 164
38  bool destroyWhenNotInUse; // 166
39  std::uint8_t pad167; // 167
40  private:
41  KEEP_FOR_RE()
42  };
43 #ifndef SKYRIMVR
44  static_assert(sizeof(BSMasterParticleSystem) == 0x168);
45 #else
46  static_assert(sizeof(BSMasterParticleSystem) == 0x190);
47 #endif
48 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSMasterParticleSystem.h:10
void LinkObject(NiStream &a_stream) override
void SaveBinary(NiStream &a_stream) override
void UpdateDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
std::uint32_t unk15C
Definition: BSMasterParticleSystem.h:34
void UpdateSelectedDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
void UpdateRigidDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
BSTArray< NiPointer< NiAVObject > > emitterObjs
Definition: BSMasterParticleSystem.h:31
static constexpr auto Ni_RTTI
Definition: BSMasterParticleSystem.h:13
~BSMasterParticleSystem() override
std::uint16_t maxParticlesPerFrame
Definition: BSMasterParticleSystem.h:37
static constexpr auto RTTI
Definition: BSMasterParticleSystem.h:12
std::uint16_t maxEmitterObj
Definition: BSMasterParticleSystem.h:36
void LoadBinary(NiStream &a_stream) override
const NiRTTI * GetRTTI() const override
std::uint16_t unk160
Definition: BSMasterParticleSystem.h:35
BSTArray< NiParticles * > particles
Definition: BSMasterParticleSystem.h:32
bool RegisterStreamables(NiStream &a_stream) override
bool destroyWhenNotInUse
Definition: BSMasterParticleSystem.h:38
bool IsEqual(NiObject *a_object) override
std::uint8_t pad167
Definition: BSMasterParticleSystem.h:39
void PostLinkObject(NiStream &a_stream) override
std::int32_t index
Definition: BSMasterParticleSystem.h:33
static constexpr auto VTABLE
Definition: BSMasterParticleSystem.h:14
Definition: BSTArray.h:378
Definition: NiNode.h:12
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: NiAVObject.h:28
Definition: AbsorbEffect.h:6
constexpr REL::ID NiRTTI_BSMasterParticleSystem(static_cast< std::uint64_t >(524698))
constexpr std::array< REL::ID, 1 > VTABLE_BSMasterParticleSystem
Definition: Offsets_VTABLE.h:9241
constexpr REL::ID RTTI_BSMasterParticleSystem(static_cast< std::uint64_t >(690732))