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