CommonLibSSE (Parapets fork)
PlayerCharacter.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSPointerHandle.h"
4 #include "RE/B/BSSimpleList.h"
5 #include "RE/B/BSSoundHandle.h"
6 #include "RE/B/BSTArray.h"
7 #include "RE/B/BSTEvent.h"
8 #include "RE/B/BSTHashMap.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 #ifndef SKYRIMVR
290  TintMask* GetOverlayTintMask(TintMask* a_original);
291 #endif
293  TintMask* GetTintMask(std::uint32_t a_tintType, std::uint32_t a_index);
294  bool HasActorDoingCommand() const;
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
348  float dynamicDOFFocusTime; // 6F8
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
387  Data928* unk928; // 928
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
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
426  float telekinesisDistance; // AD4
427  float commandTimer; // AD8
428  std::uint32_t unkADC; // ADC
431  std::uint32_t advanceAction; // 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::uint8_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: BSSimpleList.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: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
static PlayerCharacter * GetSingleton()
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
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)
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::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
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
TESForm * advanceObject
Definition: PlayerCharacter.h:413
NiPointer< Actor > GetActorDoingPlayerCommand() const
TintMask * GetTintMask(std::uint32_t a_tintType, std::uint32_t a_index)
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
NiPointer< TESObjectREFR > GetGrabbedRef()
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
float pickPocketWarningTimer
Definition: PlayerCharacter.h:342
std::uint8_t perkCount
Definition: PlayerCharacter.h:437
virtual std::uint32_t GetNonViolentCrimeGoldValue(const TESFaction *a_faction) const
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
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
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)
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
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
std::uint32_t advanceAction
Definition: PlayerCharacter.h:431
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
RE::ActorValue advanceSkill
Definition: PlayerCharacter.h:430
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
BSTArray< TintMask * > & GetTintList()
float eyeHeight
Definition: PlayerCharacter.h:375
EventType
Definition: PlayerCharacter.h:147
FlagBD9
Definition: PlayerCharacter.h:167
TintMask * GetOverlayTintMask(TintMask *a_original)
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: TESObjectREFR.h:105
Definition: TESObject.h:11
Definition: TESRace.h:146
Definition: TESWorldSpace.h:116
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: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