CommonLibSSE (Parapets fork)
Loading...
Searching...
No Matches
TESAIForm.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSTList.h"
5
6namespace RE
7{
8 class TESPackage;
9
11 {
12 kCalmed = static_cast<std::underlying_type_t<ACTOR_AGGRESSION>>(-1),
13 kUnaggressive = 0,
14 kAggressive = 1,
15 kVeryAggressive = 2,
16 kFrenzied = 3
17 };
18
20 {
21 enum
22 {
26
27 kTotal
28 };
29 };
30
32 {
33 kHelpsNobody = 0,
34 kHelpsAllies = 1,
36 };
37
39 {
40 kCowardly = 0,
41 kCautious = 1,
42 kAverage = 2,
43 kBrave = 3,
44 kFoolhardy = 4
45 };
46
47 enum class ACTOR_MOOD
48 {
49 kNeutral = 0,
50 kAngry = 1,
51 kFear = 2,
52 kHappy = 3,
53 kSad = 4,
54 kSurprised = 5,
55 kPuzzled = 6,
56 kDisgusted = 7
57 };
58
59 enum class ACTOR_MORALITY
60 {
61 kAnyCrime = 0,
64 kNoCrime = 3
65 };
66
68 {
69 public:
70 // members
71 bool aggression1: 1; // 0 - 0
72 bool aggression2: 1; // 0 - 1
73 bool confidence1: 1; // 0 - 2
74 bool confidence2: 1; // 0 - 3
75 bool confidence3: 1; // 0 - 4
76 bool energyLevel1: 1; // 0 - 5
77 bool energyLevel2: 1; // 0 - 6
78 bool energyLevel3: 1; // 0 - 7
79 bool energyLevel4: 1; // 1 - 0
80 bool energyLevel5: 1; // 1 - 1
81 bool energyLevel6: 1; // 1 - 2
82 bool energyLevel7: 1; // 1 - 3
83 bool energyLevel8: 1; // 1 - 4
84 bool morality1: 1; // 1 - 5
85 bool morality2: 1; // 1 - 6
86 bool mood1: 1; // 1 - 7
87 bool mood2: 1; // 2 - 0
88 bool mood3: 1; // 2 - 1
89 bool assistance1: 1; // 2 - 2
90 bool assistance2: 1; // 2 - 3
91 bool aggroRadiusBehaviour: 1; // 2 - 4
92 bool pad2_5: 1; // 2 - 5
93 bool pad2_6: 1; // 2 - 6
94 bool pad2_7: 1; // 2 - 7
95 std::uint8_t pad3; // 3
97 bool noSlowApproach: 1; // A - 0
98 bool padA_1: 1; // A - 1
99 bool padA_2: 1; // A - 2
100 bool padA_3: 1; // A - 3
101 bool padA_4: 1; // A - 4
102 bool padA_5: 1; // A - 5
103 bool padA_6: 1; // A - 6
104 bool padA_7: 1; // A - 7
105 std::uint8_t padB; // B
106 };
107 static_assert(sizeof(AIDATA_GAME) == 0xC);
108
110 {
111 public:
112 // members
114 };
115 static_assert(sizeof(PackageList) == 0x10);
116
118 {
119 public:
120 inline static constexpr auto RTTI = RTTI_TESAIForm;
121
122 ~TESAIForm() override; // 00
123
124 // override (BaseFormComponent)
125 void InitializeDataComponent() override; // 01
126 void ClearDataComponent() override; // 02
127 void CopyComponent(BaseFormComponent* a_rhs) override; // 03
128
129 [[nodiscard]] bool AggroRadiusBehaviourIsEnabled() const;
133 [[nodiscard]] std::uint8_t GetEnergyLevel() const;
134 [[nodiscard]] ACTOR_MOOD GetMoodLevel() const;
135 [[nodiscard]] ACTOR_MORALITY GetMoralityLevel() const;
136 [[nodiscard]] bool NoSlowApproach() const;
137
138 // members
139 AIDATA_GAME aiData; // 08 - AIDT
141 };
142 static_assert(sizeof(TESAIForm) == 0x28);
143}
Definition: BSTList.h:10
Definition: BaseFormComponent.h:8
Definition: TESAIForm.h:118
ACTOR_ASSISTANCE GetAssistanceLevel() const
std::uint8_t GetEnergyLevel() const
bool NoSlowApproach() const
static constexpr auto RTTI
Definition: TESAIForm.h:120
ACTOR_MORALITY GetMoralityLevel() const
void InitializeDataComponent() override
AIDATA_GAME aiData
Definition: TESAIForm.h:139
ACTOR_AGGRESSION GetAggressionLevel() const
~TESAIForm() override
bool AggroRadiusBehaviourIsEnabled() const
void ClearDataComponent() override
void CopyComponent(BaseFormComponent *a_rhs) override
PackageList aiPackages
Definition: TESAIForm.h:140
ACTOR_CONFIDENCE GetConfidenceLevel() const
ACTOR_MOOD GetMoodLevel() const
Definition: AbsorbEffect.h:6
ACTOR_AGGRESSION
Definition: TESAIForm.h:11
ACTOR_ASSISTANCE
Definition: TESAIForm.h:32
ACTOR_CONFIDENCE
Definition: TESAIForm.h:39
ACTOR_MORALITY
Definition: TESAIForm.h:60
ACTOR_MOOD
Definition: TESAIForm.h:48
constexpr REL::ID RTTI_TESAIForm
Definition: Offsets_RTTI.h:5965
Definition: TESAIForm.h:20
@ kTotal
Definition: TESAIForm.h:27
@ kAttack
Definition: TESAIForm.h:25
@ kWarn
Definition: TESAIForm.h:23
@ kWarnAndAttack
Definition: TESAIForm.h:24
Definition: TESAIForm.h:68
bool padA_1
Definition: TESAIForm.h:98
bool aggression1
Definition: TESAIForm.h:71
bool energyLevel8
Definition: TESAIForm.h:83
bool pad2_5
Definition: TESAIForm.h:92
bool padA_7
Definition: TESAIForm.h:104
bool padA_4
Definition: TESAIForm.h:101
bool energyLevel6
Definition: TESAIForm.h:81
bool confidence3
Definition: TESAIForm.h:75
bool assistance1
Definition: TESAIForm.h:89
bool padA_2
Definition: TESAIForm.h:99
bool assistance2
Definition: TESAIForm.h:90
bool energyLevel2
Definition: TESAIForm.h:77
bool confidence1
Definition: TESAIForm.h:73
bool mood3
Definition: TESAIForm.h:88
bool padA_3
Definition: TESAIForm.h:100
bool mood2
Definition: TESAIForm.h:87
bool aggroRadiusBehaviour
Definition: TESAIForm.h:91
bool energyLevel7
Definition: TESAIForm.h:82
bool energyLevel1
Definition: TESAIForm.h:76
std::uint8_t padB
Definition: TESAIForm.h:105
bool pad2_7
Definition: TESAIForm.h:94
bool pad2_6
Definition: TESAIForm.h:93
bool mood1
Definition: TESAIForm.h:86
bool morality1
Definition: TESAIForm.h:84
bool aggression2
Definition: TESAIForm.h:72
bool energyLevel4
Definition: TESAIForm.h:79
bool padA_6
Definition: TESAIForm.h:103
bool energyLevel3
Definition: TESAIForm.h:78
std::uint8_t pad3
Definition: TESAIForm.h:95
bool energyLevel5
Definition: TESAIForm.h:80
bool morality2
Definition: TESAIForm.h:85
bool noSlowApproach
Definition: TESAIForm.h:97
std::uint16_t aggroRadius[ACTOR_AGGRO_RADIUS::kTotal]
Definition: TESAIForm.h:96
bool confidence2
Definition: TESAIForm.h:74
bool padA_5
Definition: TESAIForm.h:102
Definition: TESAIForm.h:110
BSSimpleList< TESPackage * > packages
Definition: TESAIForm.h:113