CommonLibSSE NG
BGSStoryManagerEventNode.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/B/BSString.h"
5 #include "RE/B/BSTArray.h"
6 #include "RE/F/FormTypes.h"
7 
8 namespace RE
9 {
11  {
12  enum class DATA_TYPE
13  {
14  };
15 
17  std::uint32_t uniqueID; // 04
18  BSString name; // 08
19  };
20  static_assert(sizeof(BGSStoryEventMember) == 0x18);
21 
22  struct BGSRegisteredStoryEvent // ENAM
23  {
24  char uniqueID[4]; // 00
25  std::uint32_t pad04; // 04
27  BSString name; // 10
28  bool immediate; // 20
29  std::uint8_t pad21; // 21
30  std::uint16_t pad22; // 22
31  std::uint32_t pad24; // 24
32  };
33  static_assert(sizeof(BGSRegisteredStoryEvent) == 0x28);
34 
36  {
37  public:
38  inline static constexpr auto RTTI = RTTI_BGSStoryManagerEventNode;
39  inline static constexpr auto FORMTYPE = FormType::StoryManagerEventNode;
40 
41  struct RecordFlags
42  {
43  enum RecordFlag : std::uint32_t
44  {
45  kDeleted = 1 << 5,
46  kIgnored = 1 << 12
47  };
48  };
49 
50  ~BGSStoryManagerEventNode() override; // 00
51 
52  // override (BGSStoryManagerBranchNode)
53  void InitializeData() override; // 04
54  void ClearData() override; // 05 - { BGSStoryManagerNodeBase::ClearData(); }
55  bool Load(TESFile* a_mod) override; // 06
56  void InitItemImpl() override; // 13
57  [[nodiscard]] const char* GetFormEditorID() const override; // 32 - { if (!((flags >> 3) & 1)) return "(Uninitialized event node)"; return event ? event->name.c_str() : "(No event)"; }
58 
59  // members
60  const BGSRegisteredStoryEvent* event; // 60 - ENAM
61  };
62  static_assert(sizeof(BGSStoryManagerEventNode) == 0x68);
63 }
Definition: BGSStoryManagerBranchNode.h:10
Definition: BGSStoryManagerEventNode.h:36
const char * GetFormEditorID() const override
const BGSRegisteredStoryEvent * event
Definition: BGSStoryManagerEventNode.h:60
static constexpr auto FORMTYPE
Definition: BGSStoryManagerEventNode.h:39
void InitItemImpl() override
void InitializeData() override
static constexpr auto RTTI
Definition: BGSStoryManagerEventNode.h:38
bool Load(TESFile *a_mod) override
Definition: BSTArray.h:377
Definition: TESFile.h:17
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BGSStoryManagerEventNode(686333, 394142, 0x1efba90)
Definition: BGSStoryManagerEventNode.h:23
std::uint8_t pad21
Definition: BGSStoryManagerEventNode.h:29
std::uint32_t pad24
Definition: BGSStoryManagerEventNode.h:31
std::uint16_t pad22
Definition: BGSStoryManagerEventNode.h:30
char uniqueID[4]
Definition: BGSStoryManagerEventNode.h:24
BSString name
Definition: BGSStoryManagerEventNode.h:27
std::uint32_t pad04
Definition: BGSStoryManagerEventNode.h:25
BSTArray< BGSStoryEventMember > * members
Definition: BGSStoryManagerEventNode.h:26
bool immediate
Definition: BGSStoryManagerEventNode.h:28
Definition: BGSStoryManagerEventNode.h:11
BSString name
Definition: BGSStoryManagerEventNode.h:18
DATA_TYPE
Definition: BGSStoryManagerEventNode.h:13
stl::enumeration< DATA_TYPE, std::uint32_t > type
Definition: BGSStoryManagerEventNode.h:16
std::uint32_t uniqueID
Definition: BGSStoryManagerEventNode.h:17
Definition: BGSStoryManagerEventNode.h:42
RecordFlag
Definition: BGSStoryManagerEventNode.h:44
@ kDeleted
Definition: BGSStoryManagerEventNode.h:45
@ kIgnored
Definition: BGSStoryManagerEventNode.h:46