CommonLibSSE NG
Loading...
Searching...
No Matches
NiPSysModifier.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/N/NiObject.h"
5
6namespace RE
7{
8 class NiColorA;
9 class NiParticleSystem;
10 class NiPoint3;
11 class NiPSysData;
12
13 class NiPSysModifier : public NiObject
14 {
15 public:
16 inline static constexpr auto RTTI = RTTI_NiPSysModifier;
17 inline static constexpr auto Ni_RTTI = NiRTTI_NiPSysModifier;
18
19 enum class ORDER
20 {
22 kBSLOD = 1,
23 kEmitter = 1000,
24 kSpawn = 2000,
25 kGeneral = 3000,
26 kForce = 4000,
27 kCollider = 5000,
28 kPosUpdate = 6000,
29 kPostPosUpdate = 6500,
30 kBoundUpdate = 7000,
31 kBSStripUpdate = 8000
32 };
33
34 ~NiPSysModifier() override; // 00
35
36 // override (NiObject)
37 const NiRTTI* GetRTTI() const override; // 02
38 void LoadBinary(NiStream& a_stream) override; // 18
39 void LinkObject(NiStream& a_stream) override; // 19
40 bool RegisterStreamables(NiStream& a_stream) override; // 1A
41 void SaveBinary(NiStream& a_stream) override; // 1B
42 bool IsEqual(NiObject* a_object) override; // 1C - { return false; }
43 void ProcessClone(NiCloningProcess& a_cloning) override; // 1D
44
45 // add
46 virtual bool Update(float a_time, NiPSysData* a_particleData, NiPoint3* a_position, NiPoint3* a_radii, NiColorA* a_rotation) = 0; // 25
47 virtual void Initialize(NiPSysData* a_particleData, std::uint16_t, NiPoint3*); // 26
48 virtual void HandleReset(); // 27
49 virtual void SetActive(bool a_active); // 28
50 virtual void SetSystemPointer(NiParticleSystem* a_target); // 29
51
52 // members
55 std::uint32_t pad1C; // 1C
57 bool active; // 28
58 std::uint8_t pad29; // 29
59 std::uint16_t pad2A; // 29
60 std::uint32_t pad2C; // 29
61 };
62 static_assert(sizeof(NiPSysModifier) == 0x30);
63}
Definition NiCloningProcess.h:10
Definition NiColor.h:276
Definition NiObject.h:37
Definition NiPSysData.h:22
Definition NiPSysModifier.h:14
virtual void SetActive(bool a_active)
virtual void HandleReset()
ORDER
Definition NiPSysModifier.h:20
BSFixedString name
Definition NiPSysModifier.h:53
static constexpr auto RTTI
Definition NiPSysModifier.h:16
bool active
Definition NiPSysModifier.h:57
static constexpr auto Ni_RTTI
Definition NiPSysModifier.h:17
virtual void SetSystemPointer(NiParticleSystem *a_target)
const NiRTTI * GetRTTI() const override
virtual bool Update(float a_time, NiPSysData *a_particleData, NiPoint3 *a_position, NiPoint3 *a_radii, NiColorA *a_rotation)=0
~NiPSysModifier() override
virtual void Initialize(NiPSysData *a_particleData, std::uint16_t, NiPoint3 *)
std::uint32_t pad1C
Definition NiPSysModifier.h:55
void LinkObject(NiStream &a_stream) override
std::uint16_t pad2A
Definition NiPSysModifier.h:59
std::uint32_t pad2C
Definition NiPSysModifier.h:60
bool RegisterStreamables(NiStream &a_stream) override
void SaveBinary(NiStream &a_stream) override
stl::enumeration< ORDER, std::uint32_t > order
Definition NiPSysModifier.h:54
void ProcessClone(NiCloningProcess &a_cloning) override
std::uint8_t pad29
Definition NiPSysModifier.h:58
NiParticleSystem * target
Definition NiPSysModifier.h:56
void LoadBinary(NiStream &a_stream) override
bool IsEqual(NiObject *a_object) override
Definition NiParticleSystem.h:11
Definition NiPoint3.h:6
Definition NiRTTI.h:6
Definition NiStream.h:27
Definition PCH.h:223
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_NiPSysModifier(690586, 398441, 0x1f63f60)
constexpr REL::VariantID NiRTTI_NiPSysModifier(524478, 411059, 0x316d8c8)