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