CommonLibVR
Loading...
Searching...
No Matches
BGSPerk.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSTArray.h"
4#include "RE/F/FormTypes.h"
6#include "RE/T/TESCondition.h"
8#include "RE/T/TESForm.h"
9#include "RE/T/TESFullName.h"
10#include "RE/T/TESIcon.h"
11
12namespace RE
13{
14 class BGSPerkEntry;
15
16 struct PerkData // DATA
17 {
18 bool trait; // 0
19 std::int8_t level; // 1
20 std::int8_t numRanks; // 2
21 bool playable; // 3
22 bool hidden; // 4
23 private:
25 };
26 static_assert(sizeof(PerkData) == 0x5);
27
28 class BGSPerk :
29 public TESForm, // 00
30 public TESFullName, // 20
31 public TESDescription, // 30
32 public TESIcon // 40
33 {
34 public:
35 inline static constexpr auto RTTI = RTTI_BGSPerk;
36 inline static constexpr auto VTABLE = VTABLE_BGSPerk;
37 inline static constexpr auto FORMTYPE = FormType::Perk;
38
40 {
41 enum RecordFlag : std::uint32_t
42 {
43 kNonPlayable = 1 << 2,
44 kDeleted = 1 << 5,
45 kIgnored = 1 << 12
46 };
47 };
48
50 {
51 public:
52 inline static constexpr auto RTTI = RTTI_BGSPerk__FindPerkInRanksVisitor;
53 inline static constexpr auto VTABLE = VTABLE_BGSPerk__FindPerkInRanksVisitor;
54
55 // override (PerkRankVisitor)
56 bool operator()(const PerkRankData* a_entry) override; // 00
57 };
58 static_assert(sizeof(FindPerkInRanksVisitor) == 0x8);
59
61 {
62 public:
63 inline static constexpr auto RTTI = RTTI_BGSPerk__ApplyPerksVisitor;
64 inline static constexpr auto VTABLE = VTABLE_BGSPerk__ApplyPerksVisitor;
65
66 // override (PerkRankVisitor)
67 bool operator()(const PerkRankData* a_entry) override; // 00
68 };
69 static_assert(sizeof(ApplyPerksVisitor) == 0x8);
70
72 {
73 public:
74 inline static constexpr auto RTTI = RTTI_BGSPerk__AddPerkVisitor;
75 inline static constexpr auto VTABLE = VTABLE_BGSPerk__AddPerkVisitor;
76
77 // override (PerkRankVisitor)
78 bool operator()(const PerkRankData* a_entry) override; // 00
79 };
80 static_assert(sizeof(AddPerkVisitor) == 0x8);
81
82 ~BGSPerk() override; // 00
83
84 // override (TESForm)
85 void InitializeData() override; // 04
86 void ClearData() override; // 05
87 bool Load(TESFile* a_mod) override; // 06
88 void InitItemImpl() override; // 13
89
90 // members
91 PerkData data; // 50 - DATA
92 std::uint8_t pad55; // 55
93 std::uint16_t pad56; // 56
96 BGSPerk* nextPerk; // 78 - NNAM
97 private:
99 };
100 static_assert(sizeof(BGSPerk) == 0x80);
101}
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition BGSPerk.h:72
static constexpr auto VTABLE
Definition BGSPerk.h:75
bool operator()(const PerkRankData *a_entry) override
static constexpr auto RTTI
Definition BGSPerk.h:74
Definition BGSPerk.h:61
static constexpr auto RTTI
Definition BGSPerk.h:63
static constexpr auto VTABLE
Definition BGSPerk.h:64
bool operator()(const PerkRankData *a_entry) override
bool operator()(const PerkRankData *a_entry) override
static constexpr auto VTABLE
Definition BGSPerk.h:53
static constexpr auto RTTI
Definition BGSPerk.h:52
Definition BGSPerk.h:33
static constexpr auto VTABLE
Definition BGSPerk.h:36
BGSPerk * nextPerk
Definition BGSPerk.h:96
static constexpr auto FORMTYPE
Definition BGSPerk.h:37
std::uint8_t pad55
Definition BGSPerk.h:92
bool Load(TESFile *a_mod) override
std::uint16_t pad56
Definition BGSPerk.h:93
void InitializeData() override
static constexpr auto RTTI
Definition BGSPerk.h:35
void ClearData() override
PerkData data
Definition BGSPerk.h:91
BSTArray< BGSPerkEntry * > perkEntries
Definition BGSPerk.h:95
TESCondition perkConditions
Definition BGSPerk.h:94
~BGSPerk() override
void InitItemImpl() override
Definition BSTArray.h:378
Definition PerkRankVisitor.h:10
Definition TESCondition.h:992
Definition TESDescription.h:12
Definition TESFile.h:17
Definition TESForm.h:40
Definition TESFullName.h:9
Definition TESIcon.h:8
Definition AbsorbEffect.h:6
constexpr std::array< REL::ID, 4 > VTABLE_BGSPerk
Definition Offsets_VTABLE.h:8711
constexpr REL::ID RTTI_BGSPerk__AddPerkVisitor(static_cast< std::uint64_t >(686894))
constexpr REL::ID RTTI_BGSPerk__ApplyPerksVisitor(static_cast< std::uint64_t >(686875))
constexpr REL::ID RTTI_BGSPerk__FindPerkInRanksVisitor(static_cast< std::uint64_t >(686874))
constexpr std::array< REL::ID, 1 > VTABLE_BGSPerk__FindPerkInRanksVisitor
Definition Offsets_VTABLE.h:8716
constexpr std::array< REL::ID, 1 > VTABLE_BGSPerk__AddPerkVisitor
Definition Offsets_VTABLE.h:8714
constexpr REL::ID RTTI_BGSPerk(static_cast< std::uint64_t >(513872))
constexpr std::array< REL::ID, 1 > VTABLE_BGSPerk__ApplyPerksVisitor
Definition Offsets_VTABLE.h:8715
Definition BGSPerk.h:40
RecordFlag
Definition BGSPerk.h:42
@ kDeleted
Definition BGSPerk.h:44
@ kNonPlayable
Definition BGSPerk.h:43
@ kIgnored
Definition BGSPerk.h:45
Definition BGSPerk.h:17
bool playable
Definition BGSPerk.h:21
std::int8_t level
Definition BGSPerk.h:19
bool trait
Definition BGSPerk.h:18
bool hidden
Definition BGSPerk.h:22
std::int8_t numRanks
Definition BGSPerk.h:20
Definition BGSPerkRankArray.h:11