CommonLibSSE (powerof3)
PlayerCharacter.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSPointerHandle.h"
4 #include "RE/B/BSSoundHandle.h"
5 #include "RE/B/BSTArray.h"
6 #include "RE/B/BSTEvent.h"
7 #include "RE/B/BSTHashMap.h"
8 #include "RE/B/BSTList.h"
9 #include "RE/B/BSTSmartPointer.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 
20 namespace 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,
55  kShootBow,
57  kJumping,
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,
157  kTelekinesis,
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,
192  kDragonRideTargetLocked = 1 << 2,
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  {
221  kArchery = 2,
222  kBlock = 3,
228  kSneak = 9,
229  kAlchemy = 10,
230  kSpeech = 11,
234  kIllusion = 15,
237  kTotal
238  };
239  };
241 
242  struct SkillData
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  TintMask* GetOverlayTintMask(TintMask* a_original);
291  TintMask* GetTintMask(std::uint32_t a_tintType, std::uint32_t a_index);
292  bool HasActorDoingCommand() const;
293  bool IsGrabbing() const;
294  void PlayPickupEvent(TESForm* a_item, TESForm* a_containerOwner, TESObjectREFR* a_containerRef, EventType a_eventType);
296 
297  // members
298  std::uint32_t unk3D8; // 3D8
299  std::uint32_t unk3DC; // 3DC
303  std::uint32_t unk444; // 444
308  float unk49C; // 49C
309  std::uint64_t unk4A0; // 4A0
310  std::uint64_t unk4A8; // 4A8
327  std::uint32_t unk63C; // 63C
332  std::uint32_t pad6AC; // 6AC
334  std::uint32_t unk6B8; // 6B8
335  std::uint32_t unk6BC; // 6BC
337  std::int32_t numberofStealWarnings; // 6C8
338  float stealWarningTimer; // 6CC
339  std::int32_t numberofPickpocketWarnings; // 6D0
342  std::uint32_t pad6DC; // 6DC
346  float dynamicDOFFocusTime; // 6F8
347  bool dynamicDOFFocused; // 6FC
348  std::uint8_t unk6FD; // 6FD
349  std::uint16_t unk6FE; // 6FE
353  std::int32_t jailSentence; // 720
354  std::uint32_t pad724; // 724
355  void* unk728; // 728 - smart ptr
356  std::uint8_t unk730[0xA0]; // 730
357  std::int32_t vampireFeedDetection; // 7D0
358  std::uint32_t mapMarkerIterator; // 7D4
365  float grabObjectWeight; // 8CC
366  float grabDistance; // 8D0
367  float unk8D4; // 8D4
368  std::uint64_t unk8D8; // 8D8
369  std::uint32_t unk8E0; // 8E0
370  std::uint32_t sleepSeconds; // 8E4
373  float eyeHeight; // 8F8
374  float greetTimer; // 8FC
375  float encumberedTimer; // 900
376  float powerAttackTimer; // 904
377  std::int32_t hoursToSleep; // 908
378  std::int32_t amountStolenSold; // 90C
379  std::uint32_t valueStolen; // 910
383  float sitHeadingDelta; // 920
384  std::uint32_t unk924; // 924
385  Data928* unk928; // 928
386  std::uint32_t skillTrainingsThisLevel; // 930
387  std::uint32_t unk934; // 934
389  std::uint64_t unk940; // 940
390  std::uint32_t crimeCounts[PackageNS::CRIME_TYPES::kTotal]; // 948
391  std::uint32_t unk964; // 964
393  std::int64_t lastPlayingTimeUpdate; // 970
394  std::int64_t totalPlayingTime; // 978
395  std::int32_t characterSeed; // 980
396  std::uint32_t unk984; // 984
398  std::uint32_t unk990; // 990
399  std::uint32_t unk994; // 994
402  float dropAngleMod; // 9A8
403  float lastDropAngleMod; // 9AC
407  std::uint64_t unk9C0; // 9C0
409  CombatGroup* combatGroup; // 9D0
411  std::uint64_t unk9F0; // 9F0
413  std::uint32_t teammateCount; // A08
414  float combatTimer; // A0C
415  float yieldTimer; // A10
416  float chaseTimer; // A14
418  std::uint32_t unkA1C; // A1C
419  std::uint8_t unkA20[0xA0]; // A20
420  std::uint32_t unkAC0; // AC0
421  std::uint32_t unkAC4; // AC4
424  float telekinesisDistance; // AD4
425  float commandTimer; // AD8
426  std::uint32_t unkADC; // ADC
428  std::int32_t unkAE8; // AE8
429  std::uint32_t unkAEC; // AEC
430  std::uint32_t unkAF0; // AF0
432  std::int32_t difficulty; // AF8
433  std::uint32_t unkAFC; // AFC
434  std::int8_t murder; // B00
435  std::int8_t perkCount; // B01
437  std::uint8_t padB03; // B03
438  std::uint32_t unkB04; // B04
444  TESRace* race2; // B40
445  std::int32_t unkB48; // B48
446  std::uint32_t padB4C; // B4C
448  std::uint64_t unkB68; // B68
449  std::uint64_t unkB70; // B70
450  std::uint64_t unkB78; // B78
451  std::uint64_t unkB80; // B80
452  std::int32_t unkB88; // B88
453  std::uint32_t padB8C; // B8C
454  std::uint64_t unkB90; // B90
455  std::uint64_t unkB98; // B98
457  std::uint64_t unkBD0; // BD0
458  std::uint8_t unkBD8; // BD8
460  std::uint8_t unkBDA; // BDA
464  std::uint16_t padBDE; // BDE
465 
466  private:
467  bool CenterOnCell_Impl(const char* a_cellName, RE::TESObjectCELL* a_cell);
468  };
469  static_assert(sizeof(PlayerCharacter) == 0xBE8);
470 }
Definition: AlchemyItem.h:24
Definition: BGSLocation.h:68
Definition: BGSTextureSet.h:16
Definition: BSTList.h:10
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: 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:300
std::uint64_t unkB90
Definition: PlayerCharacter.h:454
BSSimpleList< TESQuestStageItem * > questLog
Definition: PlayerCharacter.h:319
BSTSmallArray< void *, 4 > unkBA0
Definition: PlayerCharacter.h:456
BSSimpleList< ObjectRefHandle > droppedRefList
Definition: PlayerCharacter.h:323
std::uint32_t unk984
Definition: PlayerCharacter.h:396
float grabDistance
Definition: PlayerCharacter.h:366
NiPointer< BSLight > thirdPersonLight
Definition: PlayerCharacter.h:401
TESBoundObject * lastOneHandItems[2]
Definition: PlayerCharacter.h:412
std::uint32_t unk964
Definition: PlayerCharacter.h:391
BSTArray< PerkRankData * > addedPerks
Definition: PlayerCharacter.h:311
BSTHashMap< UnkKey, UnkValue > currentSayOnceInfosMap
Definition: PlayerCharacter.h:322
static PlayerCharacter * GetSingleton()
ObjectRefHandle commandWaitMarker
Definition: PlayerCharacter.h:302
BSSoundHandle magicFailureSound
Definition: PlayerCharacter.h:330
NiPoint3 dynamicDOFLastAngle
Definition: PlayerCharacter.h:350
std::uint32_t unk3DC
Definition: PlayerCharacter.h:299
std::int32_t vampireFeedDetection
Definition: PlayerCharacter.h:357
BSTHashMap< const TESFaction *, FriendshipFactionsStruct > factionOwnerFriendsMap
Definition: PlayerCharacter.h:304
std::uint64_t unkB78
Definition: PlayerCharacter.h:450
NiPoint3 exteriorPosition
Definition: PlayerCharacter.h:326
NiPointer< NiAVObject > targeted3D
Definition: PlayerCharacter.h:408
std::uint32_t mapMarkerIterator
Definition: PlayerCharacter.h:358
std::uint32_t padB4C
Definition: PlayerCharacter.h:446
float unk8D4
Definition: PlayerCharacter.h:367
std::uint64_t unkB68
Definition: PlayerCharacter.h:448
std::int32_t hoursToSleep
Definition: PlayerCharacter.h:377
ActorHandle autoAimActor
Definition: PlayerCharacter.h:405
std::int32_t difficulty
Definition: PlayerCharacter.h:432
TESRace * charGenRace
Definition: PlayerCharacter.h:443
ActorHandle lastRiddenMount
Definition: PlayerCharacter.h:380
std::uint32_t unkB04
Definition: PlayerCharacter.h:438
ByCharGenFlag
Definition: PlayerCharacter.h:161
static constexpr auto RTTI
Definition: PlayerCharacter.h:143
std::uint64_t unk4A0
Definition: PlayerCharacter.h:309
std::uint32_t crimeCounts[PackageNS::CRIME_TYPES::kTotal]
Definition: PlayerCharacter.h:390
BSTHashMap< const TESFaction *, StolenItemValueStruct > stolenItemValueMap
Definition: PlayerCharacter.h:301
BSSoundHandle unk688
Definition: PlayerCharacter.h:329
stl::enumeration< FlagBD9, std::uint8_t > unkBD9
Definition: PlayerCharacter.h:459
std::uint32_t valueStolen
Definition: PlayerCharacter.h:379
PLAYER_ACTION mostRecentAction
Definition: PlayerCharacter.h:361
std::int32_t jailSentence
Definition: PlayerCharacter.h:353
bool CenterOnCell(const char *a_cellName)
RefHandle unk9BC
Definition: PlayerCharacter.h:406
ActorHandle actorDoingPlayerCommand
Definition: PlayerCharacter.h:362
std::uint8_t unk6FD
Definition: PlayerCharacter.h:348
BSTArray< ObjectRefHandle > currentMapMarkers
Definition: PlayerCharacter.h:314
AITimeStamp warnToLeaveTimeStamp
Definition: PlayerCharacter.h:341
std::uint8_t unkBD8
Definition: PlayerCharacter.h:458
std::int32_t unkAE8
Definition: PlayerCharacter.h:428
std::uint32_t unkAF0
Definition: PlayerCharacter.h:430
std::uint64_t unk4A8
Definition: PlayerCharacter.h:310
std::uint64_t unk8D8
Definition: PlayerCharacter.h:368
std::uint32_t GetNumTints(std::uint32_t a_tintType)
ImageSpaceModifierInstanceDOF * vatsDOFInstance
Definition: PlayerCharacter.h:344
std::uint32_t unkAFC
Definition: PlayerCharacter.h:433
void AddPlayerAddItemEvent(TESObject *a_object, TESForm *a_owner, TESObjectREFR *a_container, AQUIRE_TYPE a_type)
std::uint32_t unkAC0
Definition: PlayerCharacter.h:420
std::uint32_t unkAEC
Definition: PlayerCharacter.h:429
stl::enumeration< FlagBDC, std::uint8_t > unkBDC
Definition: PlayerCharacter.h:462
NiPoint3 dynamicDOFLastPosition
Definition: PlayerCharacter.h:351
std::uint32_t pad6AC
Definition: PlayerCharacter.h:332
std::int32_t unkB88
Definition: PlayerCharacter.h:452
std::uint32_t pad6DC
Definition: PlayerCharacter.h:342
std::uint32_t unk994
Definition: PlayerCharacter.h:399
std::uint32_t unk6B8
Definition: PlayerCharacter.h:334
NiPointer< Actor > GetActorDoingPlayerCommand() const
TintMask * GetTintMask(std::uint32_t a_tintType, std::uint32_t a_index)
std::uint64_t unk9C0
Definition: PlayerCharacter.h:407
bool AttemptPickpocket(TESObjectREFR *a_containerRef, InventoryEntryData *a_entry, std::int32_t a_number, bool a_fromContainer=true)
ActorHandle lightTarget
Definition: PlayerCharacter.h:381
std::uint64_t unk940
Definition: PlayerCharacter.h:389
TESWorldSpace * cachedWorldSpace
Definition: PlayerCharacter.h:325
NiPointer< TESObjectREFR > GetGrabbedRef()
virtual void ClearAllCrimeGold(TESFaction *a_faction)
std::int32_t characterSeed
Definition: PlayerCharacter.h:395
PlayerSkills * skills
Definition: PlayerCharacter.h:404
BSTArray< TintMask * > * overlayTintMasks
Definition: PlayerCharacter.h:441
std::uint32_t unk3D8
Definition: PlayerCharacter.h:298
BSTArray< ActorHandle > actorsToDisplayOnTheHUDArray
Definition: PlayerCharacter.h:410
std::uint32_t sleepSeconds
Definition: PlayerCharacter.h:370
bool CenterOnCell(RE::TESObjectCELL *a_cell)
std::int8_t murder
Definition: PlayerCharacter.h:434
ImageSpaceModifierInstanceDOF * ironsightsDOFInstance
Definition: PlayerCharacter.h:343
BSTArray< BGSInstancedQuestObjective > objectives
Definition: PlayerCharacter.h:320
stl::enumeration< GrabbingType, std::uint32_t > grabType
Definition: PlayerCharacter.h:431
TESRace * race2
Definition: PlayerCharacter.h:444
std::uint32_t unk934
Definition: PlayerCharacter.h:387
AlchemyItem * pendingPoison
Definition: PlayerCharacter.h:392
DialoguePackage * aiConversationRunning
Definition: PlayerCharacter.h:336
std::uint32_t unk8E0
Definition: PlayerCharacter.h:369
TESClass * defaultClass
Definition: PlayerCharacter.h:388
RefHandle forceActivateRef
Definition: PlayerCharacter.h:359
TESForm * lastKnownGoodLocation
Definition: PlayerCharacter.h:397
BSTSmartPointer< BipedAnim > largeBiped
Definition: PlayerCharacter.h:371
std::uint64_t unkBD0
Definition: PlayerCharacter.h:457
float dropAngleMod
Definition: PlayerCharacter.h:402
NiPoint3 lastKnownGoodPosition
Definition: PlayerCharacter.h:305
std::int32_t numberofPickpocketWarnings
Definition: PlayerCharacter.h:339
BSTHashMap< UnkKey, UnkValue > unk598
Definition: PlayerCharacter.h:321
CombatGroup * combatGroup
Definition: PlayerCharacter.h:409
Data928 * unk928
Definition: PlayerCharacter.h:385
float pickPocketWarningTimer
Definition: PlayerCharacter.h:340
virtual std::uint32_t GetNonViolentCrimeGoldValue(const TESFaction *a_faction) const
std::uint64_t unk9F0
Definition: PlayerCharacter.h:411
float yieldTimer
Definition: PlayerCharacter.h:415
BGSLocation * currentLocation
Definition: PlayerCharacter.h:422
float sortActorDistanceTimer
Definition: PlayerCharacter.h:382
NiTMap< std::uint32_t, std::uint8_t > randomDoorSpaceMap
Definition: PlayerCharacter.h:324
PlayerActionObject playerActionObjects[15]
Definition: PlayerCharacter.h:360
float sitHeadingDelta
Definition: PlayerCharacter.h:383
std::int64_t totalPlayingTime
Definition: PlayerCharacter.h:394
float grabObjectWeight
Definition: PlayerCharacter.h:365
float dynamicDOFFocusTime
Definition: PlayerCharacter.h:346
BSTArray< std::uint64_t > unkB50
Definition: PlayerCharacter.h:447
std::uint16_t padBDE
Definition: PlayerCharacter.h:464
NiPoint3 cachedVelocity
Definition: PlayerCharacter.h:307
virtual void Unk_12A(void)
std::uint64_t unkB70
Definition: PlayerCharacter.h:449
TESFaction * currentPrisonFaction
Definition: PlayerCharacter.h:352
std::int8_t perkCount
Definition: PlayerCharacter.h:435
virtual void Unk_12E(void)
BSTArray< void * > imageSpaceModifierAnims1
Definition: PlayerCharacter.h:317
bool HasActorDoingCommand() const
std::uint8_t unkBDA
Definition: PlayerCharacter.h:460
NiPointer< BSLight > firstPersonLight
Definition: PlayerCharacter.h:400
std::uint64_t unkB98
Definition: PlayerCharacter.h:455
float powerAttackTimer
Definition: PlayerCharacter.h:376
float GetDamage(InventoryEntryData *a_form)
float combatTimer
Definition: PlayerCharacter.h:414
std::int32_t unkB48
Definition: PlayerCharacter.h:445
TESImageSpaceModifier * unkAE0
Definition: PlayerCharacter.h:427
BSTArray< ProjectileHandle > runesCast
Definition: PlayerCharacter.h:316
~PlayerCharacter() override
DialoguePackage * closestConversation
Definition: PlayerCharacter.h:333
std::uint32_t unk924
Definition: PlayerCharacter.h:384
std::uint32_t unk63C
Definition: PlayerCharacter.h:327
void PlayPickupEvent(TESForm *a_item, TESForm *a_containerOwner, TESObjectREFR *a_containerRef, EventType a_eventType)
float encumberedTimer
Definition: PlayerCharacter.h:375
float lastDropAngleMod
Definition: PlayerCharacter.h:403
FlagBDB
Definition: PlayerCharacter.h:174
std::uint32_t teammateCount
Definition: PlayerCharacter.h:413
float stealWarningTimer
Definition: PlayerCharacter.h:338
std::uint32_t unk444
Definition: PlayerCharacter.h:303
std::uint8_t padB03
Definition: PlayerCharacter.h:437
void AddSkillExperience(ActorValue a_skill, float a_experience)
std::uint32_t unkAC4
Definition: PlayerCharacter.h:421
AITimeStamp cachedVelocityTimeStamp
Definition: PlayerCharacter.h:423
std::uint32_t padB8C
Definition: PlayerCharacter.h:453
virtual std::uint32_t GetViolentCrimeGoldValue(const TESFaction *a_faction) const
std::int32_t amountStolenSold
Definition: PlayerCharacter.h:378
float unk49C
Definition: PlayerCharacter.h:308
NiPoint3 bulletAutoAim
Definition: PlayerCharacter.h:306
float GetArmorValue(InventoryEntryData *a_form)
NiPointer< NiNode > firstPerson3D
Definition: PlayerCharacter.h:372
GrabbingType
Definition: PlayerCharacter.h:154
std::uint64_t unkB80
Definition: PlayerCharacter.h:451
ObjectRefHandle grabbedObject
Definition: PlayerCharacter.h:364
std::uint32_t skillTrainingsThisLevel
Definition: PlayerCharacter.h:386
std::uint8_t unk730[0xA0]
Definition: PlayerCharacter.h:356
bool IsGrabbing() const
float greetTimer
Definition: PlayerCharacter.h:374
BSTArray< BSTTuple< NiPoint3, AITimeStamp > > velocityArray
Definition: PlayerCharacter.h:315
float commandTimer
Definition: PlayerCharacter.h:425
std::uint8_t unkA20[0xA0]
Definition: PlayerCharacter.h:419
float drawSheatheSafetyTimer
Definition: PlayerCharacter.h:417
float chaseTimer
Definition: PlayerCharacter.h:416
std::uint32_t pad724
Definition: PlayerCharacter.h:354
BGSTextureSet * complexion
Definition: PlayerCharacter.h:442
ImageSpaceModifierInstanceDOF * dynamicDOFInstance
Definition: PlayerCharacter.h:345
std::uint32_t unkADC
Definition: PlayerCharacter.h:426
BSTArray< void * > imageSpaceModifierAnims2
Definition: PlayerCharacter.h:318
stl::enumeration< FlagBDB, std::uint8_t > unkBDB
Definition: PlayerCharacter.h:461
BSTArray< BGSPerk * > perks
Definition: PlayerCharacter.h:312
stl::enumeration< FlagBDD, std::uint8_t > unkBDD
Definition: PlayerCharacter.h:463
std::uint16_t unk6FE
Definition: PlayerCharacter.h:349
stl::enumeration< ByCharGenFlag, std::uint8_t > byCharGenFlag
Definition: PlayerCharacter.h:436
float telekinesisDistance
Definition: PlayerCharacter.h:424
bool dynamicDOFFocused
Definition: PlayerCharacter.h:347
std::uint32_t unkA1C
Definition: PlayerCharacter.h:418
BSSoundHandle unk6A0
Definition: PlayerCharacter.h:331
PLAYER_TARGET_LOC queuedTargetLoc
Definition: PlayerCharacter.h:328
Crime * resistArrestCrime
Definition: PlayerCharacter.h:439
std::int32_t numberofStealWarnings
Definition: PlayerCharacter.h:337
void * unk728
Definition: PlayerCharacter.h:355
FlagBDC
Definition: PlayerCharacter.h:180
BSTSmallArray< hkRefPtr< bhkMouseSpringAction >, 4 > grabSpring
Definition: PlayerCharacter.h:363
FlagBDD
Definition: PlayerCharacter.h:189
BSTArray< TintMask * > tintMasks
Definition: PlayerCharacter.h:440
static constexpr auto FORMTYPE
Definition: PlayerCharacter.h:144
BSTArray< TintMask * > & GetTintList()
float eyeHeight
Definition: PlayerCharacter.h:373
EventType
Definition: PlayerCharacter.h:147
FlagBD9
Definition: PlayerCharacter.h:167
TintMask * GetOverlayTintMask(TintMask *a_original)
std::uint32_t unk6BC
Definition: PlayerCharacter.h:335
std::uint32_t unk990
Definition: PlayerCharacter.h:398
std::int64_t lastPlayingTimeUpdate
Definition: PlayerCharacter.h:393
BSTArray< BGSPerk * > standingStonePerks
Definition: PlayerCharacter.h:313
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: TESObjectREFR.h:103
Definition: TESObject.h:11
Definition: TESRace.h:146
Definition: TESWorldSpace.h:116
Definition: AbsorbEffect.h:6
ActorValue
Definition: ActorValues.h:6
PLAYER_ACTION
Definition: PlayerCharacter.h:51
AQUIRE_TYPE
Definition: BGSAddToPlayerInventoryEvent.h:11
constexpr REL::ID RTTI_PlayerCharacter
Definition: Offsets_RTTI.h:5718
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:250
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