CommonLibSSE (powerof3)
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  inline static constexpr auto VTABLE = VTABLE_NiPSysData;
27 
28  ~NiPSysData() override; // 00
29 
30  // override (NiParticlesData)
31  const NiRTTI* GetRTTI() const override; // 02
32  void LoadBinary(NiStream& a_stream) override; // 18
33  void LinkObject(NiStream& a_stream) override; // 19
34  bool RegisterStreamables(NiStream& a_stream) override; // 1A
35  void SaveBinary(NiStream& a_stream) override; // 1B
36  bool IsEqual(NiObject* a_object) override; // 1C - { return false; }
37  void RemoveParticle(std::uint16_t a_particleCount) override; // 28
38 
39  // add
40  virtual std::uint16_t AddParticle(); // 2A
41  virtual void ResolveAddedParticles(); // 2B
42 
43  // members
45  float* rotationSpeeds; // 98
46  std::uint16_t addedParticleCount; // A0
47  std::uint16_t addedParticlesBase; // A0
48  std::uint32_t padA4; // A4
49  };
50  static_assert(sizeof(NiPSysData) == 0xA8);
51 }
Definition: NiObject.h:37
Definition: NiPSysData.h:22
bool IsEqual(NiObject *a_object) override
NiParticleInfo * particleInfo
Definition: NiPSysData.h:44
static constexpr auto VTABLE
Definition: NiPSysData.h:26
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:47
const NiRTTI * GetRTTI() const override
std::uint16_t addedParticleCount
Definition: NiPSysData.h:46
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:45
std::uint32_t padA4
Definition: NiPSysData.h:48
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::ID NiRTTI_NiPSysData(static_cast< std::uint64_t >(524492))
constexpr std::array< REL::ID, 1 > VTABLE_NiPSysData
Definition: Offsets_VTABLE.h:12253
constexpr REL::ID RTTI_NiPSysData(static_cast< std::uint64_t >(690596))