CommonLibVR
Explosion.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/B/BSSoundHandle.h"
5 #include "RE/F/FormTypes.h"
6 #include "RE/M/MagicSystem.h"
7 #include "RE/N/NiSmartPointer.h"
8 #include "RE/T/TESObjectREFR.h"
9 
10 namespace 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
76  NiPoint3 unk11C; // 11C
78  float damage; // 134
79  float unk138; // 138
81  private:
82  KEEP_FOR_RE()
83  };
84 #ifndef SKYRIM_SUPPORT_AE
85  static_assert(sizeof(Explosion) == 0x140);
86 #else
87  static_assert(sizeof(Explosion) == 0x148);
88 #endif
89 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
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
float imodRadius
Definition: Explosion.h:60
void SetActorCause(ActorCause *a_cause) override
ActorCause * GetActorCause() const override
MagicCaster * GetMagicCaster(MagicSystem::CastingSource a_source) 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
Explosion * AsExplosion() override
bhkSimpleShapePhantom * unkB8
Definition: Explosion.h:62
stl::enumeration< Flags, std::uint32_t > flags
Definition: Explosion.h:80
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
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
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:119
Definition: TESObjectREFR.h:113
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