CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
PlayerCharacter.h
Go to the documentation of this file.
1#pragma once
2
6#include "RE/B/BSTArray.h"
7#include "RE/B/BSTEvent.h"
8#include "RE/B/BSTHashMap.h"
9#include "RE/B/BSTList.h"
11#include "RE/B/BSTTuple.h"
12#include "RE/C/Character.h"
13#include "RE/C/Crime.h"
14#include "RE/F/FormTypes.h"
15#include "RE/H/hkRefPtr.h"
16#include "RE/N/NiPoint3.h"
17#include "RE/N/NiSmartPointer.h"
18#include "RE/N/NiTMap.h"
20#include "RE/T/TESObjectWEAP.h"
21#include "RE/T/TESQuest.h"
22
23namespace RE
24{
25 enum class AQUIRE_TYPE;
26
27 class Actor;
28 class BGSInstancedQuestObjective;
29 class BGSLocation;
30 class bhkMouseSpringAction;
31 class BipedAnim;
32 class BSFadeNode;
33 class BSLight;
34 class CombatGroup;
35 class ImageSpaceModifierInstanceDOF;
36 class InventoryEntryData;
37 class MenuModeChangeEvent;
38 class MenuOpenCloseEvent;
39 class NiAVObject;
40 class NiNode;
41 class ObjectListItem;
42 class TESObject;
43 class TESObjectREFR;
44 class TintMask;
45 class UserEventEnabledEvent;
46 struct BGSActorCellEvent;
47 struct BGSActorDeathEvent;
48 struct PerkRankData;
49 struct PositionPlayerEvent;
50 struct TESQuestStageItem;
51 struct TESTrackedStatsEvent;
52
74
76 {
77 public:
78 // members
79 float violentCur; // 00
80 float nonViolentCur; // 04
81 float nonViolentInfamy; // 08
82 float violentInfamy; // 0C
83 };
84 static_assert(sizeof(CrimeGoldStruct) == 0x10);
85
87 {
88 public:
89 // members
90 std::int32_t unwitnessed; // 0
91 std::int32_t witnessed; // 4
92 };
93 static_assert(sizeof(StolenItemValueStruct) == 0x8);
94
96 {
97 public:
98 // members
99 std::uint16_t friendCounts[4]; // 0
100 };
101 static_assert(sizeof(FriendshipFactionsStruct) == 0x8);
102
104 {
105 public:
106 using ArrivalFunc_t = void(std::int64_t);
107
108 // members
114 std::int64_t arrivalFuncData; // 30
117 bool resetWeather; // 40
118 bool allowAutoSave; // 41
119 bool isValid; // 42
120 std::uint8_t pad43; // 43
121 std::uint32_t pad44; // 44
122 };
123 static_assert(sizeof(PLAYER_TARGET_LOC) == 0x48);
124
126 {
127 public:
128 // members
129 float timer; // 0
132 };
133 static_assert(sizeof(PlayerActionObject) == 0xC);
134
136 public Character, // 000
137 public BSTEventSource<BGSActorCellEvent>, // 2D0
138 public BSTEventSource<BGSActorDeathEvent>, // 328
139 public BSTEventSource<PositionPlayerEvent>, // 380
140 public BSTEventSink<MenuOpenCloseEvent>, // 2B0
141 public BSTEventSink<MenuModeChangeEvent>, // 2B8
142 public BSTEventSink<UserEventEnabledEvent>, // 2C0
143 public BSTEventSink<TESTrackedStatsEvent> // 2C8
144 {
145 public:
146 inline static constexpr auto RTTI = RTTI_PlayerCharacter;
147 inline static constexpr auto VTABLE = VTABLE_PlayerCharacter;
148 inline static constexpr auto FORMTYPE = FormType::ActorCharacter;
149
150 enum class EventType
151 {
152 kThief = 3,
153 kContainer = 5,
154 kDeadBody = 6
155 };
156
157 enum class GrabbingType
158 {
159 kNone = 0,
160 kNormal,
162 };
163
164 enum class ByCharGenFlag
165 {
166 kNone = 0,
167 kDisableSaving = 1 << 0,
168 kHandsBound = 1 << 2
169 };
170
172 {
173 // members
174 bool travelUseDoor: 1; // 0:0 - Guess from FO4 given matching logic for Character::WarpFollowers
175 bool fastTraveling: 1; // 0:1 - Set and cleared in the same fast travel function
176 bool overAutoAimTarget: 1; // 0:2 - Crosshair over hostile actor AND equipped WEAPON_TYPE bow, staff, or crossbow, must have weapon out to be accurate
177 bool showQuestItems: 1; // 0:3 - Not used by game, confirmed with console command `SetShowQuestItems`
178 bool unk0_4: 1; // 0:4 - Unused?
179 bool hasQueuedEquipAnim: 1; // 0:5 - Set true in `OnItemEquipped` if a_playAnim && isPaused, false once out of menu
180 bool escaping: 1; // 0:6 - Is Escaping from jail
181 bool forceQuestTargetRepath: 1; // 0:7 - Updates quest target in compass
182 bool unk1_0: 1; // 1:0
183 bool unk1_1: 1; // 1:1
184 bool sleeping: 1; // 1:2
185 bool unk1_3: 1; // 1:3
186 bool unk1_4: 1; // 1:4
187 bool unk1_5: 1; // 1:5
188 bool greetingPlayer: 1; // 1:6 - NPC greeting player
189 bool unk1_7: 1; // 1:7
190 bool unk2_0: 1; // 2:0
191 bool aiControlledToPos: 1; // 2:1 - Guess from FO4, confirmed aiControlled related
192 bool aiControlledFromPos: 1; // 2:2 - Guess from FO4, confirmed aiControlled related
193 bool aiControlledPackage: 1; // 2:3 - Guess from FO4, confirmed aiControlled related
194 bool returnToLastKnownGoodPosition: 1; // 2:4 - return to lastKnownGoodPosition on next Update
195 bool isBeingChased: 1; // 2:5 - unused along with chaseTimer
196 bool unk2_6: 1; // 2:6
197 bool unk2_7: 1; // 2:7
198 bool isInThirdPersonMode: 1; // 3:0
199 bool unk3_1: 1; // 3:1
200 bool unk3_2: 1; // 3:2
201 bool unk3_3: 1; // 3:3
202 bool target3DDistant: 1; // 3:4 - Distance from object in crosshair > 1000
203 bool isInCombat: 1; // 3:5
204 bool attemptedYieldInCurrentCombat: 1; // 3:6 - Set when yielding to guard for arrest dialogue, prevents multiple arrest dialogues
205 bool unk3_7: 1; // 3:7
206 bool isLoading: 1; // 4:0 - Is player loading a new area
207 bool shouldUpdateCrosshair: 1; // 4:1 - If forced off without letting Skyrim update this, crosshair UI won't update,
208 bool unk4_2: 1; // 4:2
209 bool healthTutorialShown: 1; // 4:3
210 bool magickaTutorialShown: 1; // 4:4
211 bool staminaTutorialShown: 1; // 4:5
212 bool goToJailQueued: 1; // 4:6 - Briefly set
213 bool unk4_7: 1; // 4:7
214 bool isSprinting: 1; // 5:0
215 bool isSungazing: 1; // 5:1 - Is staring at the sun
217 bool everModded: 1; // 5:3
218 bool servingJailTime: 1; // 5:4 - Briefly set
219 bool pad5_5: 3; // 5:5
220 std::uint16_t pad6; // 6
221 };
222 static_assert(sizeof(PlayerFlags) == 0x8);
223
225 {
226 public:
227 // members
230 };
231 static_assert(sizeof(QueuedWeapon) == 0x10);
232
233 struct TeleportPath // TODO: Should not be in Player class. Gets used in Pathing and other non-player areas
234 {
235 public:
237 {
238 public:
239 // members
240 bool unk00; // 00 - Determines whether to use worldspace or cell?
241 char pad01[7]; // 01
244 };
245 static_assert(sizeof(Unk00Data) == 0x18);
246
248 {
249 public:
250 // members
252 std::uint64_t unk08; // 08
253 std::uint64_t unk10; // 10
254 };
255 static_assert(sizeof(Unk18Data) == 0x18);
256
257 // members
260 std::uint64_t unk30; // 30
261 std::uint64_t unk38; // 38
262 std::uint64_t unk40; // 40
263 };
264 static_assert(sizeof(TeleportPath) == 0x48);
265
275 static_assert(sizeof(PreTransformationData) == 0x40);
276
278 {
279 public:
280 struct Data
281 {
282 public:
309
311 {
312 public:
313 // members
314 float level; // 0
315 float xp; // 4
316 float levelThreshold; // 8
317 };
318 static_assert(sizeof(SkillData) == 0xC);
319
320 // members
321 float xp; // 000
322 float levelThreshold; // 004
323 SkillData skills[Skill::kTotal]; // 008
324 std::uint32_t legendaryLevels[Skill::kTotal]; // 0E0
325 };
326 static_assert(sizeof(Data) == 0x128);
327
328 void AdvanceLevel(bool a_addThreshold);
329
330 // members
331 Data* data; // 0
332 };
333 static_assert(sizeof(PlayerSkills) == 0x8);
334
335 ~PlayerCharacter() override; // 000
336
337 // override
338 void RemoveWeapon(BIPED_OBJECT equipIndex) override; // 082
339
340 // add
341 virtual void Unk_12A(void); // 12A
342 virtual std::uint32_t GetViolentCrimeGoldValue(const TESFaction* a_faction) const; // 12B
343 virtual std::uint32_t GetNonViolentCrimeGoldValue(const TESFaction* a_faction) const; // 12C
344 virtual void ClearAllCrimeGold(TESFaction* a_faction); // 12D
345 virtual void Unk_12E(void); // 12E - { return 0; }
346
348 static bool IsGodMode();
349
351 void AddPlayerAddItemEvent(TESObject* a_object, TESForm* a_owner, TESObjectREFR* a_container, AQUIRE_TYPE a_type);
352 void AddSkillExperience(ActorValue a_skill, float a_experience);
353 bool AttemptPickpocket(TESObjectREFR* a_containerRef, InventoryEntryData* a_entry, std::int32_t a_number, bool a_fromContainer = true);
354 bool CenterOnCell(const char* a_cellName);
356 bool CheckCast(MagicItem* a_spell, Effect* a_effect, MagicSystem::CannotCastReason& a_reason);
363 std::int32_t GetItemCount(TESBoundObject* a_object);
364 std::uint32_t GetNumTints(std::uint32_t a_tintType);
365 TintMask* GetOverlayTintMask(TintMask* a_original);
367 TintMask* GetTintMask(std::uint32_t a_tintType, std::uint32_t a_index);
369 bool IsGrabbing() const;
371 void PlayPickupEvent(TESForm* a_item, TESForm* a_containerOwner, TESObjectREFR* a_containerRef, EventType a_eventType);
372 void SetAIDriven(bool a_enable);
373 void SetEscaping(bool a_flag, bool a_escaped);
376
377 template <class T>
379 {
380 return static_cast<BSTEventSource<T>*>(this);
381 }
382
383 template <class T>
384 inline void AddEventSink(BSTEventSink<T>* a_sink)
385 {
386 GetEventSource<T>()->AddEventSink(a_sink);
387 }
388
389 // members
394 std::uint32_t pad444; // 444
399 std::uint32_t pad49C; // 49C
400 BGSNote* unusedNote; // 4A0 - Used for unimplemented formtype BGSNote
401 BGSNote* unusedNote2; // 4A8 - Used for unimplemented formtype BGSNote
418 std::uint32_t pad63C; // 63C
420 BSSoundHandle unusedSound; // 688 - Only place it is set is an unused function
423 std::uint32_t pad6AC; // 6AC
425 std::uint32_t unk6B8; // 6B8
426 std::uint32_t unk6BC; // 6BC
428 std::int32_t numberofStealWarnings; // 6C8
429 float stealWarningTimer; // 6CC
430 std::int32_t numberofPickpocketWarnings; // 6D0
433 std::uint32_t pad6DC; // 6DC
438 bool dynamicDOFFocused; // 6FC
439 std::uint8_t unk6FD; // 6FD
440 std::uint16_t unk6FE; // 6FE
444 std::int32_t jailSentence; // 720
445 std::uint32_t pad724; // 724
446 void* unk728; // 728 - smart ptr
447 QueuedWeapon queuedWeaponAttachs[WEAPON_TYPE::kTotal]; // 730 - Weapons are attached on next PlayerCharacter::Update
448 std::int32_t vampireFeedDetection; // 7D0
449 std::uint32_t mapMarkerIterator; // 7D4
456 float grabObjectWeight; // 8CC
457 float grabDistance; // 8D0
458 float unk8D4; // 8D4
459 std::uint64_t unk8D8; // 8D8
460 std::uint32_t unk8E0; // 8E0 - Unused?
461 std::uint32_t sleepSeconds; // 8E4
464 float eyeHeight; // 8F8
465 float greetTimer; // 8FC
466 float encumberedTimer; // 900
467 float powerAttackTimer; // 904
468 std::int32_t hoursToSleep; // 908
469 std::int32_t amountStolenSold; // 90C
470 std::uint32_t valueStolen; // 910
474 float sitHeadingDelta; // 920
475 ObjectRefHandle playerMapMarker; // 924 - Custom marker placed by player in map
476 TeleportPath* playerMarkerPath; // 928 - Educated guess from FO4
477 std::uint32_t skillTrainingsThisLevel; // 930
478 std::uint32_t unk934; // 934
480 std::uint64_t unk940; // 940 - Unused?
481 std::uint32_t crimeCounts[PackageNS::CRIME_TYPES::kTotal]; // 948
482 std::uint32_t unk964; // 964
484 std::int64_t lastPlayingTimeUpdate; // 970
485 std::int64_t totalPlayingTime; // 978
486 std::int32_t characterSeed; // 980
487 std::uint32_t unk984; // 984
489 std::uint32_t unk990; // 990
490 std::uint32_t unk994; // 994
493 float dropAngleMod; // 9A8
494 float lastDropAngleMod; // 9AC
498 std::uint64_t unk9C0; // 9C0
502 TESForm* advanceObject; // 9F0 - Part of AE8 and AEC, the object advancing the skill (eg telekinesis spell for alteration skill)
504 std::uint32_t teammateCount; // A08
505 float combatTimer; // A0C
506 float yieldTimer; // A10
507 float chaseTimer; // A14
509 std::uint32_t unkA1C; // A1C
510 std::uint8_t unkA20[0xA0]; // A20 - Unused?
511 std::uint32_t unkAC0; // AC0
512 std::uint32_t unkAC4; // AC4
516 float commandTimer; // AD8
517 float sunGazeTimer; // ADC - Upon sungazing, counts down from 0.5 seconds. When 0, applies imagespace modifier
519 ActorValue advanceSkill; // AE8 - advance values set, then cleared in PlayerSkills::ModSkillPoints surronding ApplyPerkEntry
520 std::uint32_t advanceAction; // AEC - Part of AE8 and 9F0
523 std::int32_t difficulty; // AF8
525 std::int8_t murder; // B00
526 std::int8_t perkCount; // B01
528 std::uint8_t padB03; // B03
529 std::uint32_t unkB04; // B04
535 TESRace* race2; // B40
536 std::int32_t unkB48; // B48
537 std::uint32_t padB4C; // B4C
539 std::uint64_t unkB68; // B68
540 std::uint64_t unkB70; // B70
541 std::uint64_t unkB78; // B78
542 std::uint64_t unkB80; // B80
543 std::int32_t unkB88; // B88
544 std::uint32_t padB8C; // B8C
545 std::uint64_t unkB90; // B90
548 PreTransformationData* preTransformationData; // BD0 - Stores equipped data when transforming to vampire/werewolf, cleared when transforming back to human
550
551 private:
552 bool CenterOnCell_Impl(const char* a_cellName, RE::TESObjectCELL* a_cell);
553 };
554#ifndef SKYRIM_SUPPORT_AE
555 static_assert(sizeof(PlayerCharacter) == 0xBE0);
556#else
557 static_assert(sizeof(PlayerCharacter) == 0xBE8);
558#endif
559}
Definition EnumSet.h:9
Definition AlchemyItem.h:24
Definition BGSLocation.h:68
Definition BGSNote.h:19
Definition BGSTextureSet.h:16
Definition BSTList.h:10
Definition BSAtomic.h:92
Definition BSTArray.h:378
Definition BSTEvent.h:185
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:9
Definition InventoryEntryData.h:15
Definition MagicItem.h:30
Definition NiPoint3.h:6
Definition NiSmartPointer.h:9
Definition NiTMap.h:10
Definition PlayerCharacter.h:104
std::uint32_t pad44
Definition PlayerCharacter.h:121
NiPoint3 angle
Definition PlayerCharacter.h:112
TESObjectCELL * interior
Definition PlayerCharacter.h:110
NiPoint3 location
Definition PlayerCharacter.h:111
bool resetWeather
Definition PlayerCharacter.h:117
bool isValid
Definition PlayerCharacter.h:119
bool allowAutoSave
Definition PlayerCharacter.h:118
RefHandle fastTravelMarker
Definition PlayerCharacter.h:116
std::int64_t arrivalFuncData
Definition PlayerCharacter.h:114
void(std::int64_t) ArrivalFunc_t
Definition PlayerCharacter.h:106
TESWorldSpace * world
Definition PlayerCharacter.h:109
RefHandle furnitureRef
Definition PlayerCharacter.h:115
ArrivalFunc_t * arrivalFunc
Definition PlayerCharacter.h:113
std::uint8_t pad43
Definition PlayerCharacter.h:120
Definition PlayerCharacter.h:144
BGSNote * unusedNote2
Definition PlayerCharacter.h:401
PreTransformationData * preTransformationData
Definition PlayerCharacter.h:548
BSTHashMap< const TESFaction *, CrimeGoldStruct > crimeGoldMap
Definition PlayerCharacter.h:391
std::uint64_t unkB90
Definition PlayerCharacter.h:545
BSSimpleList< TESQuestStageItem * > questLog
Definition PlayerCharacter.h:410
BSTSmallArray< void *, 4 > unkBA0
Definition PlayerCharacter.h:547
BSSimpleList< ObjectRefHandle > droppedRefList
Definition PlayerCharacter.h:414
std::uint32_t unk984
Definition PlayerCharacter.h:487
float grabDistance
Definition PlayerCharacter.h:457
NiPointer< BSLight > thirdPersonLight
Definition PlayerCharacter.h:492
TESBoundObject * lastOneHandItems[2]
Definition PlayerCharacter.h:503
static bool IsGodMode()
std::uint32_t unk964
Definition PlayerCharacter.h:482
BSTArray< PerkRankData * > addedPerks
Definition PlayerCharacter.h:402
BSTHashMap< UnkKey, UnkValue > currentSayOnceInfosMap
Definition PlayerCharacter.h:413
ObjectRefHandle commandWaitMarker
Definition PlayerCharacter.h:393
TeleportPath * playerMarkerPath
Definition PlayerCharacter.h:476
BSSoundHandle magicFailureSound
Definition PlayerCharacter.h:421
NiPoint3 dynamicDOFLastAngle
Definition PlayerCharacter.h:441
std::int32_t vampireFeedDetection
Definition PlayerCharacter.h:448
BSTHashMap< const TESFaction *, FriendshipFactionsStruct > factionOwnerFriendsMap
Definition PlayerCharacter.h:395
std::uint64_t unkB78
Definition PlayerCharacter.h:541
NiPoint3 exteriorPosition
Definition PlayerCharacter.h:417
NiPointer< NiAVObject > targeted3D
Definition PlayerCharacter.h:499
std::uint32_t mapMarkerIterator
Definition PlayerCharacter.h:449
QueuedWeapon queuedWeaponAttachs[WEAPON_TYPE::kTotal]
Definition PlayerCharacter.h:447
std::uint32_t padB4C
Definition PlayerCharacter.h:537
float unk8D4
Definition PlayerCharacter.h:458
std::uint64_t unkB68
Definition PlayerCharacter.h:539
std::int32_t hoursToSleep
Definition PlayerCharacter.h:468
ActorHandle autoAimActor
Definition PlayerCharacter.h:496
void AddEventSink(BSTEventSink< T > *a_sink)
Definition PlayerCharacter.h:384
std::int32_t difficulty
Definition PlayerCharacter.h:523
TESRace * charGenRace
Definition PlayerCharacter.h:534
ActorHandle lastRiddenMount
Definition PlayerCharacter.h:471
std::uint32_t unkB04
Definition PlayerCharacter.h:529
ByCharGenFlag
Definition PlayerCharacter.h:165
static constexpr auto RTTI
Definition PlayerCharacter.h:146
TintMask * GetOverlayTintMask(TintMask *a_original)
std::uint32_t crimeCounts[PackageNS::CRIME_TYPES::kTotal]
Definition PlayerCharacter.h:481
BSTHashMap< const TESFaction *, StolenItemValueStruct > stolenItemValueMap
Definition PlayerCharacter.h:392
std::uint32_t valueStolen
Definition PlayerCharacter.h:470
PLAYER_ACTION mostRecentAction
Definition PlayerCharacter.h:452
std::int32_t jailSentence
Definition PlayerCharacter.h:444
bool CenterOnCell(const char *a_cellName)
NiPointer< TESObjectREFR > GetGrabbedRef()
RefHandle unk9BC
Definition PlayerCharacter.h:497
ActorHandle actorDoingPlayerCommand
Definition PlayerCharacter.h:453
std::uint8_t unk6FD
Definition PlayerCharacter.h:439
BSTArray< ObjectRefHandle > currentMapMarkers
Definition PlayerCharacter.h:405
BSSpinLock questTargetsLock
Definition PlayerCharacter.h:390
AITimeStamp warnToLeaveTimeStamp
Definition PlayerCharacter.h:432
std::uint64_t unk8D8
Definition PlayerCharacter.h:459
BSSoundHandle shoutFailureSound
Definition PlayerCharacter.h:422
std::uint32_t GetNumTints(std::uint32_t a_tintType)
ImageSpaceModifierInstanceDOF * vatsDOFInstance
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:511
NiPoint3 dynamicDOFLastPosition
Definition PlayerCharacter.h:442
std::uint32_t pad6AC
Definition PlayerCharacter.h:423
std::int32_t unkB88
Definition PlayerCharacter.h:543
std::uint32_t pad6DC
Definition PlayerCharacter.h:433
BSTHashMap< TESQuest *, BSTArray< TESQuestTarget * > * > questTargets
Definition PlayerCharacter.h:412
std::uint32_t unk994
Definition PlayerCharacter.h:490
std::uint32_t unk6B8
Definition PlayerCharacter.h:425
TESForm * advanceObject
Definition PlayerCharacter.h:502
REX::EnumSet< ByCharGenFlag, std::uint8_t > byCharGenFlag
Definition PlayerCharacter.h:527
std::uint64_t unk9C0
Definition PlayerCharacter.h:498
bool AttemptPickpocket(TESObjectREFR *a_containerRef, InventoryEntryData *a_entry, std::int32_t a_number, bool a_fromContainer=true)
ActorHandle lightTarget
Definition PlayerCharacter.h:472
std::uint64_t unk940
Definition PlayerCharacter.h:480
TESWorldSpace * cachedWorldSpace
Definition PlayerCharacter.h:416
virtual void ClearAllCrimeGold(TESFaction *a_faction)
std::int32_t characterSeed
Definition PlayerCharacter.h:486
void RemoveWeapon(BIPED_OBJECT equipIndex) override
PlayerSkills * skills
Definition PlayerCharacter.h:495
BSTArray< TintMask * > * overlayTintMasks
Definition PlayerCharacter.h:532
BSTArray< ActorHandle > actorsToDisplayOnTheHUDArray
Definition PlayerCharacter.h:501
std::uint32_t sleepSeconds
Definition PlayerCharacter.h:461
std::int8_t murder
Definition PlayerCharacter.h:525
ImageSpaceModifierInstanceDOF * ironsightsDOFInstance
Definition PlayerCharacter.h:434
BSTArray< BGSInstancedQuestObjective > objectives
Definition PlayerCharacter.h:411
BSSoundHandle unusedSound
Definition PlayerCharacter.h:420
TESRace * race2
Definition PlayerCharacter.h:535
std::uint32_t unk934
Definition PlayerCharacter.h:478
AlchemyItem * pendingPoison
Definition PlayerCharacter.h:483
DialoguePackage * aiConversationRunning
Definition PlayerCharacter.h:427
std::uint32_t unk8E0
Definition PlayerCharacter.h:460
TESClass * defaultClass
Definition PlayerCharacter.h:479
RefHandle forceActivateRef
Definition PlayerCharacter.h:450
TESForm * lastKnownGoodLocation
Definition PlayerCharacter.h:488
BSTSmartPointer< BipedAnim > largeBiped
Definition PlayerCharacter.h:462
float dropAngleMod
Definition PlayerCharacter.h:493
NiPoint3 lastKnownGoodPosition
Definition PlayerCharacter.h:396
void SetAIDriven(bool a_enable)
std::int32_t numberofPickpocketWarnings
Definition PlayerCharacter.h:430
CombatGroup * combatGroup
Definition PlayerCharacter.h:500
NiPointer< Actor > GetActorDoingPlayerCommand() const
REX::EnumSet< DEFAULT_OBJECT, std::int32_t > animationObjectAction
Definition PlayerCharacter.h:521
float pickPocketWarningTimer
Definition PlayerCharacter.h:431
virtual std::uint32_t GetNonViolentCrimeGoldValue(const TESFaction *a_faction) const
bool CenterOnCell(TESObjectCELL *a_cell)
float yieldTimer
Definition PlayerCharacter.h:506
BGSLocation * currentLocation
Definition PlayerCharacter.h:513
float sortActorDistanceTimer
Definition PlayerCharacter.h:473
NiTMap< std::uint32_t, std::uint8_t > randomDoorSpaceMap
Definition PlayerCharacter.h:415
PlayerActionObject playerActionObjects[15]
Definition PlayerCharacter.h:451
float sitHeadingDelta
Definition PlayerCharacter.h:474
std::int64_t totalPlayingTime
Definition PlayerCharacter.h:485
BSTArray< TintMask * > & GetTintList()
float grabObjectWeight
Definition PlayerCharacter.h:456
float dynamicDOFFocusTime
Definition PlayerCharacter.h:437
BSTArray< std::uint64_t > unkB50
Definition PlayerCharacter.h:538
NiPoint3 cachedVelocity
Definition PlayerCharacter.h:398
virtual void Unk_12A(void)
std::uint64_t unkB70
Definition PlayerCharacter.h:540
TESFaction * currentPrisonFaction
Definition PlayerCharacter.h:443
std::int8_t perkCount
Definition PlayerCharacter.h:526
virtual void Unk_12E(void)
BSTArray< void * > imageSpaceModifierAnims1
Definition PlayerCharacter.h:408
bool HasActorDoingCommand() const
NiPointer< BSLight > firstPersonLight
Definition PlayerCharacter.h:491
float powerAttackTimer
Definition PlayerCharacter.h:467
float GetDamage(InventoryEntryData *a_form)
float combatTimer
Definition PlayerCharacter.h:505
std::int32_t unkB48
Definition PlayerCharacter.h:536
std::uint32_t pad444
Definition PlayerCharacter.h:394
BSTArray< ProjectileHandle > runesCast
Definition PlayerCharacter.h:407
~PlayerCharacter() override
DialoguePackage * closestConversation
Definition PlayerCharacter.h:424
void PlayPickupEvent(TESForm *a_item, TESForm *a_containerOwner, TESObjectREFR *a_containerRef, EventType a_eventType)
float encumberedTimer
Definition PlayerCharacter.h:466
float lastDropAngleMod
Definition PlayerCharacter.h:494
void SetEscaping(bool a_flag, bool a_escaped)
std::uint32_t teammateCount
Definition PlayerCharacter.h:504
std::uint32_t pad49C
Definition PlayerCharacter.h:399
std::uint32_t pad63C
Definition PlayerCharacter.h:418
float stealWarningTimer
Definition PlayerCharacter.h:429
std::uint8_t padB03
Definition PlayerCharacter.h:528
TESImageSpaceModifier * sunGazeImageSpaceModifier
Definition PlayerCharacter.h:518
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:512
AITimeStamp cachedVelocityTimeStamp
Definition PlayerCharacter.h:514
std::uint32_t padB8C
Definition PlayerCharacter.h:544
virtual std::uint32_t GetViolentCrimeGoldValue(const TESFaction *a_faction) const
std::int32_t amountStolenSold
Definition PlayerCharacter.h:469
ActorHandle assumedIdentity
Definition PlayerCharacter.h:524
REX::EnumSet< GrabbingType, std::uint32_t > grabType
Definition PlayerCharacter.h:522
NiPoint3 bulletAutoAim
Definition PlayerCharacter.h:397
ObjectRefHandle playerMapMarker
Definition PlayerCharacter.h:475
float GetArmorValue(InventoryEntryData *a_form)
NiPointer< NiNode > firstPerson3D
Definition PlayerCharacter.h:463
GrabbingType
Definition PlayerCharacter.h:158
std::uint64_t unkB80
Definition PlayerCharacter.h:542
static constexpr auto VTABLE
Definition PlayerCharacter.h:147
ObjectRefHandle grabbedObject
Definition PlayerCharacter.h:455
std::uint32_t skillTrainingsThisLevel
Definition PlayerCharacter.h:477
bool IsGrabbing() const
float greetTimer
Definition PlayerCharacter.h:465
float sunGazeTimer
Definition PlayerCharacter.h:517
static PlayerCharacter * GetSingleton()
BSTArray< BSTTuple< NiPoint3, AITimeStamp > > velocityArray
Definition PlayerCharacter.h:406
float commandTimer
Definition PlayerCharacter.h:516
void PlayMagicFailureSound(MagicSystem::SpellType a_spellType)
std::uint8_t unkA20[0xA0]
Definition PlayerCharacter.h:510
float drawSheatheSafetyTimer
Definition PlayerCharacter.h:508
float chaseTimer
Definition PlayerCharacter.h:507
std::uint32_t pad724
Definition PlayerCharacter.h:445
BGSTextureSet * complexion
Definition PlayerCharacter.h:533
ImageSpaceModifierInstanceDOF * dynamicDOFInstance
Definition PlayerCharacter.h:436
BSTArray< void * > imageSpaceModifierAnims2
Definition PlayerCharacter.h:409
ActorValue advanceSkill
Definition PlayerCharacter.h:519
std::uint32_t advanceAction
Definition PlayerCharacter.h:520
BSTArray< BGSPerk * > perks
Definition PlayerCharacter.h:403
std::uint16_t unk6FE
Definition PlayerCharacter.h:440
float telekinesisDistance
Definition PlayerCharacter.h:515
bool dynamicDOFFocused
Definition PlayerCharacter.h:438
InventoryEntryData * temperingItem
Definition PlayerCharacter.h:546
std::uint32_t unkA1C
Definition PlayerCharacter.h:509
bool CheckCast(MagicItem *a_spell, Effect *a_effect, MagicSystem::CannotCastReason &a_reason)
PLAYER_TARGET_LOC queuedTargetLoc
Definition PlayerCharacter.h:419
Crime * resistArrestCrime
Definition PlayerCharacter.h:530
std::int32_t numberofStealWarnings
Definition PlayerCharacter.h:428
void * unk728
Definition PlayerCharacter.h:446
BSTSmallArray< hkRefPtr< bhkMouseSpringAction >, 4 > grabSpring
Definition PlayerCharacter.h:454
BSTEventSource< T > * GetEventSource()
Definition PlayerCharacter.h:378
BGSNote * unusedNote
Definition PlayerCharacter.h:400
BSTArray< TintMask * > tintMasks
Definition PlayerCharacter.h:531
static constexpr auto FORMTYPE
Definition PlayerCharacter.h:148
float eyeHeight
Definition PlayerCharacter.h:464
EventType
Definition PlayerCharacter.h:151
PlayerFlags playerFlags
Definition PlayerCharacter.h:549
std::uint32_t unk6BC
Definition PlayerCharacter.h:426
std::uint32_t unk990
Definition PlayerCharacter.h:489
std::int64_t lastPlayingTimeUpdate
Definition PlayerCharacter.h:484
std::int32_t GetItemCount(TESBoundObject *a_object)
BSTArray< BGSPerk * > standingStonePerks
Definition PlayerCharacter.h:404
Definition TESBoundObject.h:24
Definition TESClass.h:88
Definition TESFaction.h:120
Definition TESForm.h:36
Definition TESImageSpaceModifier.h:111
Definition TESObjectCELL.h:115
Definition TESObjectREFR.h:114
Definition TESObjectWEAP.h:79
Definition TESObject.h:11
Definition TESRace.h:146
Definition TESWorldSpace.h:118
SpellType
Definition MagicSystem.h:64
CannotCastReason
Definition MagicSystem.h:13
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:54
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
BIPED_OBJECT
Definition BipedObjects.h:8
Definition BSSoundHandle.h:10
Definition PlayerCharacter.h:76
float nonViolentCur
Definition PlayerCharacter.h:80
float violentInfamy
Definition PlayerCharacter.h:82
float nonViolentInfamy
Definition PlayerCharacter.h:81
float violentCur
Definition PlayerCharacter.h:79
Definition Crime.h:35
Definition Effect.h:11
Definition PlayerCharacter.h:96
std::uint16_t friendCounts[4]
Definition PlayerCharacter.h:99
Definition PlayerCharacter.h:126
REX::EnumSet< PLAYER_ACTION, std::uint32_t > next
Definition PlayerCharacter.h:131
RefHandle refObj
Definition PlayerCharacter.h:130
float timer
Definition PlayerCharacter.h:129
Definition PlayerCharacter.h:172
bool everModded
Definition PlayerCharacter.h:217
bool goToJailQueued
Definition PlayerCharacter.h:212
bool unk1_4
Definition PlayerCharacter.h:186
bool unk3_3
Definition PlayerCharacter.h:201
bool unk2_0
Definition PlayerCharacter.h:190
std::uint16_t pad6
Definition PlayerCharacter.h:220
bool isSungazing
Definition PlayerCharacter.h:215
bool travelUseDoor
Definition PlayerCharacter.h:174
bool aiControlledFromPos
Definition PlayerCharacter.h:192
bool aiControlledPackage
Definition PlayerCharacter.h:193
bool unk1_0
Definition PlayerCharacter.h:182
bool unk4_7
Definition PlayerCharacter.h:213
bool unk1_1
Definition PlayerCharacter.h:183
bool aiControlledToPos
Definition PlayerCharacter.h:191
bool unk3_2
Definition PlayerCharacter.h:200
bool unk0_4
Definition PlayerCharacter.h:178
bool pad5_5
Definition PlayerCharacter.h:219
bool unk1_3
Definition PlayerCharacter.h:185
bool magickaTutorialShown
Definition PlayerCharacter.h:210
bool escaping
Definition PlayerCharacter.h:180
bool unk2_7
Definition PlayerCharacter.h:197
bool isInThirdPersonMode
Definition PlayerCharacter.h:198
bool unk4_2
Definition PlayerCharacter.h:208
bool attemptedYieldInCurrentCombat
Definition PlayerCharacter.h:204
bool greetingPlayer
Definition PlayerCharacter.h:188
bool target3DDistant
Definition PlayerCharacter.h:202
bool returnToLastKnownGoodPosition
Definition PlayerCharacter.h:194
bool unk2_6
Definition PlayerCharacter.h:196
bool shouldUpdateCrosshair
Definition PlayerCharacter.h:207
bool unk3_1
Definition PlayerCharacter.h:199
bool healthTutorialShown
Definition PlayerCharacter.h:209
bool forceQuestTargetRepath
Definition PlayerCharacter.h:181
bool fastTraveling
Definition PlayerCharacter.h:175
bool unk1_5
Definition PlayerCharacter.h:187
bool sleeping
Definition PlayerCharacter.h:184
bool overAutoAimTarget
Definition PlayerCharacter.h:176
bool isInCombat
Definition PlayerCharacter.h:203
bool showQuestItems
Definition PlayerCharacter.h:177
bool servingJailTime
Definition PlayerCharacter.h:218
bool isLoading
Definition PlayerCharacter.h:206
bool isSprinting
Definition PlayerCharacter.h:214
bool unk3_7
Definition PlayerCharacter.h:205
bool unk1_7
Definition PlayerCharacter.h:189
bool hasQueuedEquipAnim
Definition PlayerCharacter.h:179
bool isBeingChased
Definition PlayerCharacter.h:195
bool dragonRideTargetLocked
Definition PlayerCharacter.h:216
bool staminaTutorialShown
Definition PlayerCharacter.h:211
float level
Definition PlayerCharacter.h:314
float levelThreshold
Definition PlayerCharacter.h:316
float xp
Definition PlayerCharacter.h:315
Definition PlayerCharacter.h:284
Skill
Definition PlayerCharacter.h:286
@ kIllusion
Definition PlayerCharacter.h:302
@ kAlchemy
Definition PlayerCharacter.h:297
@ kSneak
Definition PlayerCharacter.h:296
@ kEnchanting
Definition PlayerCharacter.h:304
@ kLightArmor
Definition PlayerCharacter.h:293
@ kArchery
Definition PlayerCharacter.h:289
@ kSmithing
Definition PlayerCharacter.h:291
@ kDestruction
Definition PlayerCharacter.h:301
@ kPickpocket
Definition PlayerCharacter.h:294
@ kLockpicking
Definition PlayerCharacter.h:295
@ kTwoHanded
Definition PlayerCharacter.h:288
@ kOneHanded
Definition PlayerCharacter.h:287
@ kRestoration
Definition PlayerCharacter.h:303
@ kConjuration
Definition PlayerCharacter.h:300
@ kTotal
Definition PlayerCharacter.h:305
@ kAlteration
Definition PlayerCharacter.h:299
@ kBlock
Definition PlayerCharacter.h:290
@ kSpeech
Definition PlayerCharacter.h:298
@ kHeavyArmor
Definition PlayerCharacter.h:292
Definition PlayerCharacter.h:281
SkillData skills[Skill::kTotal]
Definition PlayerCharacter.h:323
float xp
Definition PlayerCharacter.h:321
float levelThreshold
Definition PlayerCharacter.h:322
std::uint32_t legendaryLevels[Skill::kTotal]
Definition PlayerCharacter.h:324
Definition PlayerCharacter.h:278
Data * data
Definition PlayerCharacter.h:331
void AdvanceLevel(bool a_addThreshold)
Definition PlayerCharacter.h:267
TESBoundObject * storedLastOneHandItems[2]
Definition PlayerCharacter.h:273
MagicItem * storedSelectedSpells[4]
Definition PlayerCharacter.h:270
TESRace * storedRace
Definition PlayerCharacter.h:271
TESForm * storedSelectedPower
Definition PlayerCharacter.h:272
Definition PlayerCharacter.h:225
TESObjectWEAP * rightHandWeapon
Definition PlayerCharacter.h:228
TESObjectWEAP * leftHandWeapon
Definition PlayerCharacter.h:229
Definition PlayerCharacter.h:237
TESWorldSpace * worldspace
Definition PlayerCharacter.h:242
char pad01[7]
Definition PlayerCharacter.h:241
bool unk00
Definition PlayerCharacter.h:240
TESObjectCELL * interiorCell
Definition PlayerCharacter.h:243
Definition PlayerCharacter.h:248
std::uint64_t unk10
Definition PlayerCharacter.h:253
std::uint64_t unk08
Definition PlayerCharacter.h:252
RE::TESObjectREFR * unk00
Definition PlayerCharacter.h:251
Definition PlayerCharacter.h:234
BSTArray< Unk00Data > unk00
Definition PlayerCharacter.h:258
std::uint64_t unk38
Definition PlayerCharacter.h:261
BSTArray< Unk18Data > unk18
Definition PlayerCharacter.h:259
std::uint64_t unk30
Definition PlayerCharacter.h:260
std::uint64_t unk40
Definition PlayerCharacter.h:262
Definition PlayerCharacter.h:87
std::int32_t unwitnessed
Definition PlayerCharacter.h:90
std::int32_t witnessed
Definition PlayerCharacter.h:91