CommonLibVR
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;
22 inline static constexpr auto Ni_RTTI = NiRTTI_BSTempEffectParticle;
23 inline static constexpr auto VTABLE = VTABLE_BSTempEffectParticle;
24 inline static constexpr auto TYPE = TEMP_EFFECT_TYPE::kParticle;
25
26 ~BSTempEffectParticle() override; // 00
27
28 // override (BSTempEffect)
29 const NiRTTI* GetRTTI() const override; // 02
30 void Detach() override; // 27
31 bool Update(float a_arg1) override; // 28
32 [[nodiscard]] TEMP_EFFECT_TYPE GetType() const override; // 2C - { return kParticle; }
33
34 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)
35 {
36 using func_t = BSTempEffectParticle* (*)(TESObjectCELL*, float, const char*, const NiPoint3&, const NiPoint3&, float, std::uint32_t, NiAVObject*);
37 static REL::Relocation<func_t> func{ RELOCATION_ID(29218, 30071) };
38 return func(a_cell, a_lifetime, a_modelName, a_rotation, a_position, a_scale, a_flags, a_target);
39 }
40 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)
41 {
42 using func_t = BSTempEffectParticle* (*)(TESObjectCELL*, float, const char*, const NiMatrix3&, const NiPoint3&, float, std::uint32_t, NiAVObject*);
43 static REL::Relocation<func_t> func{ RELOCATION_ID(29219, 30072) };
44 return func(a_cell, a_lifetime, a_modelName, a_normal, a_position, a_scale, a_flags, a_target);
45 }
46
47 // members
50 const char* modelName; // 40
53 std::uint32_t flags; // 84
56 std::uint32_t padC4; // C4
60 std::uint8_t unkE8; // E8
61 std::uint8_t padE9; // E9
62 std::uint16_t unkEA; // EA
63 std::uint32_t unkEC; // EC
64 private:
66 };
67 static_assert(sizeof(BSTempEffectParticle) == 0xF0);
68};
#define KEEP_FOR_RE()
Definition PCH.h:517
#define RELOCATION_ID(SE, AE)
Definition PCH.h:506
Definition Relocation.h:210
Definition BGSImpactData.h:16
Definition BSTSmartPointer.h:37
Definition BSTempEffectParticle.h:19
NiPointer< NiAVObject > spawnNode
Definition BSTempEffectParticle.h:54
NiPointer< NiNode > dynamicCellNode
Definition BSTempEffectParticle.h:51
BSSoundHandle sound2
Definition BSTempEffectParticle.h:59
static constexpr auto VTABLE
Definition BSTempEffectParticle.h:23
const NiRTTI * GetRTTI() const override
static constexpr auto TYPE
Definition BSTempEffectParticle.h:24
const char * modelName
Definition BSTempEffectParticle.h:50
std::uint32_t padC4
Definition BSTempEffectParticle.h:56
std::uint32_t flags
Definition BSTempEffectParticle.h:53
NiTransform spawnNodeTransform
Definition BSTempEffectParticle.h:55
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:34
static constexpr auto RTTI
Definition BSTempEffectParticle.h:21
void Detach() override
std::uint8_t padE9
Definition BSTempEffectParticle.h:61
NiPointer< NiAVObject > particleObject
Definition BSTempEffectParticle.h:48
std::uint16_t unkEA
Definition BSTempEffectParticle.h:62
std::uint8_t unkE8
Definition BSTempEffectParticle.h:60
BGSImpactData * impactData
Definition BSTempEffectParticle.h:57
~BSTempEffectParticle() override
std::uint32_t unkEC
Definition BSTempEffectParticle.h:63
NiTransform particleEffectTransform
Definition BSTempEffectParticle.h:52
BSSoundHandle sound1
Definition BSTempEffectParticle.h:58
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:40
static constexpr auto Ni_RTTI
Definition BSTempEffectParticle.h:22
BSTSmartPointer< BGSParticleObjectCloneTask > cloneTask
Definition BSTempEffectParticle.h:49
TEMP_EFFECT_TYPE GetType() const override
Definition BSTempEffect.h:29
Definition NiAVObject.h:57
Definition NiMatrix3.h:8
Definition NiPoint3.h:6
Definition NiSmartPointer.h:9
Definition NiRTTI.h:6
Definition NiTransform.h:9
Definition TESObjectCELL.h:119
Definition AbsorbEffect.h:6
TEMP_EFFECT_TYPE
Definition BSTempEffect.h:13
constexpr REL::ID NiRTTI_BSTempEffectParticle(static_cast< std::uint64_t >(515935))
constexpr std::array< REL::ID, 1 > VTABLE_BSTempEffectParticle
Definition Offsets_VTABLE.h:10541
constexpr REL::ID RTTI_BSTempEffectParticle(static_cast< std::uint64_t >(686052))
Definition BSSoundHandle.h:10