CommonLibVR
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  private:
19  KEEP_FOR_RE()
20  };
21  static_assert(sizeof(NiParticleInfo) == 0x20);
22 
23  class NiPSysData : public NiParticlesData
24  {
25  public:
26  inline static constexpr auto RTTI = RTTI_NiPSysData;
27  inline static constexpr auto Ni_RTTI = NiRTTI_NiPSysData;
28  inline static constexpr auto VTABLE = VTABLE_NiPSysData;
29 
30  ~NiPSysData() override; // 00
31 
32  // override (NiParticlesData)
33  const NiRTTI* GetRTTI() const override; // 02
34  void LoadBinary(NiStream& a_stream) override; // 18
35  void LinkObject(NiStream& a_stream) override; // 19
36  bool RegisterStreamables(NiStream& a_stream) override; // 1A
37  void SaveBinary(NiStream& a_stream) override; // 1B
38  bool IsEqual(NiObject* a_object) override; // 1C - { return false; }
39  void RemoveParticle(std::uint16_t a_particleCount) override; // 28
40 
41  // add
42  virtual std::uint16_t AddParticle(); // 2A
43  virtual void ResolveAddedParticles(); // 2B
44 
45  // members
47  float* rotationSpeeds; // 98
48  std::uint16_t addedParticleCount; // A0
49  std::uint16_t addedParticlesBase; // A0
50  std::uint32_t padA4; // A4
51  private:
52  KEEP_FOR_RE()
53  };
54  static_assert(sizeof(NiPSysData) == 0xA8);
55 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: NiObject.h:37
Definition: NiPSysData.h:24
bool IsEqual(NiObject *a_object) override
NiParticleInfo * particleInfo
Definition: NiPSysData.h:46
static constexpr auto VTABLE
Definition: NiPSysData.h:28
void LoadBinary(NiStream &a_stream) override
void LinkObject(NiStream &a_stream) override
static constexpr auto RTTI
Definition: NiPSysData.h:26
std::uint16_t addedParticlesBase
Definition: NiPSysData.h:49
const NiRTTI * GetRTTI() const override
std::uint16_t addedParticleCount
Definition: NiPSysData.h:48
static constexpr auto Ni_RTTI
Definition: NiPSysData.h:27
virtual void ResolveAddedParticles()
~NiPSysData() override
virtual std::uint16_t AddParticle()
void RemoveParticle(std::uint16_t a_particleCount) override
float * rotationSpeeds
Definition: NiPSysData.h:47
std::uint32_t padA4
Definition: NiPSysData.h:50
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))