CommonLibSSE (Parapets fork)
BGSEntryPointPerkEntry.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BGSPerkEntry.h"
4 #include "RE/M/MemoryManager.h"
5 
6 namespace RE
7 {
8  class BGSEntryPointFunctionData;
9  class TESCondition;
10 
12  {
13  public:
14  inline static constexpr auto RTTI = RTTI_BGSEntryPointPerkEntry;
15 
16  struct EntryData // DATA
17  {
18  public:
19  enum class Function
20  {
21  kSetValue = 1,
22  kAddValue = 2,
23  kMultiplyValue = 3,
24  kAddRangeToValue = 4,
26  kAbsoluteValue = 6,
28  kAddLeveledList = 8,
30  kSelectSpell = 10,
31  kSelectText = 11,
35  kSetText = 15
36  };
37 
38  // members
41  std::uint8_t numArgs; // 2
42  std::uint8_t unk3; // 3
43  std::uint32_t unk4; // 4
44  };
45  static_assert(sizeof(EntryData) == 0x8);
46 
47  // override (BGSPerkEntry)
48  bool CheckConditionFilters(std::uint32_t a_numArgs, void* a_args) override; // 00
49  EntryPoint GetFunction() override; // 01 - { return function; }
50  void* GetFunctionData() const override; // 02 - { return functionData; }
51 
52  ~BGSEntryPointPerkEntry() override; // 03
53 
54  PERK_ENTRY_TYPE GetType() const override; // 04 - { return kEntryPoint; }
55  void ClearData() override; // 05
56  void InitItem(TESFile* a_owner) override; // 06
57  bool Load(TESFile* a_file) override; // 07
58  void SetParent(BGSPerk* a_parent) override; // 08
59  std::uint16_t GetID() const override; // 09
60  void ApplyPerkEntry(Actor* a_actor) override; // 0A
61  void RemovePerkEntry(Actor* a_actor) override; // 0B
62 
63  [[nodiscard]] bool IsEntryPoint(EntryPoint a_entryPoint) const;
64 
65  // members
66  EntryData entryData; // 10 - DATA
69  BGSPerk* perk; // 28
70  };
71  static_assert(sizeof(BGSEntryPointPerkEntry) == 0x30);
72 }
Definition: Actor.h:134
Definition: BGSEntryPointFunctionData.h:11
Definition: BGSEntryPointPerkEntry.h:12
void * GetFunctionData() const override
EntryData entryData
Definition: BGSEntryPointPerkEntry.h:66
~BGSEntryPointPerkEntry() override
void RemovePerkEntry(Actor *a_actor) override
void ApplyPerkEntry(Actor *a_actor) override
PERK_ENTRY_TYPE GetType() const override
SimpleArray< TESCondition > conditions
Definition: BGSEntryPointPerkEntry.h:68
BGSEntryPointFunctionData * functionData
Definition: BGSEntryPointPerkEntry.h:67
EntryPoint GetFunction() override
void InitItem(TESFile *a_owner) override
bool Load(TESFile *a_file) override
std::uint16_t GetID() const override
BGSPerk * perk
Definition: BGSEntryPointPerkEntry.h:69
void SetParent(BGSPerk *a_parent) override
static constexpr auto RTTI
Definition: BGSEntryPointPerkEntry.h:14
bool IsEntryPoint(EntryPoint a_entryPoint) const
bool CheckConditionFilters(std::uint32_t a_numArgs, void *a_args) override
void ClearData() override
Definition: BGSPerkEntry.h:20
Definition: BGSPerk.h:31
Definition: MemoryManager.h:166
Definition: TESFile.h:14
Definition: AbsorbEffect.h:6
PERK_ENTRY_TYPE
Definition: BGSPerkEntry.h:13
constexpr REL::ID RTTI_BGSEntryPointPerkEntry
Definition: Offsets_RTTI.h:1293
Definition: BGSEntryPointPerkEntry.h:17
Function
Definition: BGSEntryPointPerkEntry.h:20
std::uint8_t unk3
Definition: BGSEntryPointPerkEntry.h:42
std::uint8_t numArgs
Definition: BGSEntryPointPerkEntry.h:41
std::uint32_t unk4
Definition: BGSEntryPointPerkEntry.h:43
stl::enumeration< EntryPoint, std::uint8_t > entryPoint
Definition: BGSEntryPointPerkEntry.h:39
ENTRY_POINT
Definition: BGSEntryPoint.h:14