CommonLibSSE NG
Loading...
Searching...
No Matches
BSMasterParticleSystem.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/N/NiNode.h"
4
5namespace 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
15 ~BSMasterParticleSystem() override; // 00
16
17 // override (NiNode)
18 const NiRTTI* GetRTTI() const override; // 02
19 void LoadBinary(NiStream& a_stream) override; // 18
20 void LinkObject(NiStream& a_stream) override; // 19
21 bool RegisterStreamables(NiStream& a_stream) override; // 1A
22 void SaveBinary(NiStream& a_stream) override; // 1B
23 void PostLinkObject(NiStream& a_stream) override; // 1E
24 bool IsEqual(NiObject* a_object) override; // 1C
25#ifndef SKYRIM_CROSS_VR
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#endif
30
32 {
33#define RUNTIME_DATA_CONTENT \
34 BSTArray<NiPointer<NiAVObject>> emitterObjs; /* 128 */ \
35 BSTArray<NiParticles*> particles; /* 140 */ \
36 std::int32_t index; /* 158 */ \
37 std::uint32_t unk15C; /* 15C */ \
38 std::uint16_t unk160; /* 160 */ \
39 std::uint16_t maxEmitterObj; /* 162 */ \
40 std::uint16_t maxParticlesPerFrame; /* 164 */ \
41 bool destroyWhenNotInUse; /* 166 */ \
42 std::uint8_t pad167; /* 167 */
43
45 };
46
48 {
49 return REL::RelocateMember<MASTER_PARTICLE_SYSTEM_RUNTIME_DATA>(this, 0x128, 0x150);
50 }
51
53 {
54 return REL::RelocateMember<MASTER_PARTICLE_SYSTEM_RUNTIME_DATA>(this, 0x128, 0x150);
55 }
56
57 // members
58#ifndef SKYRIM_CROSS_VR
59 RUNTIME_DATA_CONTENT // 128, 150
60#endif
61 };
62}
63#undef RUNTIME_DATA_CONTENT
#define RUNTIME_DATA_CONTENT
Definition Actor.h:633
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
void UpdateSelectedDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
void UpdateRigidDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
static constexpr auto Ni_RTTI
Definition BSMasterParticleSystem.h:13
~BSMasterParticleSystem() override
static constexpr auto RTTI
Definition BSMasterParticleSystem.h:12
const MASTER_PARTICLE_SYSTEM_RUNTIME_DATA & GetMasterParticleSystemRuntimeData() const noexcept
Definition BSMasterParticleSystem.h:52
void LoadBinary(NiStream &a_stream) override
MASTER_PARTICLE_SYSTEM_RUNTIME_DATA & GetMasterParticleSystemRuntimeData() noexcept
Definition BSMasterParticleSystem.h:47
bool RegisterStreamables(NiStream &a_stream) override
bool IsEqual(NiObject *a_object) override
void PostLinkObject(NiStream &a_stream) override
const NiRTTI * GetRTTI() const override
Definition NiNode.h:12
Definition NiObject.h:37
Definition NiRTTI.h:6
Definition NiStream.h:27
Definition NiAVObject.h:25
Definition AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_BSMasterParticleSystem(524698, 411318, 0x317e618)
constexpr REL::VariantID RTTI_BSMasterParticleSystem(690732, 398587, 0x1f66450)