CommonLibSSE (Parapets fork)
Loading...
Searching...
No Matches
TESCombatStyle.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/F/FormTypes.h"
4#include "RE/T/TESForm.h"
5
6namespace RE
7{
8 struct CombatStyleGeneralData // CSGD
9 {
10 float offensiveMult; // 00
11 float defensiveMult; // 04
12 float groupOffensiveMult; // 08
13 float meleeScoreMult; // 0C
14 float magicScoreMult; // 10
15 float rangedScoreMult; // 14
16 float shoutScoreMult; // 18
17 float unarmedScoreMult; // 1C
18 float staffScoreMult; // 20
19 float avoidThreatChance; // 24
20 };
21 static_assert(sizeof(CombatStyleGeneralData) == 0x28);
22
23 struct CombatStyleMeleeData // CSME
24 {
28 float bashMult; // 0C
29 float bashRecoilMult; // 10
30 float bashAttackMult; // 14
32 float specialAttackMult; // 1C
33 };
34 static_assert(sizeof(CombatStyleMeleeData) == 0x20);
35
37 {
38 float circleMult; // 00
39 float fallbackMult; // 04
40 float flankDistanceMult; // 08
41 float stalkTimeMult; // 0C
42 };
43 static_assert(sizeof(CombatStyleCloseRangeData) == 0x10);
44
46 {
47 float strafeMult; // 0
48 };
49 static_assert(sizeof(CombatStyleLongRangeData) == 0x4);
50
51 struct CombatStyleFlightData // CSFL
52 {
53 float hoverChance; // 00
54 float diveBombChance; // 04
55 float groundAttackChance; // 08
56 float hoverTimeMult; // 0C
58 float perchAttackChance; // 14
60 float flyingAttackChance; // 1C
61 };
62 static_assert(sizeof(CombatStyleFlightData) == 0x20);
63
64 class TESCombatStyle : public TESForm
65 {
66 public:
67 inline static constexpr auto RTTI = RTTI_TESCombatStyle;
68 inline static constexpr auto FORMTYPE = FormType::CombatStyle;
69
70 enum class FLAG // DATA
71 {
72 kNone = 0,
73 kDuelingStyle = 1 << 0,
74 kFlankingStyle = 1 << 1,
75 kAllowDualWielding = 1 << 2
76 };
77
79 {
80 enum RecordFlag : std::uint32_t
81 {
82 kDeleted = 1 << 5,
83 kIgnored = 1 << 12,
84 kAllowDualWielding = 1 << 19
85 };
86 };
87
88 ~TESCombatStyle() override; // 00
89
90 // override (TESForm)
91 void InitializeData() override; // 04
92 bool Load(TESFile* a_mod) override; // 06
93 void InitItemImpl() override; // 13
94
95 // members
102 };
103 static_assert(sizeof(TESCombatStyle) == 0xA0);
104}
Definition: TESCombatStyle.h:65
bool Load(TESFile *a_mod) override
CombatStyleMeleeData meleeData
Definition: TESCombatStyle.h:97
void InitializeData() override
void InitItemImpl() override
static constexpr auto FORMTYPE
Definition: TESCombatStyle.h:68
CombatStyleCloseRangeData closeRangeData
Definition: TESCombatStyle.h:98
static constexpr auto RTTI
Definition: TESCombatStyle.h:67
CombatStyleGeneralData generalData
Definition: TESCombatStyle.h:96
CombatStyleFlightData flightData
Definition: TESCombatStyle.h:100
~TESCombatStyle() override
FLAG
Definition: TESCombatStyle.h:71
stl::enumeration< FLAG, std::uint32_t > flags
Definition: TESCombatStyle.h:101
CombatStyleLongRangeData longRangeData
Definition: TESCombatStyle.h:99
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: PCH.h:216
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESCombatStyle
Definition: Offsets_RTTI.h:5982
Definition: TESCombatStyle.h:37
float circleMult
Definition: TESCombatStyle.h:38
float stalkTimeMult
Definition: TESCombatStyle.h:41
float flankDistanceMult
Definition: TESCombatStyle.h:40
float fallbackMult
Definition: TESCombatStyle.h:39
Definition: TESCombatStyle.h:52
float groundAttackTimeMult
Definition: TESCombatStyle.h:57
float perchAttackTimeMult
Definition: TESCombatStyle.h:59
float flyingAttackChance
Definition: TESCombatStyle.h:60
float diveBombChance
Definition: TESCombatStyle.h:54
float groundAttackChance
Definition: TESCombatStyle.h:55
float perchAttackChance
Definition: TESCombatStyle.h:58
float hoverTimeMult
Definition: TESCombatStyle.h:56
float hoverChance
Definition: TESCombatStyle.h:53
Definition: TESCombatStyle.h:9
float meleeScoreMult
Definition: TESCombatStyle.h:13
float avoidThreatChance
Definition: TESCombatStyle.h:19
float magicScoreMult
Definition: TESCombatStyle.h:14
float defensiveMult
Definition: TESCombatStyle.h:11
float shoutScoreMult
Definition: TESCombatStyle.h:16
float offensiveMult
Definition: TESCombatStyle.h:10
float rangedScoreMult
Definition: TESCombatStyle.h:15
float staffScoreMult
Definition: TESCombatStyle.h:18
float groupOffensiveMult
Definition: TESCombatStyle.h:12
float unarmedScoreMult
Definition: TESCombatStyle.h:17
Definition: TESCombatStyle.h:46
float strafeMult
Definition: TESCombatStyle.h:47
Definition: TESCombatStyle.h:24
float powerAttackBlockingMult
Definition: TESCombatStyle.h:27
float attackIncapacitatedMult
Definition: TESCombatStyle.h:25
float powerAttackIncapacitatedMult
Definition: TESCombatStyle.h:26
float bashRecoilMult
Definition: TESCombatStyle.h:29
float specialAttackMult
Definition: TESCombatStyle.h:32
float bashAttackMult
Definition: TESCombatStyle.h:30
float bashPowerAttackMult
Definition: TESCombatStyle.h:31
float bashMult
Definition: TESCombatStyle.h:28
Definition: TESCombatStyle.h:79
RecordFlag
Definition: TESCombatStyle.h:81
@ kDeleted
Definition: TESCombatStyle.h:82
@ kIgnored
Definition: TESCombatStyle.h:83
@ kAllowDualWielding
Definition: TESCombatStyle.h:84