CommonLibSSE NG
Loading...
Searching...
No Matches
BSTempEffectParticle.h
Go to the documentation of this file.
1#pragma once
2
5#include "RE/B/BSTempEffect.h"
6#include "RE/N/NiMatrix3.h"
7#include "RE/N/NiPoint3.h"
9#include "RE/N/NiTransform.h"
10
11namespace RE
12{
13 class BGSImpactData;
14 class BGSParticleObjectCloneTask;
15 class NiAVObject;
16 class NiNode;
17
19 {
20 public:
21 inline static constexpr auto RTTI = RTTI_BSTempEffectParticle;
23 inline static constexpr auto TYPE = TEMP_EFFECT_TYPE::kParticle;
24
25 ~BSTempEffectParticle() override; // 00
26
27 // override (BSTempEffect)
28 const NiRTTI* GetRTTI() const override; // 02
29 void Detach() override; // 27
30 bool Update(float a_arg1) override; // 28
31 [[nodiscard]] TEMP_EFFECT_TYPE GetType() const override; // 2C - { return kParticle; }
32
33 static BSTempEffectParticle* Spawn(TESObjectCELL* a_cell, float a_lifetime, const char* a_modelName, const NiPoint3& a_rotation, const NiPoint3& a_position, float a_scale, std::uint32_t a_flags, NiAVObject* a_target)
34 {
35 using func_t = BSTempEffectParticle* (*)(TESObjectCELL*, float, const char*, const NiPoint3&, const NiPoint3&, float, std::uint32_t, NiAVObject*);
36 REL::Relocation<func_t> func{ RELOCATION_ID(29218, 30071) };
37 return func(a_cell, a_lifetime, a_modelName, a_rotation, a_position, a_scale, a_flags, a_target);
38 }
39 static BSTempEffectParticle* Spawn(TESObjectCELL* a_cell, float a_lifetime, const char* a_modelName, const NiMatrix3& a_normal, const NiPoint3& a_position, float a_scale, std::uint32_t a_flags, NiAVObject* a_target)
40 {
41 using func_t = BSTempEffectParticle* (*)(TESObjectCELL*, float, const char*, const NiMatrix3&, const NiPoint3&, float, std::uint32_t, NiAVObject*);
42 REL::Relocation<func_t> func{ RELOCATION_ID(29219, 30072) };
43 return func(a_cell, a_lifetime, a_modelName, a_normal, a_position, a_scale, a_flags, a_target);
44 }
45
46 // members
49 const char* modelName; // 40
52 std::uint32_t flags; // 84
55 std::uint32_t padC4; // C4
59 std::uint8_t unkE8; // E8
60 std::uint8_t padE9; // E9
61 std::uint16_t unkEA; // EA
62 std::uint32_t unkEC; // EC
63 };
64 static_assert(sizeof(BSTempEffectParticle) == 0xF0);
65};
#define RELOCATION_ID(a_se, a_ae)
Definition PCH.h:794
Definition BGSImpactData.h:16
Definition BSTSmartPointer.h:36
Definition BSTempEffect.h:29
Definition BSTempEffectParticle.h:19
NiPointer< NiAVObject > spawnNode
Definition BSTempEffectParticle.h:53
NiPointer< NiNode > dynamicCellNode
Definition BSTempEffectParticle.h:50
BSSoundHandle sound2
Definition BSTempEffectParticle.h:58
const NiRTTI * GetRTTI() const override
static constexpr auto TYPE
Definition BSTempEffectParticle.h:23
const char * modelName
Definition BSTempEffectParticle.h:49
std::uint32_t padC4
Definition BSTempEffectParticle.h:55
std::uint32_t flags
Definition BSTempEffectParticle.h:52
NiTransform spawnNodeTransform
Definition BSTempEffectParticle.h:54
bool Update(float a_arg1) override
static BSTempEffectParticle * Spawn(TESObjectCELL *a_cell, float a_lifetime, const char *a_modelName, const NiPoint3 &a_rotation, const NiPoint3 &a_position, float a_scale, std::uint32_t a_flags, NiAVObject *a_target)
Definition BSTempEffectParticle.h:33
static constexpr auto RTTI
Definition BSTempEffectParticle.h:21
void Detach() override
std::uint8_t padE9
Definition BSTempEffectParticle.h:60
NiPointer< NiAVObject > particleObject
Definition BSTempEffectParticle.h:47
std::uint16_t unkEA
Definition BSTempEffectParticle.h:61
std::uint8_t unkE8
Definition BSTempEffectParticle.h:59
BGSImpactData * impactData
Definition BSTempEffectParticle.h:56
~BSTempEffectParticle() override
static auto Ni_RTTI
Definition BSTempEffectParticle.h:22
std::uint32_t unkEC
Definition BSTempEffectParticle.h:62
NiTransform particleEffectTransform
Definition BSTempEffectParticle.h:51
BSSoundHandle sound1
Definition BSTempEffectParticle.h:57
static BSTempEffectParticle * Spawn(TESObjectCELL *a_cell, float a_lifetime, const char *a_modelName, const NiMatrix3 &a_normal, const NiPoint3 &a_position, float a_scale, std::uint32_t a_flags, NiAVObject *a_target)
Definition BSTempEffectParticle.h:39
BSTSmartPointer< BGSParticleObjectCloneTask > cloneTask
Definition BSTempEffectParticle.h:48
TEMP_EFFECT_TYPE GetType() const override
Definition NiAVObject.h:50
Definition NiMatrix3.h:8
Definition NiPoint3.h:6
Definition NiSmartPointer.h:9
Definition NiRTTI.h:6
Definition NiTransform.h:9
Definition TESObjectCELL.h:116
Definition Relocation.h:1638
Definition AbsorbEffect.h:6
TEMP_EFFECT_TYPE
Definition BSTempEffect.h:13
constexpr REL::VariantID NiRTTI_BSTempEffectParticle(515935, 402032, 0x2fd2468)
constexpr REL::VariantID RTTI_BSTempEffectParticle(686052, 393860, 0x1ef5158)
Definition BSSoundHandle.h:9