CommonLibSSE (Parapets fork)
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 FORMTYPE = FormType::ActorCharacter;
145
146 enum class EventType
147 {
148 kThief = 3,
149 kContainer = 5,
150 kDeadBody = 6
151 };
152
153 enum class GrabbingType
154 {
155 kNone = 0,
156 kNormal,
158 };
159
160 enum class ByCharGenFlag
161 {
162 kNone = 0,
163 kHandsBound = 1 << 2
164 };
165
166 enum class FlagBD9
167 {
168 kNone = 0,
169 kIsSleeping = 1 << 2,
170 kGreetingPlayer = 1 << 6
171 };
172
173 enum class FlagBDB
174 {
175 kNone = 0,
176 kIsInCombat = 1 << 5
177 };
178
179 enum class FlagBDC
180 {
181 kNone = 0,
182 kHealthTutorialShown = 1 << 3,
183 kMagickaTutorialShown = 1 << 4,
184 kStaminaTutorialShown = 1 << 5,
185 kGoToJailQueued = 1 << 6
186 };
187
188 enum class FlagBDD
189 {
190 kNone = 0,
191 kSprinting = 1 << 0,
193 kEverModded = 1 << 3,
194 kServingJailTime = 1 << 4
195 };
196
197 struct Data928
198 {
199 public:
200 // members
203 std::uint64_t unk30; // 30
204 std::uint64_t unk38; // 38
205 std::uint64_t unk40; // 40
206 };
207 static_assert(sizeof(Data928) == 0x48);
208
210 {
211 public:
212 struct Data
213 {
214 public:
215 struct Skills
216 {
217 enum Skill : std::uint32_t
218 {
237 kTotal
238 };
239 };
241
243 {
244 public:
245 // members
246 float level; // 0
247 float xp; // 4
248 float levelThreshold; // 8
249 };
250 static_assert(sizeof(SkillData) == 0xC);
251
252 // members
253 float xp; // 000
254 float levelThreshold; // 004
255 SkillData skills[Skill::kTotal]; // 008
256 std::uint32_t legendaryLevels[Skill::kTotal]; // 0E0
257 };
258 static_assert(sizeof(Data) == 0x128);
259
260 void AdvanceLevel(bool a_addThreshold);
261
262 // members
263 Data* data; // 0
264 };
265 static_assert(sizeof(PlayerSkills) == 0x8);
266
267 ~PlayerCharacter() override; // 000
268
269 // add
270 virtual void Unk_12A(void); // 12A
271 virtual std::uint32_t GetViolentCrimeGoldValue(const TESFaction* a_faction) const; // 12B
272 virtual std::uint32_t GetNonViolentCrimeGoldValue(const TESFaction* a_faction) const; // 12C
273 virtual void ClearAllCrimeGold(TESFaction* a_faction); // 12D
274 virtual void Unk_12E(void); // 12E - { return 0; }
275
277
279 void AddPlayerAddItemEvent(TESObject* a_object, TESForm* a_owner, TESObjectREFR* a_container, AQUIRE_TYPE a_type);
280 void AddSkillExperience(ActorValue a_skill, float a_experience);
281 bool AttemptPickpocket(TESObjectREFR* a_containerRef, InventoryEntryData* a_entry, std::int32_t a_number, bool a_fromContainer = true);
282 bool CenterOnCell(const char* a_cellName);
288 std::uint32_t GetNumTints(std::uint32_t a_tintType);
289#ifndef SKYRIMVR
290 TintMask* GetOverlayTintMask(TintMask* a_original);
291#endif
293 TintMask* GetTintMask(std::uint32_t a_tintType, std::uint32_t a_index);
295 bool IsGrabbing() const;
296 void PlayPickupEvent(TESForm* a_item, TESForm* a_containerOwner, TESObjectREFR* a_containerRef, EventType a_eventType);
298
299 // members
300 std::uint32_t unk3D8; // 3D8
301 std::uint32_t unk3DC; // 3DC
305 std::uint32_t unk444; // 444
310 float unk49C; // 49C
311 std::uint64_t unk4A0; // 4A0
312 std::uint64_t unk4A8; // 4A8
329 std::uint32_t unk63C; // 63C
334 std::uint32_t pad6AC; // 6AC
336 std::uint32_t unk6B8; // 6B8
337 std::uint32_t unk6BC; // 6BC
339 std::int32_t numberofStealWarnings; // 6C8
340 float stealWarningTimer; // 6CC
341 std::int32_t numberofPickpocketWarnings; // 6D0
344 std::uint32_t pad6DC; // 6DC
349 bool dynamicDOFFocused; // 6FC
350 std::uint8_t unk6FD; // 6FD
351 std::uint16_t unk6FE; // 6FE
355 std::int32_t jailSentence; // 720
356 std::uint32_t pad724; // 724
357 void* unk728; // 728 - smart ptr
358 std::uint8_t unk730[0xA0]; // 730
359 std::int32_t vampireFeedDetection; // 7D0
360 std::uint32_t mapMarkerIterator; // 7D4
367 float grabObjectWeight; // 8CC
368 float grabDistance; // 8D0
369 float unk8D4; // 8D4
370 std::uint64_t unk8D8; // 8D8
371 std::uint32_t unk8E0; // 8E0
372 std::uint32_t sleepSeconds; // 8E4
375 float eyeHeight; // 8F8
376 float greetTimer; // 8FC
377 float encumberedTimer; // 900
378 float powerAttackTimer; // 904
379 std::int32_t hoursToSleep; // 908
380 std::int32_t amountStolenSold; // 90C
381 std::uint32_t valueStolen; // 910
385 float sitHeadingDelta; // 920
386 std::uint32_t unk924; // 924
388 std::uint32_t skillTrainingsThisLevel; // 930
389 std::uint32_t unk934; // 934
391 std::uint64_t unk940; // 940
392 std::uint32_t crimeCounts[PackageNS::CRIME_TYPES::kTotal]; // 948
393 std::uint32_t unk964; // 964
395 std::int64_t lastPlayingTimeUpdate; // 970
396 std::int64_t totalPlayingTime; // 978
397 std::int32_t characterSeed; // 980
398 std::uint32_t unk984; // 984
400 std::uint32_t unk990; // 990
401 std::uint32_t unk994; // 994
404 float dropAngleMod; // 9A8
405 float lastDropAngleMod; // 9AC
409 std::uint64_t unk9C0; // 9C0
411 CombatGroup* combatGroup; // 9D0
413 std::uint64_t unk9F0; // 9F0
415 std::uint32_t teammateCount; // A08
416 float combatTimer; // A0C
417 float yieldTimer; // A10
418 float chaseTimer; // A14
420 std::uint32_t unkA1C; // A1C
421 std::uint8_t unkA20[0xA0]; // A20
422 std::uint32_t unkAC0; // AC0
423 std::uint32_t unkAC4; // AC4
427 float commandTimer; // AD8
428 std::uint32_t unkADC; // ADC
430 std::int32_t unkAE8; // AE8
431 std::uint32_t unkAEC; // AEC
432 std::uint32_t unkAF0; // AF0
434 std::int32_t difficulty; // AF8
435 std::uint32_t unkAFC; // AFC
436 std::int8_t murder; // B00
437 std::int8_t perkCount; // B01
439 std::uint8_t padB03; // B03
440 std::uint32_t unkB04; // B04
446 TESRace* race2; // B40
447 std::int32_t unkB48; // B48
448 std::uint32_t padB4C; // B4C
450 std::uint64_t unkB68; // B68
451 std::uint64_t unkB70; // B70
452 std::uint64_t unkB78; // B78
453 std::uint64_t unkB80; // B80
454 std::int32_t unkB88; // B88
455 std::uint32_t padB8C; // B8C
456 std::uint64_t unkB90; // B90
457 std::uint64_t unkB98; // B98
459 std::uint64_t unkBD0; // BD0
460 std::uint8_t unkBD8; // BD8
462 std::uint8_t unkBDA; // BDA
466 std::uint16_t padBDE; // BDE
467
468 private:
469 bool CenterOnCell_Impl(const char* a_cellName, RE::TESObjectCELL* a_cell);
470 };
471#if !defined(SKYRIMVR) && !defined(SKYRIMSE_PRE_1_6_629)
472 static_assert(sizeof(PlayerCharacter) == 0xBE8);
473#else
474 static_assert(sizeof(PlayerCharacter) == 0xBE0);
475#endif
476}
Definition: AlchemyItem.h:24
Definition: BGSLocation.h:68
Definition: BGSTextureSet.h:16
Definition: BSTList.h:10
Definition: BSTArray.h:377
Definition: BSTEvent.h:146
Definition: BSTEvent.h:28
Definition: BSTHashMap.h:21
Definition: BSTSmartPointer.h:37
Definition: Character.h:8
Definition: DialoguePackage.h:10
Definition: ImageSpaceModifierInstanceDOF.h:40
Definition: InventoryEntryData.h:14
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:302
std::uint64_t unkB90
Definition: PlayerCharacter.h:456
BSSimpleList< TESQuestStageItem * > questLog
Definition: PlayerCharacter.h:321
BSTSmallArray< void *, 4 > unkBA0
Definition: PlayerCharacter.h:458
BSSimpleList< ObjectRefHandle > droppedRefList
Definition: PlayerCharacter.h:325
std::uint32_t unk984
Definition: PlayerCharacter.h:398
float grabDistance
Definition: PlayerCharacter.h:368
NiPointer< BSLight > thirdPersonLight
Definition: PlayerCharacter.h:403
TESBoundObject * lastOneHandItems[2]
Definition: PlayerCharacter.h:414
std::uint32_t unk964
Definition: PlayerCharacter.h:393
BSTArray< PerkRankData * > addedPerks
Definition: PlayerCharacter.h:313
BSTHashMap< UnkKey, UnkValue > currentSayOnceInfosMap
Definition: PlayerCharacter.h:324
ObjectRefHandle commandWaitMarker
Definition: PlayerCharacter.h:304
BSSoundHandle magicFailureSound
Definition: PlayerCharacter.h:332
NiPoint3 dynamicDOFLastAngle
Definition: PlayerCharacter.h:352
std::uint32_t unk3DC
Definition: PlayerCharacter.h:301
std::int32_t vampireFeedDetection
Definition: PlayerCharacter.h:359
BSTHashMap< const TESFaction *, FriendshipFactionsStruct > factionOwnerFriendsMap
Definition: PlayerCharacter.h:306
std::uint64_t unkB78
Definition: PlayerCharacter.h:452
NiPoint3 exteriorPosition
Definition: PlayerCharacter.h:328
NiPointer< NiAVObject > targeted3D
Definition: PlayerCharacter.h:410
std::uint32_t mapMarkerIterator
Definition: PlayerCharacter.h:360
std::uint32_t padB4C
Definition: PlayerCharacter.h:448
float unk8D4
Definition: PlayerCharacter.h:369
std::uint64_t unkB68
Definition: PlayerCharacter.h:450
std::int32_t hoursToSleep
Definition: PlayerCharacter.h:379
ActorHandle autoAimActor
Definition: PlayerCharacter.h:407
std::int32_t difficulty
Definition: PlayerCharacter.h:434
TESRace * charGenRace
Definition: PlayerCharacter.h:445
ActorHandle lastRiddenMount
Definition: PlayerCharacter.h:382
std::uint32_t unkB04
Definition: PlayerCharacter.h:440
ByCharGenFlag
Definition: PlayerCharacter.h:161
static constexpr auto RTTI
Definition: PlayerCharacter.h:143
std::uint64_t unk4A0
Definition: PlayerCharacter.h:311
TintMask * GetOverlayTintMask(TintMask *a_original)
std::uint32_t crimeCounts[PackageNS::CRIME_TYPES::kTotal]
Definition: PlayerCharacter.h:392
BSTHashMap< const TESFaction *, StolenItemValueStruct > stolenItemValueMap
Definition: PlayerCharacter.h:303
BSSoundHandle unk688
Definition: PlayerCharacter.h:331
stl::enumeration< FlagBD9, std::uint8_t > unkBD9
Definition: PlayerCharacter.h:461
std::uint32_t valueStolen
Definition: PlayerCharacter.h:381
PLAYER_ACTION mostRecentAction
Definition: PlayerCharacter.h:363
std::int32_t jailSentence
Definition: PlayerCharacter.h:355
bool CenterOnCell(const char *a_cellName)
NiPointer< TESObjectREFR > GetGrabbedRef()
RefHandle unk9BC
Definition: PlayerCharacter.h:408
ActorHandle actorDoingPlayerCommand
Definition: PlayerCharacter.h:364
std::uint8_t unk6FD
Definition: PlayerCharacter.h:350
BSTArray< ObjectRefHandle > currentMapMarkers
Definition: PlayerCharacter.h:316
AITimeStamp warnToLeaveTimeStamp
Definition: PlayerCharacter.h:343
std::uint8_t unkBD8
Definition: PlayerCharacter.h:460
std::int32_t unkAE8
Definition: PlayerCharacter.h:430
std::uint32_t unkAF0
Definition: PlayerCharacter.h:432
std::uint64_t unk4A8
Definition: PlayerCharacter.h:312
std::uint64_t unk8D8
Definition: PlayerCharacter.h:370
std::uint32_t GetNumTints(std::uint32_t a_tintType)
ImageSpaceModifierInstanceDOF * vatsDOFInstance
Definition: PlayerCharacter.h:346
std::uint32_t unkAFC
Definition: PlayerCharacter.h:435
void AddPlayerAddItemEvent(TESObject *a_object, TESForm *a_owner, TESObjectREFR *a_container, AQUIRE_TYPE a_type)
std::uint32_t unkAC0
Definition: PlayerCharacter.h:422
std::uint32_t unkAEC
Definition: PlayerCharacter.h:431
stl::enumeration< FlagBDC, std::uint8_t > unkBDC
Definition: PlayerCharacter.h:464
NiPoint3 dynamicDOFLastPosition
Definition: PlayerCharacter.h:353
std::uint32_t pad6AC
Definition: PlayerCharacter.h:334
std::int32_t unkB88
Definition: PlayerCharacter.h:454
std::uint32_t pad6DC
Definition: PlayerCharacter.h:344
std::uint32_t unk994
Definition: PlayerCharacter.h:401
std::uint32_t unk6B8
Definition: PlayerCharacter.h:336
std::uint64_t unk9C0
Definition: PlayerCharacter.h:409
bool AttemptPickpocket(TESObjectREFR *a_containerRef, InventoryEntryData *a_entry, std::int32_t a_number, bool a_fromContainer=true)
ActorHandle lightTarget
Definition: PlayerCharacter.h:383
std::uint64_t unk940
Definition: PlayerCharacter.h:391
TESWorldSpace * cachedWorldSpace
Definition: PlayerCharacter.h:327
virtual void ClearAllCrimeGold(TESFaction *a_faction)
std::int32_t characterSeed
Definition: PlayerCharacter.h:397
PlayerSkills * skills
Definition: PlayerCharacter.h:406
BSTArray< TintMask * > * overlayTintMasks
Definition: PlayerCharacter.h:443
std::uint32_t unk3D8
Definition: PlayerCharacter.h:300
BSTArray< ActorHandle > actorsToDisplayOnTheHUDArray
Definition: PlayerCharacter.h:412
std::uint32_t sleepSeconds
Definition: PlayerCharacter.h:372
bool CenterOnCell(RE::TESObjectCELL *a_cell)
std::int8_t murder
Definition: PlayerCharacter.h:436
ImageSpaceModifierInstanceDOF * ironsightsDOFInstance
Definition: PlayerCharacter.h:345
BSTArray< BGSInstancedQuestObjective > objectives
Definition: PlayerCharacter.h:322
stl::enumeration< GrabbingType, std::uint32_t > grabType
Definition: PlayerCharacter.h:433
TESRace * race2
Definition: PlayerCharacter.h:446
std::uint32_t unk934
Definition: PlayerCharacter.h:389
AlchemyItem * pendingPoison
Definition: PlayerCharacter.h:394
DialoguePackage * aiConversationRunning
Definition: PlayerCharacter.h:338
std::uint32_t unk8E0
Definition: PlayerCharacter.h:371
TESClass * defaultClass
Definition: PlayerCharacter.h:390
RefHandle forceActivateRef
Definition: PlayerCharacter.h:361
TESForm * lastKnownGoodLocation
Definition: PlayerCharacter.h:399
BSTSmartPointer< BipedAnim > largeBiped
Definition: PlayerCharacter.h:373
std::uint64_t unkBD0
Definition: PlayerCharacter.h:459
float dropAngleMod
Definition: PlayerCharacter.h:404
NiPoint3 lastKnownGoodPosition
Definition: PlayerCharacter.h:307
std::int32_t numberofPickpocketWarnings
Definition: PlayerCharacter.h:341
BSTHashMap< UnkKey, UnkValue > unk598
Definition: PlayerCharacter.h:323
CombatGroup * combatGroup
Definition: PlayerCharacter.h:411
Data928 * unk928
Definition: PlayerCharacter.h:387
NiPointer< Actor > GetActorDoingPlayerCommand() const
float pickPocketWarningTimer
Definition: PlayerCharacter.h:342
virtual std::uint32_t GetNonViolentCrimeGoldValue(const TESFaction *a_faction) const
std::uint64_t unk9F0
Definition: PlayerCharacter.h:413
float yieldTimer
Definition: PlayerCharacter.h:417
BGSLocation * currentLocation
Definition: PlayerCharacter.h:424
float sortActorDistanceTimer
Definition: PlayerCharacter.h:384
NiTMap< std::uint32_t, std::uint8_t > randomDoorSpaceMap
Definition: PlayerCharacter.h:326
PlayerActionObject playerActionObjects[15]
Definition: PlayerCharacter.h:362
float sitHeadingDelta
Definition: PlayerCharacter.h:385
std::int64_t totalPlayingTime
Definition: PlayerCharacter.h:396
BSTArray< TintMask * > & GetTintList()
float grabObjectWeight
Definition: PlayerCharacter.h:367
float dynamicDOFFocusTime
Definition: PlayerCharacter.h:348
BSTArray< std::uint64_t > unkB50
Definition: PlayerCharacter.h:449
std::uint16_t padBDE
Definition: PlayerCharacter.h:466
NiPoint3 cachedVelocity
Definition: PlayerCharacter.h:309
virtual void Unk_12A(void)
std::uint64_t unkB70
Definition: PlayerCharacter.h:451
TESFaction * currentPrisonFaction
Definition: PlayerCharacter.h:354
std::int8_t perkCount
Definition: PlayerCharacter.h:437
virtual void Unk_12E(void)
BSTArray< void * > imageSpaceModifierAnims1
Definition: PlayerCharacter.h:319
bool HasActorDoingCommand() const
std::uint8_t unkBDA
Definition: PlayerCharacter.h:462
NiPointer< BSLight > firstPersonLight
Definition: PlayerCharacter.h:402
std::uint64_t unkB98
Definition: PlayerCharacter.h:457
float powerAttackTimer
Definition: PlayerCharacter.h:378
float GetDamage(InventoryEntryData *a_form)
float combatTimer
Definition: PlayerCharacter.h:416
std::int32_t unkB48
Definition: PlayerCharacter.h:447
TESImageSpaceModifier * unkAE0
Definition: PlayerCharacter.h:429
BSTArray< ProjectileHandle > runesCast
Definition: PlayerCharacter.h:318
~PlayerCharacter() override
DialoguePackage * closestConversation
Definition: PlayerCharacter.h:335
std::uint32_t unk924
Definition: PlayerCharacter.h:386
std::uint32_t unk63C
Definition: PlayerCharacter.h:329
void PlayPickupEvent(TESForm *a_item, TESForm *a_containerOwner, TESObjectREFR *a_containerRef, EventType a_eventType)
float encumberedTimer
Definition: PlayerCharacter.h:377
float lastDropAngleMod
Definition: PlayerCharacter.h:405
FlagBDB
Definition: PlayerCharacter.h:174
std::uint32_t teammateCount
Definition: PlayerCharacter.h:415
float stealWarningTimer
Definition: PlayerCharacter.h:340
std::uint32_t unk444
Definition: PlayerCharacter.h:305
std::uint8_t padB03
Definition: PlayerCharacter.h:439
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:423
AITimeStamp cachedVelocityTimeStamp
Definition: PlayerCharacter.h:425
std::uint32_t padB8C
Definition: PlayerCharacter.h:455
virtual std::uint32_t GetViolentCrimeGoldValue(const TESFaction *a_faction) const
std::int32_t amountStolenSold
Definition: PlayerCharacter.h:380
float unk49C
Definition: PlayerCharacter.h:310
NiPoint3 bulletAutoAim
Definition: PlayerCharacter.h:308
float GetArmorValue(InventoryEntryData *a_form)
NiPointer< NiNode > firstPerson3D
Definition: PlayerCharacter.h:374
GrabbingType
Definition: PlayerCharacter.h:154
std::uint64_t unkB80
Definition: PlayerCharacter.h:453
ObjectRefHandle grabbedObject
Definition: PlayerCharacter.h:366
std::uint32_t skillTrainingsThisLevel
Definition: PlayerCharacter.h:388
std::uint8_t unk730[0xA0]
Definition: PlayerCharacter.h:358
bool IsGrabbing() const
float greetTimer
Definition: PlayerCharacter.h:376
static PlayerCharacter * GetSingleton()
BSTArray< BSTTuple< NiPoint3, AITimeStamp > > velocityArray
Definition: PlayerCharacter.h:317
float commandTimer
Definition: PlayerCharacter.h:427
std::uint8_t unkA20[0xA0]
Definition: PlayerCharacter.h:421
float drawSheatheSafetyTimer
Definition: PlayerCharacter.h:419
float chaseTimer
Definition: PlayerCharacter.h:418
std::uint32_t pad724
Definition: PlayerCharacter.h:356
BGSTextureSet * complexion
Definition: PlayerCharacter.h:444
ImageSpaceModifierInstanceDOF * dynamicDOFInstance
Definition: PlayerCharacter.h:347
std::uint32_t unkADC
Definition: PlayerCharacter.h:428
BSTArray< void * > imageSpaceModifierAnims2
Definition: PlayerCharacter.h:320
stl::enumeration< FlagBDB, std::uint8_t > unkBDB
Definition: PlayerCharacter.h:463
BSTArray< BGSPerk * > perks
Definition: PlayerCharacter.h:314
stl::enumeration< FlagBDD, std::uint8_t > unkBDD
Definition: PlayerCharacter.h:465
std::uint16_t unk6FE
Definition: PlayerCharacter.h:351
stl::enumeration< ByCharGenFlag, std::uint8_t > byCharGenFlag
Definition: PlayerCharacter.h:438
float telekinesisDistance
Definition: PlayerCharacter.h:426
bool dynamicDOFFocused
Definition: PlayerCharacter.h:349
std::uint32_t unkA1C
Definition: PlayerCharacter.h:420
BSSoundHandle unk6A0
Definition: PlayerCharacter.h:333
PLAYER_TARGET_LOC queuedTargetLoc
Definition: PlayerCharacter.h:330
Crime * resistArrestCrime
Definition: PlayerCharacter.h:441
std::int32_t numberofStealWarnings
Definition: PlayerCharacter.h:339
void * unk728
Definition: PlayerCharacter.h:357
FlagBDC
Definition: PlayerCharacter.h:180
BSTSmallArray< hkRefPtr< bhkMouseSpringAction >, 4 > grabSpring
Definition: PlayerCharacter.h:365
FlagBDD
Definition: PlayerCharacter.h:189
BSTArray< TintMask * > tintMasks
Definition: PlayerCharacter.h:442
static constexpr auto FORMTYPE
Definition: PlayerCharacter.h:144
float eyeHeight
Definition: PlayerCharacter.h:375
EventType
Definition: PlayerCharacter.h:147
FlagBD9
Definition: PlayerCharacter.h:167
std::uint32_t unk6BC
Definition: PlayerCharacter.h:337
std::uint32_t unk990
Definition: PlayerCharacter.h:400
std::int64_t lastPlayingTimeUpdate
Definition: PlayerCharacter.h:395
BSTArray< BGSPerk * > standingStonePerks
Definition: PlayerCharacter.h:315
Definition: TESBoundObject.h:24
Definition: TESClass.h:88
Definition: TESFaction.h:120
Definition: TESForm.h:34
Definition: TESImageSpaceModifier.h:111
Definition: TESObjectCELL.h:102
Definition: TESObject.h:11
Definition: TESObjectREFR.h:105
Definition: TESRace.h:146
Definition: TESWorldSpace.h:116
Definition: PCH.h:216
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_PlayerCharacter
Definition: Offsets_RTTI.h:5718
ActorValue
Definition: ActorValues.h:6
PLAYER_ACTION
Definition: PlayerCharacter.h:51
AQUIRE_TYPE
Definition: BGSAddToPlayerInventoryEvent.h:11
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:198
BSTArray< UnkValue > unk18
Definition: PlayerCharacter.h:202
std::uint64_t unk30
Definition: PlayerCharacter.h:203
std::uint64_t unk40
Definition: PlayerCharacter.h:205
BSTArray< UnkValue > unk00
Definition: PlayerCharacter.h:201
std::uint64_t unk38
Definition: PlayerCharacter.h:204
float level
Definition: PlayerCharacter.h:246
float levelThreshold
Definition: PlayerCharacter.h:248
float xp
Definition: PlayerCharacter.h:247
Definition: PlayerCharacter.h:216
Skill
Definition: PlayerCharacter.h:218
@ kIllusion
Definition: PlayerCharacter.h:234
@ kAlchemy
Definition: PlayerCharacter.h:229
@ kSneak
Definition: PlayerCharacter.h:228
@ kEnchanting
Definition: PlayerCharacter.h:236
@ kLightArmor
Definition: PlayerCharacter.h:225
@ kArchery
Definition: PlayerCharacter.h:221
@ kSmithing
Definition: PlayerCharacter.h:223
@ kDestruction
Definition: PlayerCharacter.h:233
@ kPickpocket
Definition: PlayerCharacter.h:226
@ kLockpicking
Definition: PlayerCharacter.h:227
@ kTwoHanded
Definition: PlayerCharacter.h:220
@ kOneHanded
Definition: PlayerCharacter.h:219
@ kRestoration
Definition: PlayerCharacter.h:235
@ kConjuration
Definition: PlayerCharacter.h:232
@ kTotal
Definition: PlayerCharacter.h:237
@ kAlteration
Definition: PlayerCharacter.h:231
@ kBlock
Definition: PlayerCharacter.h:222
@ kSpeech
Definition: PlayerCharacter.h:230
@ kHeavyArmor
Definition: PlayerCharacter.h:224
Definition: PlayerCharacter.h:213
SkillData skills[Skill::kTotal]
Definition: PlayerCharacter.h:255
float xp
Definition: PlayerCharacter.h:253
float levelThreshold
Definition: PlayerCharacter.h:254
std::uint32_t legendaryLevels[Skill::kTotal]
Definition: PlayerCharacter.h:256
Definition: PlayerCharacter.h:210
Data * data
Definition: PlayerCharacter.h:263
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