CommonLibSSE (powerof3)
Hazard.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSPointerHandle.h"
5 #include "RE/B/BSSoundHandle.h"
6 #include "RE/F/FormTypes.h"
7 #include "RE/N/NiSmartPointer.h"
8 #include "RE/T/TESObjectREFR.h"
9 
10 namespace RE
11 {
12  class BGSHazard;
13  class NiLight;
14 
15  class Hazard : public TESObjectREFR
16  {
17  public:
18  inline static constexpr auto RTTI = RTTI_Hazard;
19  inline static constexpr auto VTABLE = VTABLE_Hazard;
20  inline static constexpr auto FORMTYPE = FormType::PlacedHazard;
21 
22  enum class Flags
23  {
24  };
25 
26  struct RecordFlags
27  {
28  enum RecordFlag : std::uint32_t
29  {
30  };
31  };
32 
33  ~Hazard() override; // 00
34 
35  // override (TESObjectREFR)
36  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
37  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
38  void FinishLoadGame(BGSLoadFormBuffer* a_buf) override; // 11
39  void Revert(BGSLoadFormBuffer* a_buf) override; // 12
40  void InitItemImpl() override; // 13
41  void SetActorCause(ActorCause* a_cause) override; // 50
42  void Release3DRelatedData() override; // 6B
43  bool OnAddCellPerformQueueReference(TESObjectCELL& a_cell) const override; // 90 - { return false; }
44 
45  // add
46  virtual void Initialize(); // A2
47  virtual void Unk_A3(void); // A3 - { return; }
48  virtual bool IsPermanent() const; // A4 - { return TESDataHandler::GetSingleton()->IsGeneratedFormID(formID) == 0; }
49 
50  // members
53  float age; // A4
54  float lifetime; // A8
55  float targetTimer; // AC
56  float radius; // B0
57  float magnitude; // B4
58  BGSHazard* hazard; // B8
62  };
63 #ifndef SKYRIM_SUPPORT_AE
64  static_assert(sizeof(Hazard) == 0xD8);
65 #else
66  static_assert(sizeof(Hazard) == 0xE0);
67 #endif
68 }
Definition: ActorCause.h:9
Definition: BGSHazard.h:44
Definition: BGSLoadFormBuffer.h:11
Definition: BGSSaveFormBuffer.h:8
Definition: Hazard.h:16
float age
Definition: Hazard.h:53
REX::EnumSet< Flags, std::uint32_t > flags
Definition: Hazard.h:61
virtual void Unk_A3(void)
ActorHandle ownerActor
Definition: Hazard.h:52
static constexpr auto FORMTYPE
Definition: Hazard.h:20
bool OnAddCellPerformQueueReference(TESObjectCELL &a_cell) const override
Flags
Definition: Hazard.h:23
void FinishLoadGame(BGSLoadFormBuffer *a_buf) override
virtual bool IsPermanent() const
void LoadGame(BGSLoadFormBuffer *a_buf) override
float radius
Definition: Hazard.h:56
virtual void Initialize()
static constexpr auto VTABLE
Definition: Hazard.h:19
void Revert(BGSLoadFormBuffer *a_buf) override
BSSoundHandle sound
Definition: Hazard.h:60
BGSHazard * hazard
Definition: Hazard.h:58
static constexpr auto RTTI
Definition: Hazard.h:18
ModelDBHandle hazardDBHandle
Definition: Hazard.h:51
float targetTimer
Definition: Hazard.h:55
~Hazard() override
float magnitude
Definition: Hazard.h:57
void Release3DRelatedData() override
NiPointer< NiLight > light
Definition: Hazard.h:59
float lifetime
Definition: Hazard.h:54
void SetActorCause(ActorCause *a_cause) override
void InitItemImpl() override
void SaveGame(BGSSaveFormBuffer *a_buf) override
Definition: NiSmartPointer.h:9
Definition: TESObjectCELL.h:115
Definition: TESObjectREFR.h:114
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_Hazard(static_cast< std::uint64_t >(687507))
constexpr std::array< REL::ID, 4 > VTABLE_Hazard
Definition: Offsets_VTABLE.h:11745
Definition: BSSoundHandle.h:10
Definition: Hazard.h:27
RecordFlag
Definition: Hazard.h:29