CommonLibSSE (powerof3)
BGSHazard.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BGSPreloadable.h"
4 #include "RE/F/FormTypes.h"
5 #include "RE/T/TESBoundObject.h"
6 #include "RE/T/TESFullName.h"
8 #include "RE/T/TESModel.h"
9 
10 namespace RE
11 {
12  struct BGSHazardData // DATA
13  {
14  public:
15  enum class BGSHazardFlags
16  {
17  kNone = 0,
18  kPCOnly = 1 << 0,
19  kInheritDuration = 1 << 1,
20  kAlignToNormal = 1 << 2,
21  kInheritRadius = 1 << 3,
22  kDropToGround = 1 << 4
23  };
24 
25  std::uint32_t limit; // 00
26  float radius; // 04
27  float lifetime; // 08
28  float imageSpaceRadius; // 0C
29  float targetInterval; // 10
31  SpellItem* spell; // 18
35  };
36  static_assert(sizeof(BGSHazardData) == 0x38);
37 
38  class BGSHazard :
39  public TESBoundObject, // 00
40  public TESFullName, // 30
41  public TESModel, // 40
42  public BGSPreloadable, // 68
43  public TESImageSpaceModifiableForm // 70
44  {
45  public:
46  inline static constexpr auto RTTI = RTTI_BGSHazard;
47  inline static constexpr auto VTABLE = VTABLE_BGSHazard;
48  inline static constexpr auto FORMTYPE = FormType::Hazard;
49 
50  struct RecordFlags
51  {
52  enum RecordFlag : std::uint32_t
53  {
54  kDeleted = 1 << 5,
55  kIgnored = 1 << 12
56  };
57  };
58 
59  ~BGSHazard() override; // 00
60 
61  // override (TESBoundObject)
62  void InitializeData() override; // 04
63  bool Load(TESFile* a_mod) override; // 06
64  void InitItemImpl() override; // 13
65 
66  // members
67  BGSHazardData data; // 80 - DATA
68  };
69  static_assert(sizeof(BGSHazard) == 0xB8);
70 }
Definition: BGSHazard.h:44
bool Load(TESFile *a_mod) override
void InitializeData() override
~BGSHazard() override
static constexpr auto VTABLE
Definition: BGSHazard.h:47
static constexpr auto RTTI
Definition: BGSHazard.h:46
static constexpr auto FORMTYPE
Definition: BGSHazard.h:48
void InitItemImpl() override
BGSHazardData data
Definition: BGSHazard.h:67
Definition: BGSImpactDataSet.h:13
Definition: BGSPreloadable.h:8
Definition: BGSSoundDescriptorForm.h:14
Definition: SpellItem.h:16
Definition: TESBoundObject.h:24
Definition: TESFile.h:17
Definition: TESFullName.h:9
Definition: TESImageSpaceModifiableForm.h:10
Definition: TESModel.h:16
Definition: TESObjectLIGH.h:68
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BGSHazard(static_cast< std::uint64_t >(513968))
constexpr std::array< REL::ID, 5 > VTABLE_BGSHazard
Definition: Offsets_VTABLE.h:8629
Definition: BGSHazard.h:13
TESObjectLIGH * light
Definition: BGSHazard.h:32
std::uint32_t limit
Definition: BGSHazard.h:25
BGSImpactDataSet * impactDataSet
Definition: BGSHazard.h:33
float lifetime
Definition: BGSHazard.h:27
float targetInterval
Definition: BGSHazard.h:29
float radius
Definition: BGSHazard.h:26
float imageSpaceRadius
Definition: BGSHazard.h:28
BGSHazardFlags
Definition: BGSHazard.h:16
REX::EnumSet< BGSHazardFlags, std::uint32_t > flags
Definition: BGSHazard.h:30
SpellItem * spell
Definition: BGSHazard.h:31
BGSSoundDescriptorForm * sound
Definition: BGSHazard.h:34
Definition: BGSHazard.h:51
RecordFlag
Definition: BGSHazard.h:53
@ kDeleted
Definition: BGSHazard.h:54
@ kIgnored
Definition: BGSHazard.h:55