CommonLibSSE NG
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 #ifndef SKYRIM_CROSS_VR
25  void SetSelectiveUpdateFlags(bool& a_selectiveUpdate, bool a_selectiveUpdateTransforms, bool& a_rigid) override; // 2B
26  void UpdateDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2C
27  void UpdateSelectedDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2D
28  void UpdateRigidDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2E
29  void UpdateWorldBound() override; // 2F
30  void UpdateWorldData(NiUpdateData* a_data) override; // 30
31  void OnVisible(NiCullingProcess& a_process) override; // 34
32 #endif
33 
35  {
36 #define RUNTIME_DATA_CONTENT \
37  float time; /* 198 */ \
38  bool updateControllers; /* 19C */ \
39  std::uint8_t pad19D; /* 19D */ \
40  std::uint16_t pad19E; /* 19E */
41  };
42 
44  {
45  return REL::RelocateMember<MESH_PARTICLE_SYSTEM_RUNTIME_DATA>(this, 0x198, 0x1C0);
46  }
47 
48  [[nodiscard]] inline const MESH_PARTICLE_SYSTEM_RUNTIME_DATA& GetMeshParticleSystemRuntimeData() const noexcept
49  {
50  return REL::RelocateMember<MESH_PARTICLE_SYSTEM_RUNTIME_DATA>(this, 0x198, 0x1C0);
51  }
52 
53  // members
54 #ifndef SKYRIM_CROSS_VR
55  RUNTIME_DATA_CONTENT // 198, 1C0
56 #endif
57  };
58 }
59 #undef RUNTIME_DATA_CONTENT
RUNTIME_DATA_CONTENT
Definition: BSGeometry.h:141
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
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
static constexpr auto RTTI
Definition: NiMeshParticleSystem.h:10
bool RegisterStreamables(NiStream &a_stream) override
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
static constexpr auto VTABLE
Definition: NiMeshParticleSystem.h:12
const MESH_PARTICLE_SYSTEM_RUNTIME_DATA & GetMeshParticleSystemRuntimeData() const noexcept
Definition: NiMeshParticleSystem.h:48
void OnVisible(NiCullingProcess &a_process) override
~NiMeshParticleSystem() override
void UpdateSelectedDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
MESH_PARTICLE_SYSTEM_RUNTIME_DATA & GetMeshParticleSystemRuntimeData() noexcept
Definition: NiMeshParticleSystem.h:43
Definition: NiObject.h:37
Definition: NiParticleSystem.h:11
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: NiAVObject.h:25
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_NiMeshParticleSystem(690589, 398444, 0x1f63fe8)
constexpr REL::VariantID NiRTTI_NiMeshParticleSystem(524470, 411051, 0x316d868)
constexpr std::array< REL::VariantID, 1 > VTABLE_NiMeshParticleSystem
Definition: Offsets_VTABLE.h:5700