CommonLibSSE NG
Loading...
Searching...
No Matches
NiMeshParticleSystem.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace 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
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
const NiRTTI * GetRTTI() const override
void UpdateRigidDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
void UpdateWorldData(NiUpdateData *a_data) override
void SaveBinary(NiStream &a_stream) override
void LoadBinary(NiStream &a_stream) override
static constexpr auto VTABLE
Definition NiMeshParticleSystem.h:12
NiObject * CreateClone(NiCloningProcess &a_cloning) override
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:27
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