CommonLibSSE (Parapets fork)
Loading...
Searching...
No Matches
TESClass.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/F/FormTypes.h"
5#include "RE/T/TESForm.h"
6#include "RE/T/TESFullName.h"
7#include "RE/T/TESTexture.h"
8
9namespace RE
10{
11 struct CLASS_DATA // DATA
12 {
13 public:
14 enum class Skill
15 {
16 kOneHanded = 0,
17 kTwoHanded = 1,
18 kArchery = 2,
19 kBlock = 3,
20 kSmithing = 4,
21 kHeavyArmor = 5,
22 kLightArmor = 6,
23 kPickpocket = 7,
24 kLockpicking = 8,
25 kSneak = 9,
26 kAlchemy = 10,
27 kSpeech = 11,
28 kAlteration = 12,
29 kConjuration = 13,
30 kDestruction = 14,
31 kIllusion = 15,
32 kRestoration = 16,
33 kEnchanting = 17,
34 };
35
37 {
38 public:
39 // members
40 std::uint8_t oneHanded; // 00
41 std::uint8_t twoHanded; // 01
42 std::uint8_t archery; // 02
43 std::uint8_t block; // 03
44 std::uint8_t smithing; // 04
45 std::uint8_t heavyArmor; // 05
46 std::uint8_t lightArmor; // 06
47 std::uint8_t pickpocket; // 07
48 std::uint8_t lockpicking; // 08
49 std::uint8_t sneak; // 09
50 std::uint8_t alchemy; // 0A
51 std::uint8_t speech; // 0B
52 std::uint8_t alteration; // 0C
53 std::uint8_t conjuration; // 0D
54 std::uint8_t destruction; // 0E
55 std::uint8_t illusion; // 0F
56 std::uint8_t restoration; // 10
57 std::uint8_t enchanting; // 11
58 };
59 static_assert(sizeof(SkillWeights) == 0x12);
60
62 {
63 public:
64 // members
65 std::uint8_t health; // 0
66 std::uint8_t magicka; // 1
67 std::uint8_t stamina; // 2
68 };
69 static_assert(sizeof(AttributeWeights) == 0x3);
70
71 // members
72 std::uint32_t unk00; // 00
74 std::uint8_t maximumTrainingLevel; // 05
76 float bleedoutDefault; // 18
77 std::uint32_t voicePoints; // 1C
79 std::uint8_t pad23; // 23
80 };
81 static_assert(sizeof(CLASS_DATA) == 0x24);
82
83 class TESClass :
84 public TESForm, // 00
85 public TESFullName, // 20
86 public TESDescription, // 30
87 public TESTexture // 40
88 {
89 public:
90 inline static constexpr auto RTTI = RTTI_TESClass;
91 inline static constexpr auto FORMTYPE = FormType::Class;
92
94 {
95 enum ChangeFlag : std::uint32_t
96 {
97 kTagSkills = 1 << 1
98 };
99 };
100
102 {
103 enum RecordFlag : std::uint32_t
104 {
105 kDeleted = 1 << 5,
106 kIgnored = 1 << 12
107 };
108 };
109
110 ~TESClass() override; // 00
111
112 // override (TESForm)
113 void InitializeData() override; // 04
114 bool Load(TESFile* a_mod) override; // 06
115
116 // members
117 CLASS_DATA data; // 50 - DATA
118 std::uint32_t pad74; // 74
119 };
120 static_assert(sizeof(TESClass) == 0x78);
121}
Definition: TESClass.h:88
bool Load(TESFile *a_mod) override
CLASS_DATA data
Definition: TESClass.h:117
static constexpr auto FORMTYPE
Definition: TESClass.h:91
static constexpr auto RTTI
Definition: TESClass.h:90
void InitializeData() override
~TESClass() override
std::uint32_t pad74
Definition: TESClass.h:118
Definition: TESDescription.h:12
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESFullName.h:9
Definition: TESTexture.h:10
Definition: PCH.h:216
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESClass
Definition: Offsets_RTTI.h:5980
Definition: TESClass.h:62
std::uint8_t stamina
Definition: TESClass.h:67
std::uint8_t health
Definition: TESClass.h:65
std::uint8_t magicka
Definition: TESClass.h:66
Definition: TESClass.h:37
std::uint8_t sneak
Definition: TESClass.h:49
std::uint8_t destruction
Definition: TESClass.h:54
std::uint8_t alchemy
Definition: TESClass.h:50
std::uint8_t smithing
Definition: TESClass.h:44
std::uint8_t block
Definition: TESClass.h:43
std::uint8_t restoration
Definition: TESClass.h:56
std::uint8_t pickpocket
Definition: TESClass.h:47
std::uint8_t archery
Definition: TESClass.h:42
std::uint8_t alteration
Definition: TESClass.h:52
std::uint8_t enchanting
Definition: TESClass.h:57
std::uint8_t speech
Definition: TESClass.h:51
std::uint8_t lightArmor
Definition: TESClass.h:46
std::uint8_t lockpicking
Definition: TESClass.h:48
std::uint8_t illusion
Definition: TESClass.h:55
std::uint8_t twoHanded
Definition: TESClass.h:41
std::uint8_t conjuration
Definition: TESClass.h:53
std::uint8_t oneHanded
Definition: TESClass.h:40
std::uint8_t heavyArmor
Definition: TESClass.h:45
Definition: TESClass.h:12
AttributeWeights attributeWeights
Definition: TESClass.h:78
std::uint32_t unk00
Definition: TESClass.h:72
stl::enumeration< Skill, std::uint8_t > teaches
Definition: TESClass.h:73
Skill
Definition: TESClass.h:15
std::uint8_t pad23
Definition: TESClass.h:79
std::uint32_t voicePoints
Definition: TESClass.h:77
float bleedoutDefault
Definition: TESClass.h:76
std::uint8_t maximumTrainingLevel
Definition: TESClass.h:74
SkillWeights skillWeights
Definition: TESClass.h:75
Definition: TESClass.h:94
ChangeFlag
Definition: TESClass.h:96
@ kTagSkills
Definition: TESClass.h:97
Definition: TESClass.h:102
RecordFlag
Definition: TESClass.h:104
@ kDeleted
Definition: TESClass.h:105
@ kIgnored
Definition: TESClass.h:106