CommonLibSSE (Parapets fork)
BGSListForm.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTArray.h"
4 #include "RE/F/FormTypes.h"
5 #include "RE/T/TESForm.h"
6 
7 namespace RE
8 {
9  class BGSListForm : public TESForm
10  {
11  public:
12  inline static constexpr auto RTTI = RTTI_BGSListForm;
13  inline static constexpr auto FORMTYPE = FormType::FormList;
14 
15  struct ChangeFlags
16  {
17  enum ChangeFlag : std::uint32_t
18  {
19  kAddedForm = (std::uint32_t)1 << 31
20  };
21  };
22 
23  struct RecordFlags
24  {
25  enum RecordFlag : std::uint32_t
26  {
27  kDeleted = 1 << 5,
28  kIgnored = 1 << 12
29  };
30  };
31 
32  ~BGSListForm() override; // 00
33 
34  // override (TESForm)
35  void ClearData() override; // 05
36  bool Load(TESFile* a_mod) override; // 06
37  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
38  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
39  void Revert(BGSLoadFormBuffer* a_buf) override; // 12
40  void InitItemImpl() override; // 13
41 
42  void AddForm(TESForm* a_form);
43  bool HasForm(const TESForm* a_form) const;
44  [[nodiscard]] bool HasForm(FormID a_formID) const;
45 
46  // members
47  BSTArray<TESForm*> forms; // 20 - LNAM
49  std::uint32_t scriptAddedFormCount; // 40
50  std::uint32_t pad44; // 44
51  };
52  static_assert(sizeof(BGSListForm) == 0x48);
53 }
Definition: BGSListForm.h:10
BSTArray< FormID > * scriptAddedTempForms
Definition: BGSListForm.h:48
static constexpr auto FORMTYPE
Definition: BGSListForm.h:13
bool HasForm(const TESForm *a_form) const
~BGSListForm() override
std::uint32_t pad44
Definition: BGSListForm.h:50
std::uint32_t scriptAddedFormCount
Definition: BGSListForm.h:49
bool HasForm(FormID a_formID) const
bool Load(TESFile *a_mod) override
BSTArray< TESForm * > forms
Definition: BGSListForm.h:47
void InitItemImpl() override
void ClearData() override
static constexpr auto RTTI
Definition: BGSListForm.h:12
void LoadGame(BGSLoadFormBuffer *a_buf) override
void AddForm(TESForm *a_form)
void SaveGame(BGSSaveFormBuffer *a_buf) override
void Revert(BGSLoadFormBuffer *a_buf) override
Definition: BSTArray.h:377
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BGSListForm
Definition: Offsets_RTTI.h:1319
std::uint32_t FormID
Definition: BSCoreTypes.h:5
Definition: BGSListForm.h:16
ChangeFlag
Definition: BGSListForm.h:18
@ kAddedForm
Definition: BGSListForm.h:19
Definition: BGSListForm.h:24
RecordFlag
Definition: BGSListForm.h:26
@ kDeleted
Definition: BGSListForm.h:27
@ kIgnored
Definition: BGSListForm.h:28