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