CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
Explosion.h
Go to the documentation of this file.
1#pragma once
2
5#include "RE/F/FormTypes.h"
6#include "RE/M/MagicSystem.h"
9
10namespace RE
11{
12 class BGSExplosion;
13 class BGSMaterialType;
14 class bhkCollisionObject;
15 class bhkSimpleShapePhantom;
16 class EffectSetting;
17 class MagicItem;
18 class QueuedFile;
19 class NiPointLight;
20 class NonActorMagicCaster;
21
22 class Explosion : public TESObjectREFR
23 {
24 public:
25 inline static constexpr auto RTTI = RTTI_Explosion;
26 inline static constexpr auto VTABLE = VTABLE_Explosion;
27 inline static constexpr auto FORMTYPE = FormType::Explosion;
28
29 enum class Flags
30 {
31 kNone = 0,
32 kIgnoreImageSpaceSwap = 1 << 4,
33 kInWater = 1 << 5
34 };
35
36 ~Explosion() override; // 00
37
38 // override (TESObjectREFR)
39 void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
40 void Revert(BGSLoadFormBuffer* a_buf) override; // 12
41 void SetActorCause(ActorCause* a_cause) override; // 50 - { actorCause = a_cause; }
42 ActorCause* GetActorCause() const override; // 51 - { return actorCause; }
44 void InitHavok() override; // 66
45 void Release3DRelatedData() override; // 6B
46 Explosion* AsExplosion() override; // 8E
47 bool OnAddCellPerformQueueReference(TESObjectCELL& a_cell) const override; // 90 - { return false; }
48
49 // add
50 virtual void Initialize(); // A2
51 virtual void Update(float a_delta); // A3
52 virtual void FindTargets(); // A4
53
54 // members
56 float startKeyTime; // 0A0
57 float endKeyTime; // 0A4
58 float hitKeyTime; // 0A8
59 float radius; // 0AC
60 float imodRadius; // 0B0
61 float unkB4; // 0B4
62 bhkSimpleShapePhantom* unkB8; // 0B8
63 std::uint64_t unkC0; // 0C0
64 std::uint64_t unkC8; // 0C8
70 std::uint32_t unkF8; // 0F8
71 std::uint32_t padFC; // 0FC
75 std::uint32_t unk118; // 118
78 float damage; // 134
79 float unk138; // 138
81 };
82#ifndef SKYRIM_SUPPORT_AE
83 static_assert(sizeof(Explosion) == 0x140);
84#else
85 static_assert(sizeof(Explosion) == 0x148);
86#endif
87}
Definition EnumSet.h:9
Definition ActorCause.h:9
Definition BGSLoadFormBuffer.h:11
Definition BGSSaveFormBuffer.h:8
Definition Explosion.h:23
void Release3DRelatedData() override
static constexpr auto RTTI
Definition Explosion.h:25
NiPointer< ActorCause > actorCause
Definition Explosion.h:72
ActorCause * GetActorCause() const override
float imodRadius
Definition Explosion.h:60
void SetActorCause(ActorCause *a_cause) override
static constexpr auto FORMTYPE
Definition Explosion.h:27
TESObjectWEAP * weaponSource
Definition Explosion.h:74
std::uint32_t unk118
Definition Explosion.h:75
float startKeyTime
Definition Explosion.h:56
Flags
Definition Explosion.h:30
virtual void Update(float a_delta)
NiPointer< NiPointLight > light
Definition Explosion.h:67
std::uint32_t unkF8
Definition Explosion.h:70
bhkSimpleShapePhantom * unkB8
Definition Explosion.h:62
void SaveGame(BGSSaveFormBuffer *a_buf) override
BSSoundHandle sound02
Definition Explosion.h:66
float radius
Definition Explosion.h:59
std::uint32_t padFC
Definition Explosion.h:71
NiPoint3 unk11C
Definition Explosion.h:76
float hitKeyTime
Definition Explosion.h:58
ModelDBHandle explosionDBHandle
Definition Explosion.h:55
float damage
Definition Explosion.h:78
ActorHandle unkF4
Definition Explosion.h:69
float endKeyTime
Definition Explosion.h:57
bool OnAddCellPerformQueueReference(TESObjectCELL &a_cell) const override
Explosion * AsExplosion() override
virtual void FindTargets()
std::uint64_t unkC8
Definition Explosion.h:64
static constexpr auto VTABLE
Definition Explosion.h:26
std::uint64_t unkC0
Definition Explosion.h:63
float unkB4
Definition Explosion.h:61
virtual void Initialize()
ActorHandle actorOwner
Definition Explosion.h:68
NonActorMagicCaster * magicCaster
Definition Explosion.h:73
BSSoundHandle sound01
Definition Explosion.h:65
float unk138
Definition Explosion.h:79
void Revert(BGSLoadFormBuffer *a_buf) override
MagicCaster * GetMagicCaster(MagicSystem::CastingSource a_source) override
REX::EnumSet< Flags, std::uint32_t > flags
Definition Explosion.h:80
NiPoint3 negativeVelocity
Definition Explosion.h:77
~Explosion() override
void InitHavok() override
Definition MagicCaster.h:25
Definition NiPoint3.h:6
Definition NiSmartPointer.h:9
Definition NonActorMagicCaster.h:12
Definition TESObjectCELL.h:115
Definition TESObjectREFR.h:114
Definition TESObjectWEAP.h:79
CastingSource
Definition MagicSystem.h:27
Definition AbsorbEffect.h:6
constexpr REL::ID RTTI_Explosion(static_cast< std::uint64_t >(686635))
constexpr std::array< REL::ID, 4 > VTABLE_Explosion
Definition Offsets_VTABLE.h:11475
Definition BSSoundHandle.h:10