CommonLibSSE NG
NiPSysData.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiParticlesData.h"
4 
5 namespace RE
6 {
8  {
9  public:
10  // members
12  float age; // 0C
13  float lifespan; // 10
14  float lastUpdate; // 14
15  std::uint16_t unk18; // 18
16  std::uint16_t unk1A; // 1A
17  std::uint32_t pad1C; // 1C
18  };
19  static_assert(sizeof(NiParticleInfo) == 0x20);
20 
21  class NiPSysData : public NiParticlesData
22  {
23  public:
24  inline static constexpr auto RTTI = RTTI_NiPSysData;
25  inline static constexpr auto Ni_RTTI = NiRTTI_NiPSysData;
26 
27  ~NiPSysData() override; // 00
28 
29  // override (NiParticlesData)
30  const NiRTTI* GetRTTI() const override; // 02
31  void LoadBinary(NiStream& a_stream) override; // 18
32  void LinkObject(NiStream& a_stream) override; // 19
33  bool RegisterStreamables(NiStream& a_stream) override; // 1A
34  void SaveBinary(NiStream& a_stream) override; // 1B
35  bool IsEqual(NiObject* a_object) override; // 1C - { return false; }
36  void RemoveParticle(std::uint16_t a_particleCount) override; // 28
37 
38  // add
39  virtual std::uint16_t AddParticle(); // 2A
40  virtual void ResolveAddedParticles(); // 2B
41 
42  // members
44  float* rotationSpeeds; // 98
45  std::uint16_t addedParticleCount; // A0
46  std::uint16_t addedParticlesBase; // A0
47  std::uint32_t padA4; // A4
48  };
49  static_assert(sizeof(NiPSysData) == 0xA8);
50 }
Definition: NiObject.h:37
Definition: NiPSysData.h:22
bool IsEqual(NiObject *a_object) override
NiParticleInfo * particleInfo
Definition: NiPSysData.h:43
void LoadBinary(NiStream &a_stream) override
void LinkObject(NiStream &a_stream) override
static constexpr auto RTTI
Definition: NiPSysData.h:24
std::uint16_t addedParticlesBase
Definition: NiPSysData.h:46
const NiRTTI * GetRTTI() const override
std::uint16_t addedParticleCount
Definition: NiPSysData.h:45
static constexpr auto Ni_RTTI
Definition: NiPSysData.h:25
virtual void ResolveAddedParticles()
~NiPSysData() override
virtual std::uint16_t AddParticle()
void RemoveParticle(std::uint16_t a_particleCount) override
float * rotationSpeeds
Definition: NiPSysData.h:44
std::uint32_t padA4
Definition: NiPSysData.h:47
bool RegisterStreamables(NiStream &a_stream) override
void SaveBinary(NiStream &a_stream) override
Definition: NiPSysData.h:8
float lifespan
Definition: NiPSysData.h:13
std::uint16_t unk18
Definition: NiPSysData.h:15
float lastUpdate
Definition: NiPSysData.h:14
float age
Definition: NiPSysData.h:12
std::uint16_t unk1A
Definition: NiPSysData.h:16
std::uint32_t pad1C
Definition: NiPSysData.h:17
NiPoint3 velocity
Definition: NiPSysData.h:11
Definition: NiParticlesData.h:9
Definition: NiPoint3.h:6
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_NiPSysData(524492, 411073, 0x316d9a8)
constexpr REL::VariantID RTTI_NiPSysData(690596, 398451, 0x1f64120)