CommonLibSSE NG
NiParticlesData.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiBound.h"
4 #include "RE/N/NiObject.h"
5 
6 namespace RE
7 {
8  class NiParticlesData : public NiObject
9  {
10  public:
11  inline static constexpr auto RTTI = RTTI_NiParticlesData;
12  inline static constexpr auto Ni_RTTI = NiRTTI_NiParticlesData;
13 
14  ~NiParticlesData() override; // 00
15 
16  // override (NiObject)
17  const NiRTTI* GetRTTI() const override; // 02
18  void LoadBinary(NiStream& a_stream) override; // 18
19  void LinkObject(NiStream& a_stream) override; // 19
20  bool RegisterStreamables(NiStream& a_stream) override; // 1A
21  void SaveBinary(NiStream& a_stream) override; // 1B
22  bool IsEqual(NiObject* a_object) override; // 1C - { return false; }
23 
24  // add
25  virtual void SetActiveVertexCount(std::uint16_t a_vertexCount); // 25
26  virtual std::uint16_t GetActiveVertexCount(); // 26
27  virtual void RemoveParticle(std::uint16_t a_particleCount); // 28
28  virtual void CalculateNormals(); // 29 - { return; }
29 
30  // members
31  bool hasRotations; // 10
32  std::uint8_t unk11; // 11
33  std::uint16_t maxNumVertices; // 12
34  NiBound bound; // 14
35  std::uint32_t pad24; // 24
38  NiColorA* color; // 38
39  float* radii; // 40
40  float* sizes; // 48
41  float* rotationAngles; // 50
44  std::uint32_t subTextureOffsetsCount; // 68 - max 256
45  float aspectRatio; // 6C
46  float speedToAspectAspect2; // 70
47  float speedToAspectAspect1; // 74
48  float speedToAspectSpeed2; // 78
49  std::uint16_t numVertices; // 7C
50  std::uint16_t pad7E; // 7E
51  std::uint8_t* textureIndices; // 80
52  std::uint8_t unk88; // 88 - aspect flags?
53  std::uint8_t unk89; // 89
54  std::uint16_t pad8A; // 8A
55  std::uint32_t pad8C; // 8C
56  };
57  static_assert(sizeof(NiParticlesData) == 0x90);
58 }
Definition: NiBound.h:8
Definition: NiColor.h:276
Definition: NiObject.h:37
Definition: NiParticlesData.h:9
std::uint8_t unk88
Definition: NiParticlesData.h:52
std::uint8_t * textureIndices
Definition: NiParticlesData.h:51
float aspectRatio
Definition: NiParticlesData.h:45
float * radii
Definition: NiParticlesData.h:39
float speedToAspectAspect2
Definition: NiParticlesData.h:46
std::uint16_t numVertices
Definition: NiParticlesData.h:49
virtual void RemoveParticle(std::uint16_t a_particleCount)
float speedToAspectAspect1
Definition: NiParticlesData.h:47
NiQuaternion * rotations
Definition: NiParticlesData.h:36
NiPoint3 * rotationAxes
Definition: NiParticlesData.h:42
std::uint8_t unk11
Definition: NiParticlesData.h:32
std::uint32_t pad24
Definition: NiParticlesData.h:35
virtual std::uint16_t GetActiveVertexCount()
virtual void CalculateNormals()
void LoadBinary(NiStream &a_stream) override
NiColorA * subtextureOffsets
Definition: NiParticlesData.h:43
std::uint16_t maxNumVertices
Definition: NiParticlesData.h:33
std::uint32_t subTextureOffsetsCount
Definition: NiParticlesData.h:44
void LinkObject(NiStream &a_stream) override
virtual void SetActiveVertexCount(std::uint16_t a_vertexCount)
float speedToAspectSpeed2
Definition: NiParticlesData.h:48
bool IsEqual(NiObject *a_object) override
static constexpr auto RTTI
Definition: NiParticlesData.h:11
NiPoint3 * positions
Definition: NiParticlesData.h:37
std::uint32_t pad8C
Definition: NiParticlesData.h:55
float * sizes
Definition: NiParticlesData.h:40
~NiParticlesData() override
NiColorA * color
Definition: NiParticlesData.h:38
float * rotationAngles
Definition: NiParticlesData.h:41
static constexpr auto Ni_RTTI
Definition: NiParticlesData.h:12
void SaveBinary(NiStream &a_stream) override
std::uint16_t pad8A
Definition: NiParticlesData.h:54
std::uint8_t unk89
Definition: NiParticlesData.h:53
NiBound bound
Definition: NiParticlesData.h:34
bool RegisterStreamables(NiStream &a_stream) override
std::uint16_t pad7E
Definition: NiParticlesData.h:50
const NiRTTI * GetRTTI() const override
bool hasRotations
Definition: NiParticlesData.h:31
Definition: NiPoint3.h:6
Definition: NiQuaternion.h:6
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_NiParticlesData(690461, 398316, 0x1f625a8)
constexpr REL::VariantID NiRTTI_NiParticlesData(524004, 410584, 0x316c238)