CommonLibSSE (powerof3)
BGSKeywordForm.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace RE
6 {
7  class BGSKeyword;
8 
10  {
11  public:
12  inline static constexpr auto RTTI = RTTI_BGSKeywordForm;
13 
14  ~BGSKeywordForm() override; // 00
15 
16  // override (BaseFormComponent)
17  void InitializeDataComponent() override; // 01 - { return; }
18  void ClearDataComponent() override; // 02
19  void CopyComponent(BaseFormComponent* a_rhs) override; // 03
20 
21  // add
22  virtual bool HasKeyword(const BGSKeyword* a_keyword) const; // 04
23  [[nodiscard]] virtual BGSKeyword* GetDefaultKeyword() const; // 05 - { return 0; }
24 
25  [[nodiscard]] bool HasKeyword(FormID a_formID) const;
26  [[nodiscard]] std::optional<BGSKeyword*> GetKeywordAt(std::uint32_t a_idx) const;
27  [[nodiscard]] std::uint32_t GetNumKeywords() const;
28 
29  // members
30  BGSKeyword** keywords; // 08 - KWDA
31  std::uint32_t numKeywords; // 10 - KSIZ
32  std::uint32_t pad14; // 14
33  };
34  static_assert(sizeof(BGSKeywordForm) == 0x18);
35 }
Definition: BGSKeywordForm.h:10
std::uint32_t numKeywords
Definition: BGSKeywordForm.h:31
std::optional< BGSKeyword * > GetKeywordAt(std::uint32_t a_idx) const
std::uint32_t pad14
Definition: BGSKeywordForm.h:32
static constexpr auto RTTI
Definition: BGSKeywordForm.h:12
void InitializeDataComponent() override
BGSKeyword ** keywords
Definition: BGSKeywordForm.h:30
virtual bool HasKeyword(const BGSKeyword *a_keyword) const
bool HasKeyword(FormID a_formID) const
virtual BGSKeyword * GetDefaultKeyword() const
~BGSKeywordForm() override
void CopyComponent(BaseFormComponent *a_rhs) override
void ClearDataComponent() override
std::uint32_t GetNumKeywords() const
Definition: BGSKeyword.h:10
Definition: BaseFormComponent.h:8
Definition: AbsorbEffect.h:6
std::uint32_t FormID
Definition: BSCoreTypes.h:5
constexpr REL::ID RTTI_BGSKeywordForm
Definition: Offsets_RTTI.h:1314