CommonLibVR
NiMeshParticleSystem.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace RE
6 {
8  {
9  public:
10  inline static constexpr auto RTTI = RTTI_NiMeshParticleSystem;
11  inline static constexpr auto Ni_RTTI = NiRTTI_NiMeshParticleSystem;
12  inline static constexpr auto VTABLE = VTABLE_NiMeshParticleSystem;
13 
14  ~NiMeshParticleSystem() override; // 00
15 
16  // override (NiParticles)
17  const NiRTTI* GetRTTI() const override; // 02
18  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
19  void LoadBinary(NiStream& a_stream) override; // 18
20  void LinkObject(NiStream& a_stream) override; // 19 - { BSGeometry::LinkObject(a_stream); }
21  bool RegisterStreamables(NiStream& a_stream) override; // 1A - { return BSGeometry::RegisterStreamables(a_stream); }
22  void SaveBinary(NiStream& a_stream) override; // 1B
23  bool IsEqual(NiObject* a_object) override; // 1C - { return BSGeometry::IsEqual(); }
24  void SetSelectiveUpdateFlags(bool& a_selectiveUpdate, bool a_selectiveUpdateTransforms, bool& a_rigid) override; // 2B
25  void UpdateDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2C
26  void UpdateSelectedDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2D
27  void UpdateRigidDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2E
28  void UpdateWorldBound() override; // 2F
29  void UpdateWorldData(NiUpdateData* a_data) override; // 30
30  void OnVisible(NiCullingProcess& a_process) override; // 34
31 
32  // members
33  float time; // 198
34  bool updateControllers; // 19C
35  std::uint8_t pad19D; // 19D
36  std::uint16_t pad19E; // 19E
37  private:
38  KEEP_FOR_RE()
39  };
40 #ifndef SKYRIMVR
41  static_assert(sizeof(NiMeshParticleSystem) == 0x1A0);
42 #else
43  static_assert(sizeof(NiMeshParticleSystem) == 0x1E0);
44 #endif
45 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: NiCloningProcess.h:10
Definition: NiCullingProcess.h:34
Definition: NiMeshParticleSystem.h:8
void LinkObject(NiStream &a_stream) override
bool IsEqual(NiObject *a_object) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
void UpdateWorldBound() override
std::uint16_t pad19E
Definition: NiMeshParticleSystem.h:36
void SetSelectiveUpdateFlags(bool &a_selectiveUpdate, bool a_selectiveUpdateTransforms, bool &a_rigid) override
void UpdateDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
static constexpr auto Ni_RTTI
Definition: NiMeshParticleSystem.h:11
bool updateControllers
Definition: NiMeshParticleSystem.h:34
static constexpr auto RTTI
Definition: NiMeshParticleSystem.h:10
bool RegisterStreamables(NiStream &a_stream) override
float time
Definition: NiMeshParticleSystem.h:33
void UpdateRigidDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
void UpdateWorldData(NiUpdateData *a_data) override
const NiRTTI * GetRTTI() const override
void SaveBinary(NiStream &a_stream) override
void LoadBinary(NiStream &a_stream) override
std::uint8_t pad19D
Definition: NiMeshParticleSystem.h:35
static constexpr auto VTABLE
Definition: NiMeshParticleSystem.h:12
void OnVisible(NiCullingProcess &a_process) override
~NiMeshParticleSystem() override
void UpdateSelectedDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
Definition: NiObject.h:37
Definition: NiParticleSystem.h:11
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: NiAVObject.h:28
Definition: AbsorbEffect.h:6
constexpr REL::ID NiRTTI_NiMeshParticleSystem(static_cast< std::uint64_t >(524470))
constexpr std::array< REL::ID, 1 > VTABLE_NiMeshParticleSystem
Definition: Offsets_VTABLE.h:12232
constexpr REL::ID RTTI_NiMeshParticleSystem(static_cast< std::uint64_t >(690589))