CommonLibSSE (Parapets fork)
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 FORMTYPE = FormType::Hazard;
48 
49  struct RecordFlags
50  {
51  enum RecordFlag : std::uint32_t
52  {
53  kDeleted = 1 << 5,
54  kIgnored = 1 << 12
55  };
56  };
57 
58  ~BGSHazard() override; // 00
59 
60  // override (TESBoundObject)
61  void InitializeData() override; // 04
62  bool Load(TESFile* a_mod) override; // 06
63  void InitItemImpl() override; // 13
64 
65  // members
66  BGSHazardData data; // 80 - DATA
67  };
68  static_assert(sizeof(BGSHazard) == 0xB8);
69 }
Definition: BGSHazard.h:44
bool Load(TESFile *a_mod) override
void InitializeData() override
~BGSHazard() override
static constexpr auto RTTI
Definition: BGSHazard.h:46
static constexpr auto FORMTYPE
Definition: BGSHazard.h:47
void InitItemImpl() override
BGSHazardData data
Definition: BGSHazard.h:66
Definition: BGSImpactDataSet.h:13
Definition: BGSPreloadable.h:8
Definition: BGSSoundDescriptorForm.h:14
Definition: SpellItem.h:16
Definition: TESBoundObject.h:24
Definition: TESFile.h:14
Definition: TESFullName.h:9
Definition: TESImageSpaceModifiableForm.h:10
Definition: TESModel.h:16
Definition: TESObjectLIGH.h:64
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BGSHazard
Definition: Offsets_RTTI.h:1306
Definition: BGSHazard.h:13
TESObjectLIGH * light
Definition: BGSHazard.h:32
stl::enumeration< BGSHazardFlags, std::uint32_t > flags
Definition: BGSHazard.h:30
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
SpellItem * spell
Definition: BGSHazard.h:31
BGSSoundDescriptorForm * sound
Definition: BGSHazard.h:34
Definition: BGSHazard.h:50
RecordFlag
Definition: BGSHazard.h:52
@ kDeleted
Definition: BGSHazard.h:53
@ kIgnored
Definition: BGSHazard.h:54