CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
PlayerCharacter.h
Go to the documentation of this file.
1#pragma once
2
5#include "RE/B/BSTArray.h"
6#include "RE/B/BSTEvent.h"
7#include "RE/B/BSTHashMap.h"
8#include "RE/B/BSTList.h"
10#include "RE/B/BSTTuple.h"
11#include "RE/C/Character.h"
12#include "RE/C/Crime.h"
13#include "RE/F/FormTypes.h"
14#include "RE/H/hkRefPtr.h"
15#include "RE/N/NiPoint3.h"
16#include "RE/N/NiSmartPointer.h"
17#include "RE/N/NiTMap.h"
19
20namespace RE
21{
22 enum class AQUIRE_TYPE;
23
24 class Actor;
25 class BGSInstancedQuestObjective;
26 class BGSLocation;
27 class bhkMouseSpringAction;
28 class BipedAnim;
29 class BSFadeNode;
30 class BSLight;
31 class CombatGroup;
32 class ImageSpaceModifierInstanceDOF;
33 class InventoryEntryData;
34 class MenuModeChangeEvent;
35 class MenuOpenCloseEvent;
36 class NiAVObject;
37 class NiNode;
38 class ObjectListItem;
39 class TESObject;
40 class TESObjectREFR;
41 class TintMask;
42 class UserEventEnabledEvent;
43 struct BGSActorCellEvent;
44 struct BGSActorDeathEvent;
45 struct PerkRankData;
46 struct PositionPlayerEvent;
47 struct TESQuestStageItem;
48 struct TESTrackedStatsEvent;
49
50 enum class PLAYER_ACTION
51 {
52 kNone = 0,
65 kShout,
67
68 kTotal,
70 };
71
73 {
74 public:
75 // members
76 float violentCur; // 00
77 float nonViolentCur; // 04
78 float nonViolentInfamy; // 08
79 float violentInfamy; // 0C
80 };
81 static_assert(sizeof(CrimeGoldStruct) == 0x10);
82
84 {
85 public:
86 // members
87 std::int32_t unwitnessed; // 0
88 std::int32_t witnessed; // 4
89 };
90 static_assert(sizeof(StolenItemValueStruct) == 0x8);
91
93 {
94 public:
95 // members
96 std::uint16_t friendCounts[4]; // 0
97 };
98 static_assert(sizeof(FriendshipFactionsStruct) == 0x8);
99
101 {
102 public:
103 using ArrivalFunc_t = void(std::int64_t);
104
105 // members
111 std::int64_t arrivalFuncData; // 30
114 bool resetWeather; // 40
115 bool allowAutoSave; // 41
116 bool isValid; // 42
117 std::uint8_t pad43; // 43
118 std::uint32_t pad44; // 44
119 };
120 static_assert(sizeof(PLAYER_TARGET_LOC) == 0x48);
121
123 {
124 public:
125 // members
126 float timer; // 0
129 };
130 static_assert(sizeof(PlayerActionObject) == 0xC);
131
133 public Character, // 000
134 public BSTEventSource<BGSActorCellEvent>, // 2D0
135 public BSTEventSource<BGSActorDeathEvent>, // 328
136 public BSTEventSource<PositionPlayerEvent>, // 380
137 public BSTEventSink<MenuOpenCloseEvent>, // 2B0
138 public BSTEventSink<MenuModeChangeEvent>, // 2B8
139 public BSTEventSink<UserEventEnabledEvent>, // 2C0
140 public BSTEventSink<TESTrackedStatsEvent> // 2C8
141 {
142 public:
143 inline static constexpr auto RTTI = RTTI_PlayerCharacter;
144 inline static constexpr auto VTABLE = VTABLE_PlayerCharacter;
145 inline static constexpr auto FORMTYPE = FormType::ActorCharacter;
146
147 enum class EventType
148 {
149 kThief = 3,
150 kContainer = 5,
151 kDeadBody = 6
152 };
153
154 enum class GrabbingType
155 {
156 kNone = 0,
157 kNormal,
159 };
160
161 enum class ByCharGenFlag
162 {
163 kNone = 0,
164 kHandsBound = 1 << 2
165 };
166
167 enum class FlagBD9
168 {
169 kNone = 0,
170 kIsSleeping = 1 << 2,
171 kGreetingPlayer = 1 << 6
172 };
173
174 enum class FlagBDB
175 {
176 kNone = 0,
177 kIsInThirdPersonMode = 1 << 0,
178 kIsInCombat = 1 << 5
179 };
180
181 enum class FlagBDC
182 {
183 kNone = 0,
184 kHealthTutorialShown = 1 << 3,
185 kMagickaTutorialShown = 1 << 4,
186 kStaminaTutorialShown = 1 << 5,
187 kGoToJailQueued = 1 << 6
188 };
189
190 enum class FlagBDD
191 {
192 kNone = 0,
193 kSprinting = 1 << 0,
195 kEverModded = 1 << 3,
196 kServingJailTime = 1 << 4
197 };
198
199 struct Data928
200 {
201 public:
202 // members
205 std::uint64_t unk30; // 30
206 std::uint64_t unk38; // 38
207 std::uint64_t unk40; // 40
208 };
209 static_assert(sizeof(Data928) == 0x48);
210
212 {
213 public:
214 struct Data
215 {
216 public:
217 struct Skills
218 {
219 enum Skill : std::uint32_t
220 {
239 kTotal
240 };
241 };
243
245 {
246 public:
247 // members
248 float level; // 0
249 float xp; // 4
250 float levelThreshold; // 8
251 };
252 static_assert(sizeof(SkillData) == 0xC);
253
254 // members
255 float xp; // 000
256 float levelThreshold; // 004
257 SkillData skills[Skill::kTotal]; // 008
258 std::uint32_t legendaryLevels[Skill::kTotal]; // 0E0
259 };
260 static_assert(sizeof(Data) == 0x128);
261
262 void AdvanceLevel(bool a_addThreshold);
263
264 // members
265 Data* data; // 0
266 };
267 static_assert(sizeof(PlayerSkills) == 0x8);
268
269 ~PlayerCharacter() override; // 000
270
271 // add
272 virtual void Unk_12A(void); // 12A
273 virtual std::uint32_t GetViolentCrimeGoldValue(const TESFaction* a_faction) const; // 12B
274 virtual std::uint32_t GetNonViolentCrimeGoldValue(const TESFaction* a_faction) const; // 12C
275 virtual void ClearAllCrimeGold(TESFaction* a_faction); // 12D
276 virtual void Unk_12E(void); // 12E - { return 0; }
277
279
281 void AddPlayerAddItemEvent(TESObject* a_object, TESForm* a_owner, TESObjectREFR* a_container, AQUIRE_TYPE a_type);
282 void AddSkillExperience(ActorValue a_skill, float a_experience);
283 bool AttemptPickpocket(TESObjectREFR* a_containerRef, InventoryEntryData* a_entry, std::int32_t a_number, bool a_fromContainer = true);
284 bool CenterOnCell(const char* a_cellName);
290 std::int32_t GetItemCount(TESBoundObject* a_object);
291 std::uint32_t GetNumTints(std::uint32_t a_tintType);
292 TintMask* GetOverlayTintMask(TintMask* a_original);
294 TintMask* GetTintMask(std::uint32_t a_tintType, std::uint32_t a_index);
296 bool IsGrabbing() const;
297 void PlayPickupEvent(TESForm* a_item, TESForm* a_containerOwner, TESObjectREFR* a_containerRef, EventType a_eventType);
298 void SetAIDriven(bool a_enable);
299 void SetEscaping(bool a_flag, bool a_escaped);
302
303 template <class T>
305 {
306 return static_cast<BSTEventSource<T>*>(this);
307 }
308
309 template <class T>
310 inline void AddEventSink(BSTEventSink<T>* a_sink)
311 {
312 GetEventSource<T>()->AddEventSink(a_sink);
313 }
314
315 // members
320 std::uint32_t unk444; // 444
325 float unk49C; // 49C
326 std::uint64_t unk4A0; // 4A0
327 std::uint64_t unk4A8; // 4A8
344 std::uint32_t unk63C; // 63C
349 std::uint32_t pad6AC; // 6AC
351 std::uint32_t unk6B8; // 6B8
352 std::uint32_t unk6BC; // 6BC
354 std::int32_t numberofStealWarnings; // 6C8
355 float stealWarningTimer; // 6CC
356 std::int32_t numberofPickpocketWarnings; // 6D0
359 std::uint32_t pad6DC; // 6DC
364 bool dynamicDOFFocused; // 6FC
365 std::uint8_t unk6FD; // 6FD
366 std::uint16_t unk6FE; // 6FE
370 std::int32_t jailSentence; // 720
371 std::uint32_t pad724; // 724
372 void* unk728; // 728 - smart ptr
373 std::uint8_t unk730[0xA0]; // 730
374 std::int32_t vampireFeedDetection; // 7D0
375 std::uint32_t mapMarkerIterator; // 7D4
382 float grabObjectWeight; // 8CC
383 float grabDistance; // 8D0
384 float unk8D4; // 8D4
385 std::uint64_t unk8D8; // 8D8
386 std::uint32_t unk8E0; // 8E0
387 std::uint32_t sleepSeconds; // 8E4
390 float eyeHeight; // 8F8
391 float greetTimer; // 8FC
392 float encumberedTimer; // 900
393 float powerAttackTimer; // 904
394 std::int32_t hoursToSleep; // 908
395 std::int32_t amountStolenSold; // 90C
396 std::uint32_t valueStolen; // 910
400 float sitHeadingDelta; // 920
403 std::uint32_t skillTrainingsThisLevel; // 930
404 std::uint32_t unk934; // 934
406 std::uint64_t unk940; // 940
407 std::uint32_t crimeCounts[PackageNS::CRIME_TYPES::kTotal]; // 948
408 std::uint32_t unk964; // 964
410 std::int64_t lastPlayingTimeUpdate; // 970
411 std::int64_t totalPlayingTime; // 978
412 std::int32_t characterSeed; // 980
413 std::uint32_t unk984; // 984
415 std::uint32_t unk990; // 990
416 std::uint32_t unk994; // 994
419 float dropAngleMod; // 9A8
420 float lastDropAngleMod; // 9AC
424 std::uint64_t unk9C0; // 9C0
428 std::uint64_t unk9F0; // 9F0
430 std::uint32_t teammateCount; // A08
431 float combatTimer; // A0C
432 float yieldTimer; // A10
433 float chaseTimer; // A14
435 std::uint32_t unkA1C; // A1C
436 std::uint8_t unkA20[0xA0]; // A20
437 std::uint32_t unkAC0; // AC0
438 std::uint32_t unkAC4; // AC4
442 float commandTimer; // AD8
443 std::uint32_t unkADC; // ADC
445 std::int32_t unkAE8; // AE8
446 std::uint32_t unkAEC; // AEC
447 std::uint32_t unkAF0; // AF0
449 std::int32_t difficulty; // AF8
451 std::int8_t murder; // B00
452 std::int8_t perkCount; // B01
454 std::uint8_t padB03; // B03
455 std::uint32_t unkB04; // B04
461 TESRace* race2; // B40
462 std::int32_t unkB48; // B48
463 std::uint32_t padB4C; // B4C
465 std::uint64_t unkB68; // B68
466 std::uint64_t unkB70; // B70
467 std::uint64_t unkB78; // B78
468 std::uint64_t unkB80; // B80
469 std::int32_t unkB88; // B88
470 std::uint32_t padB8C; // B8C
471 std::uint64_t unkB90; // B90
472 std::uint64_t unkB98; // B98
474 std::uint64_t unkBD0; // BD0
475 std::uint8_t unkBD8; // BD8
477 std::uint8_t unkBDA; // BDA
481 std::uint16_t padBDE; // BDE
482
483 private:
484 bool CenterOnCell_Impl(const char* a_cellName, RE::TESObjectCELL* a_cell);
485 };
486#ifndef SKYRIM_SUPPORT_AE
487 static_assert(sizeof(PlayerCharacter) == 0xBE0);
488#else
489 static_assert(sizeof(PlayerCharacter) == 0xBE8);
490#endif
491}
Definition: AlchemyItem.h:24
Definition: BGSLocation.h:68
Definition: BGSTextureSet.h:16
Definition: BSTList.h:10
Definition: BSAtomic.h:49
Definition: BSTArray.h:377
Definition: BSTEvent.h:143
Definition: BSTEvent.h:19
Definition: BSTHashMap.h:21
Definition: BSTSmartPointer.h:37
Definition: Character.h:8
Definition: CombatGroup.h:70
Definition: DialoguePackage.h:10
Definition: ImageSpaceModifierInstanceDOF.h:40
Definition: InventoryEntryData.h:15
Definition: NiPoint3.h:6
Definition: NiSmartPointer.h:9
Definition: NiTMap.h:10
Definition: PlayerCharacter.h:101
std::uint32_t pad44
Definition: PlayerCharacter.h:118
NiPoint3 angle
Definition: PlayerCharacter.h:109
TESObjectCELL * interior
Definition: PlayerCharacter.h:107
NiPoint3 location
Definition: PlayerCharacter.h:108
bool resetWeather
Definition: PlayerCharacter.h:114
bool isValid
Definition: PlayerCharacter.h:116
bool allowAutoSave
Definition: PlayerCharacter.h:115
RefHandle fastTravelMarker
Definition: PlayerCharacter.h:113
std::int64_t arrivalFuncData
Definition: PlayerCharacter.h:111
void(std::int64_t) ArrivalFunc_t
Definition: PlayerCharacter.h:103
TESWorldSpace * world
Definition: PlayerCharacter.h:106
RefHandle furnitureRef
Definition: PlayerCharacter.h:112
ArrivalFunc_t * arrivalFunc
Definition: PlayerCharacter.h:110
std::uint8_t pad43
Definition: PlayerCharacter.h:117
Definition: PlayerCharacter.h:141
BSTHashMap< const TESFaction *, CrimeGoldStruct > crimeGoldMap
Definition: PlayerCharacter.h:317
std::uint64_t unkB90
Definition: PlayerCharacter.h:471
BSSimpleList< TESQuestStageItem * > questLog
Definition: PlayerCharacter.h:336
BSTSmallArray< void *, 4 > unkBA0
Definition: PlayerCharacter.h:473
BSSimpleList< ObjectRefHandle > droppedRefList
Definition: PlayerCharacter.h:340
std::uint32_t unk984
Definition: PlayerCharacter.h:413
float grabDistance
Definition: PlayerCharacter.h:383
NiPointer< BSLight > thirdPersonLight
Definition: PlayerCharacter.h:418
TESBoundObject * lastOneHandItems[2]
Definition: PlayerCharacter.h:429
std::uint32_t unk964
Definition: PlayerCharacter.h:408
BSTArray< PerkRankData * > addedPerks
Definition: PlayerCharacter.h:328
BSTHashMap< UnkKey, UnkValue > currentSayOnceInfosMap
Definition: PlayerCharacter.h:339
ObjectRefHandle commandWaitMarker
Definition: PlayerCharacter.h:319
BSSoundHandle magicFailureSound
Definition: PlayerCharacter.h:347
NiPoint3 dynamicDOFLastAngle
Definition: PlayerCharacter.h:367
std::int32_t vampireFeedDetection
Definition: PlayerCharacter.h:374
BSTHashMap< const TESFaction *, FriendshipFactionsStruct > factionOwnerFriendsMap
Definition: PlayerCharacter.h:321
std::uint64_t unkB78
Definition: PlayerCharacter.h:467
NiPoint3 exteriorPosition
Definition: PlayerCharacter.h:343
NiPointer< NiAVObject > targeted3D
Definition: PlayerCharacter.h:425
std::uint32_t mapMarkerIterator
Definition: PlayerCharacter.h:375
std::uint32_t padB4C
Definition: PlayerCharacter.h:463
float unk8D4
Definition: PlayerCharacter.h:384
std::uint64_t unkB68
Definition: PlayerCharacter.h:465
std::int32_t hoursToSleep
Definition: PlayerCharacter.h:394
ActorHandle autoAimActor
Definition: PlayerCharacter.h:422
void AddEventSink(BSTEventSink< T > *a_sink)
Definition: PlayerCharacter.h:310
std::int32_t difficulty
Definition: PlayerCharacter.h:449
TESRace * charGenRace
Definition: PlayerCharacter.h:460
ActorHandle lastRiddenMount
Definition: PlayerCharacter.h:397
std::uint32_t unkB04
Definition: PlayerCharacter.h:455
ByCharGenFlag
Definition: PlayerCharacter.h:162
static constexpr auto RTTI
Definition: PlayerCharacter.h:143
std::uint64_t unk4A0
Definition: PlayerCharacter.h:326
TintMask * GetOverlayTintMask(TintMask *a_original)
std::uint32_t crimeCounts[PackageNS::CRIME_TYPES::kTotal]
Definition: PlayerCharacter.h:407
BSTHashMap< const TESFaction *, StolenItemValueStruct > stolenItemValueMap
Definition: PlayerCharacter.h:318
BSSoundHandle unk688
Definition: PlayerCharacter.h:346
stl::enumeration< FlagBD9, std::uint8_t > unkBD9
Definition: PlayerCharacter.h:476
std::uint32_t valueStolen
Definition: PlayerCharacter.h:396
PLAYER_ACTION mostRecentAction
Definition: PlayerCharacter.h:378
std::int32_t jailSentence
Definition: PlayerCharacter.h:370
bool CenterOnCell(const char *a_cellName)
NiPointer< TESObjectREFR > GetGrabbedRef()
RefHandle unk9BC
Definition: PlayerCharacter.h:423
ActorHandle actorDoingPlayerCommand
Definition: PlayerCharacter.h:379
std::uint8_t unk6FD
Definition: PlayerCharacter.h:365
BSTArray< ObjectRefHandle > currentMapMarkers
Definition: PlayerCharacter.h:331
BSSpinLock questTargetsLock
Definition: PlayerCharacter.h:316
AITimeStamp warnToLeaveTimeStamp
Definition: PlayerCharacter.h:358
std::uint8_t unkBD8
Definition: PlayerCharacter.h:475
std::int32_t unkAE8
Definition: PlayerCharacter.h:445
std::uint32_t unkAF0
Definition: PlayerCharacter.h:447
std::uint64_t unk4A8
Definition: PlayerCharacter.h:327
std::uint64_t unk8D8
Definition: PlayerCharacter.h:385
std::uint32_t GetNumTints(std::uint32_t a_tintType)
ImageSpaceModifierInstanceDOF * vatsDOFInstance
Definition: PlayerCharacter.h:361
void AddPlayerAddItemEvent(TESObject *a_object, TESForm *a_owner, TESObjectREFR *a_container, AQUIRE_TYPE a_type)
std::uint32_t unkAC0
Definition: PlayerCharacter.h:437
std::uint32_t unkAEC
Definition: PlayerCharacter.h:446
stl::enumeration< FlagBDC, std::uint8_t > unkBDC
Definition: PlayerCharacter.h:479
NiPoint3 dynamicDOFLastPosition
Definition: PlayerCharacter.h:368
std::uint32_t pad6AC
Definition: PlayerCharacter.h:349
std::int32_t unkB88
Definition: PlayerCharacter.h:469
std::uint32_t pad6DC
Definition: PlayerCharacter.h:359
std::uint32_t unk994
Definition: PlayerCharacter.h:416
std::uint32_t unk6B8
Definition: PlayerCharacter.h:351
std::uint64_t unk9C0
Definition: PlayerCharacter.h:424
bool AttemptPickpocket(TESObjectREFR *a_containerRef, InventoryEntryData *a_entry, std::int32_t a_number, bool a_fromContainer=true)
ActorHandle lightTarget
Definition: PlayerCharacter.h:398
std::uint64_t unk940
Definition: PlayerCharacter.h:406
TESWorldSpace * cachedWorldSpace
Definition: PlayerCharacter.h:342
virtual void ClearAllCrimeGold(TESFaction *a_faction)
std::int32_t characterSeed
Definition: PlayerCharacter.h:412
PlayerSkills * skills
Definition: PlayerCharacter.h:421
BSTArray< TintMask * > * overlayTintMasks
Definition: PlayerCharacter.h:458
ObjectRefHandle unk924
Definition: PlayerCharacter.h:401
BSTArray< ActorHandle > actorsToDisplayOnTheHUDArray
Definition: PlayerCharacter.h:427
std::uint32_t sleepSeconds
Definition: PlayerCharacter.h:387
bool CenterOnCell(RE::TESObjectCELL *a_cell)
std::int8_t murder
Definition: PlayerCharacter.h:451
ImageSpaceModifierInstanceDOF * ironsightsDOFInstance
Definition: PlayerCharacter.h:360
BSTArray< BGSInstancedQuestObjective > objectives
Definition: PlayerCharacter.h:337
stl::enumeration< GrabbingType, std::uint32_t > grabType
Definition: PlayerCharacter.h:448
TESRace * race2
Definition: PlayerCharacter.h:461
std::uint32_t unk934
Definition: PlayerCharacter.h:404
AlchemyItem * pendingPoison
Definition: PlayerCharacter.h:409
DialoguePackage * aiConversationRunning
Definition: PlayerCharacter.h:353
std::uint32_t unk8E0
Definition: PlayerCharacter.h:386
TESClass * defaultClass
Definition: PlayerCharacter.h:405
RefHandle forceActivateRef
Definition: PlayerCharacter.h:376
TESForm * lastKnownGoodLocation
Definition: PlayerCharacter.h:414
BSTSmartPointer< BipedAnim > largeBiped
Definition: PlayerCharacter.h:388
std::uint64_t unkBD0
Definition: PlayerCharacter.h:474
float dropAngleMod
Definition: PlayerCharacter.h:419
NiPoint3 lastKnownGoodPosition
Definition: PlayerCharacter.h:322
void SetAIDriven(bool a_enable)
std::int32_t numberofPickpocketWarnings
Definition: PlayerCharacter.h:356
CombatGroup * combatGroup
Definition: PlayerCharacter.h:426
Data928 * unk928
Definition: PlayerCharacter.h:402
NiPointer< Actor > GetActorDoingPlayerCommand() const
float pickPocketWarningTimer
Definition: PlayerCharacter.h:357
virtual std::uint32_t GetNonViolentCrimeGoldValue(const TESFaction *a_faction) const
std::uint64_t unk9F0
Definition: PlayerCharacter.h:428
float yieldTimer
Definition: PlayerCharacter.h:432
BGSLocation * currentLocation
Definition: PlayerCharacter.h:439
float sortActorDistanceTimer
Definition: PlayerCharacter.h:399
NiTMap< std::uint32_t, std::uint8_t > randomDoorSpaceMap
Definition: PlayerCharacter.h:341
PlayerActionObject playerActionObjects[15]
Definition: PlayerCharacter.h:377
float sitHeadingDelta
Definition: PlayerCharacter.h:400
std::int64_t totalPlayingTime
Definition: PlayerCharacter.h:411
BSTArray< TintMask * > & GetTintList()
float grabObjectWeight
Definition: PlayerCharacter.h:382
float dynamicDOFFocusTime
Definition: PlayerCharacter.h:363
BSTArray< std::uint64_t > unkB50
Definition: PlayerCharacter.h:464
std::uint16_t padBDE
Definition: PlayerCharacter.h:481
NiPoint3 cachedVelocity
Definition: PlayerCharacter.h:324
virtual void Unk_12A(void)
std::uint64_t unkB70
Definition: PlayerCharacter.h:466
TESFaction * currentPrisonFaction
Definition: PlayerCharacter.h:369
std::int8_t perkCount
Definition: PlayerCharacter.h:452
virtual void Unk_12E(void)
BSTArray< void * > imageSpaceModifierAnims1
Definition: PlayerCharacter.h:334
bool HasActorDoingCommand() const
std::uint8_t unkBDA
Definition: PlayerCharacter.h:477
NiPointer< BSLight > firstPersonLight
Definition: PlayerCharacter.h:417
std::uint64_t unkB98
Definition: PlayerCharacter.h:472
float powerAttackTimer
Definition: PlayerCharacter.h:393
float GetDamage(InventoryEntryData *a_form)
float combatTimer
Definition: PlayerCharacter.h:431
std::int32_t unkB48
Definition: PlayerCharacter.h:462
TESImageSpaceModifier * unkAE0
Definition: PlayerCharacter.h:444
BSTArray< ProjectileHandle > runesCast
Definition: PlayerCharacter.h:333
~PlayerCharacter() override
DialoguePackage * closestConversation
Definition: PlayerCharacter.h:350
std::uint32_t unk63C
Definition: PlayerCharacter.h:344
void PlayPickupEvent(TESForm *a_item, TESForm *a_containerOwner, TESObjectREFR *a_containerRef, EventType a_eventType)
float encumberedTimer
Definition: PlayerCharacter.h:392
float lastDropAngleMod
Definition: PlayerCharacter.h:420
FlagBDB
Definition: PlayerCharacter.h:175
void SetEscaping(bool a_flag, bool a_escaped)
std::uint32_t teammateCount
Definition: PlayerCharacter.h:430
float stealWarningTimer
Definition: PlayerCharacter.h:355
std::uint32_t unk444
Definition: PlayerCharacter.h:320
std::uint8_t padB03
Definition: PlayerCharacter.h:454
void AddSkillExperience(ActorValue a_skill, float a_experience)
TintMask * GetTintMask(std::uint32_t a_tintType, std::uint32_t a_index)
std::uint32_t unkAC4
Definition: PlayerCharacter.h:438
AITimeStamp cachedVelocityTimeStamp
Definition: PlayerCharacter.h:440
std::uint32_t padB8C
Definition: PlayerCharacter.h:470
virtual std::uint32_t GetViolentCrimeGoldValue(const TESFaction *a_faction) const
std::int32_t amountStolenSold
Definition: PlayerCharacter.h:395
float unk49C
Definition: PlayerCharacter.h:325
ActorHandle assumedIdentity
Definition: PlayerCharacter.h:450
NiPoint3 bulletAutoAim
Definition: PlayerCharacter.h:323
float GetArmorValue(InventoryEntryData *a_form)
NiPointer< NiNode > firstPerson3D
Definition: PlayerCharacter.h:389
GrabbingType
Definition: PlayerCharacter.h:155
std::uint64_t unkB80
Definition: PlayerCharacter.h:468
static constexpr auto VTABLE
Definition: PlayerCharacter.h:144
ObjectRefHandle grabbedObject
Definition: PlayerCharacter.h:381
std::uint32_t skillTrainingsThisLevel
Definition: PlayerCharacter.h:403
std::uint8_t unk730[0xA0]
Definition: PlayerCharacter.h:373
bool IsGrabbing() const
float greetTimer
Definition: PlayerCharacter.h:391
static PlayerCharacter * GetSingleton()
BSTArray< BSTTuple< NiPoint3, AITimeStamp > > velocityArray
Definition: PlayerCharacter.h:332
float commandTimer
Definition: PlayerCharacter.h:442
std::uint8_t unkA20[0xA0]
Definition: PlayerCharacter.h:436
float drawSheatheSafetyTimer
Definition: PlayerCharacter.h:434
float chaseTimer
Definition: PlayerCharacter.h:433
std::uint32_t pad724
Definition: PlayerCharacter.h:371
BGSTextureSet * complexion
Definition: PlayerCharacter.h:459
ImageSpaceModifierInstanceDOF * dynamicDOFInstance
Definition: PlayerCharacter.h:362
std::uint32_t unkADC
Definition: PlayerCharacter.h:443
BSTArray< void * > imageSpaceModifierAnims2
Definition: PlayerCharacter.h:335
stl::enumeration< FlagBDB, std::uint8_t > unkBDB
Definition: PlayerCharacter.h:478
BSTArray< BGSPerk * > perks
Definition: PlayerCharacter.h:329
stl::enumeration< FlagBDD, std::uint8_t > unkBDD
Definition: PlayerCharacter.h:480
std::uint16_t unk6FE
Definition: PlayerCharacter.h:366
stl::enumeration< ByCharGenFlag, std::uint8_t > byCharGenFlag
Definition: PlayerCharacter.h:453
float telekinesisDistance
Definition: PlayerCharacter.h:441
bool dynamicDOFFocused
Definition: PlayerCharacter.h:364
std::uint32_t unkA1C
Definition: PlayerCharacter.h:435
BSSoundHandle unk6A0
Definition: PlayerCharacter.h:348
PLAYER_TARGET_LOC queuedTargetLoc
Definition: PlayerCharacter.h:345
Crime * resistArrestCrime
Definition: PlayerCharacter.h:456
std::int32_t numberofStealWarnings
Definition: PlayerCharacter.h:354
void * unk728
Definition: PlayerCharacter.h:372
FlagBDC
Definition: PlayerCharacter.h:182
BSTSmallArray< hkRefPtr< bhkMouseSpringAction >, 4 > grabSpring
Definition: PlayerCharacter.h:380
FlagBDD
Definition: PlayerCharacter.h:191
BSTEventSource< T > * GetEventSource()
Definition: PlayerCharacter.h:304
BSTArray< TintMask * > tintMasks
Definition: PlayerCharacter.h:457
static constexpr auto FORMTYPE
Definition: PlayerCharacter.h:145
float eyeHeight
Definition: PlayerCharacter.h:390
EventType
Definition: PlayerCharacter.h:148
FlagBD9
Definition: PlayerCharacter.h:168
std::uint32_t unk6BC
Definition: PlayerCharacter.h:352
std::uint32_t unk990
Definition: PlayerCharacter.h:415
std::int64_t lastPlayingTimeUpdate
Definition: PlayerCharacter.h:410
std::int32_t GetItemCount(TESBoundObject *a_object)
BSTArray< BGSPerk * > standingStonePerks
Definition: PlayerCharacter.h:330
BSTHashMap< UnkKey, UnkValue > questTargets
Definition: PlayerCharacter.h:338
Definition: TESBoundObject.h:24
Definition: TESClass.h:88
Definition: TESFaction.h:120
Definition: TESForm.h:35
Definition: TESImageSpaceModifier.h:111
Definition: TESObjectCELL.h:115
Definition: TESObject.h:11
Definition: TESObjectREFR.h:110
Definition: TESRace.h:146
Definition: TESWorldSpace.h:118
Definition: PCH.h:217
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_PlayerCharacter(static_cast< std::uint64_t >(686898))
ActorValue
Definition: ActorValues.h:6
PLAYER_ACTION
Definition: PlayerCharacter.h:51
AQUIRE_TYPE
Definition: BGSAddToPlayerInventoryEvent.h:11
constexpr std::array< REL::ID, 14 > VTABLE_PlayerCharacter
Definition: Offsets_VTABLE.h:12552
std::uint32_t RefHandle
Definition: BSCoreTypes.h:6
Definition: AITimeStamp.h:6
Definition: BSSoundHandle.h:10
Definition: PlayerCharacter.h:73
float nonViolentCur
Definition: PlayerCharacter.h:77
float violentInfamy
Definition: PlayerCharacter.h:79
float nonViolentInfamy
Definition: PlayerCharacter.h:78
float violentCur
Definition: PlayerCharacter.h:76
Definition: Crime.h:35
Definition: PlayerCharacter.h:93
std::uint16_t friendCounts[4]
Definition: PlayerCharacter.h:96
Definition: PlayerCharacter.h:123
RefHandle refObj
Definition: PlayerCharacter.h:127
float timer
Definition: PlayerCharacter.h:126
stl::enumeration< PLAYER_ACTION, std::uint32_t > next
Definition: PlayerCharacter.h:128
Definition: PlayerCharacter.h:200
BSTArray< UnkValue > unk18
Definition: PlayerCharacter.h:204
std::uint64_t unk30
Definition: PlayerCharacter.h:205
std::uint64_t unk40
Definition: PlayerCharacter.h:207
BSTArray< UnkValue > unk00
Definition: PlayerCharacter.h:203
std::uint64_t unk38
Definition: PlayerCharacter.h:206
float level
Definition: PlayerCharacter.h:248
float levelThreshold
Definition: PlayerCharacter.h:250
float xp
Definition: PlayerCharacter.h:249
Definition: PlayerCharacter.h:218
Skill
Definition: PlayerCharacter.h:220
@ kIllusion
Definition: PlayerCharacter.h:236
@ kAlchemy
Definition: PlayerCharacter.h:231
@ kSneak
Definition: PlayerCharacter.h:230
@ kEnchanting
Definition: PlayerCharacter.h:238
@ kLightArmor
Definition: PlayerCharacter.h:227
@ kArchery
Definition: PlayerCharacter.h:223
@ kSmithing
Definition: PlayerCharacter.h:225
@ kDestruction
Definition: PlayerCharacter.h:235
@ kPickpocket
Definition: PlayerCharacter.h:228
@ kLockpicking
Definition: PlayerCharacter.h:229
@ kTwoHanded
Definition: PlayerCharacter.h:222
@ kOneHanded
Definition: PlayerCharacter.h:221
@ kRestoration
Definition: PlayerCharacter.h:237
@ kConjuration
Definition: PlayerCharacter.h:234
@ kTotal
Definition: PlayerCharacter.h:239
@ kAlteration
Definition: PlayerCharacter.h:233
@ kBlock
Definition: PlayerCharacter.h:224
@ kSpeech
Definition: PlayerCharacter.h:232
@ kHeavyArmor
Definition: PlayerCharacter.h:226
Definition: PlayerCharacter.h:215
SkillData skills[Skill::kTotal]
Definition: PlayerCharacter.h:257
float xp
Definition: PlayerCharacter.h:255
float levelThreshold
Definition: PlayerCharacter.h:256
std::uint32_t legendaryLevels[Skill::kTotal]
Definition: PlayerCharacter.h:258
Definition: PlayerCharacter.h:212
Data * data
Definition: PlayerCharacter.h:265
void AdvanceLevel(bool a_addThreshold)
Definition: PlayerCharacter.h:84
std::int32_t unwitnessed
Definition: PlayerCharacter.h:87
std::int32_t witnessed
Definition: PlayerCharacter.h:88