29 class BGSInstancedQuestObjective;
31 class bhkMouseSpringAction;
37 class ImageSpaceModifierInstanceDOF;
38 class InventoryEntryData;
39 class MenuModeChangeEvent;
40 class MenuOpenCloseEvent;
42 class NiBillboardNode;
47 class UserEventEnabledEvent;
48 struct BGSActorCellEvent;
49 struct BGSActorDeathEvent;
51 struct PositionPlayerEvent;
52 struct TESQuestStageItem;
53 struct TESTrackedStatsEvent;
79 #define VR_NODE_DATA_CONTENT \
80 NiPointer<NiNode> PlayerWorldNode; \
81 NiPointer<NiNode> FollowNode; \
82 NiPointer<NiNode> FollowOffset; \
83 NiPointer<NiNode> HeightOffsetNode; \
84 NiPointer<NiNode> SnapWalkOffsetNode; \
85 NiPointer<NiNode> RoomNode; \
86 NiPointer<NiNode> BlackSphere; \
87 NiPointer<NiNode> uiNode; \
88 NiPointer<BSTriShape> InWorldUIQuadGeo; \
89 NiPointer<NiNode> UIPointerNode; \
90 NiPointer<BSTriShape> UIPointerGeo; \
91 NiPointer<NiNode> DialogueUINode; \
92 NiPointer<NiNode> TeleportDestinationPreview; \
93 NiPointer<NiNode> TeleportDestinationFail; \
94 NiPointer<NiNode> TeleportSprintPreview; \
95 NiPointer<NiNode> SpellOrigin; \
96 NiPointer<NiNode> SpellDestination; \
97 NiPointer<NiNode> ArrowOrigin; \
98 NiPointer<NiNode> ArrowDestination; \
99 NiPointer<NiNode> QuestMarker; \
100 NiPointer<NiNode> LeftWandNode; \
101 NiPointer<NiNode> LeftWandShakeNode; \
102 NiPointer<NiNode> LeftValveIndexControllerNode; \
103 NiPointer<NiNode> unkNode4A8; \
104 NiPointer<NiNode> LeftWeaponOffsetNode; \
105 NiPointer<NiNode> LeftCrossbowOffsetNode; \
106 NiPointer<NiNode> LeftMeleeWeaponOffsetNode; \
107 NiPointer<NiNode> LeftStaffWeaponOffsetNode; \
108 NiPointer<NiNode> LeftShieldOffsetNode; \
109 NiPointer<NiNode> RightShieldOffsetNode; \
110 NiPointer<NiNode> SecondaryMagicOffsetNode; \
111 NiPointer<NiNode> SecondaryMagicAimNode; \
112 NiPointer<NiNode> SecondaryStaffMagicOffsetNode; \
113 NiPointer<NiNode> RightWandNode; \
114 NiPointer<NiNode> RightWandShakeNode; \
115 NiPointer<NiNode> RightValveIndexControllerNode; \
116 NiPointer<NiNode> unkNode510; \
117 NiPointer<NiNode> RightWeaponOffsetNode; \
118 NiPointer<NiNode> RightCrossbowOffsetNode; \
119 NiPointer<NiNode> RightMeleeWeaponOffsetNode; \
120 NiPointer<NiNode> RightStaffWeaponOffsetNode; \
121 NiPointer<NiNode> PrimaryMagicOffsetNode; \
122 NiPointer<NiNode> PrimaryMagicAimNode; \
123 NiPointer<NiNode> PrimaryStaffMagicOffsetNode; \
124 std::uint64_t unk550; \
125 NiPointer<NiBillboardNode> CrosshairParent; \
126 NiPointer<NiBillboardNode> CrosshairSecondaryParent; \
127 NiPointer<NiBillboardNode> TargetLockParent; \
128 NiPointer<NiNode> unkNode570; \
129 NiPointer<NiNode> LastSyncPos; \
130 NiPointer<NiNode> UprightHmdNode; \
131 NiPointer<NiNode> MapMarkers3D; \
132 NiPointer<NiNode> NPCLHnd; \
133 NiPointer<NiNode> NPCRHnd; \
134 NiPointer<NiNode> NPCLClv; \
135 NiPointer<NiNode> NPCRClv; \
136 std::uint32_t unk5B0; \
137 std::uint32_t unk5B4; \
138 std::uint64_t unk5B8; \
139 std::uint64_t unk5C0; \
140 NiPointer<NiNode> BowAimNode; \
141 NiPointer<NiNode> BowRotationNode; \
142 NiPointer<NiNode> ArrowSnapNode; \
143 NiPointer<BSFadeNode> ArrowNode; \
144 NiPointer<BSFadeNode> ArrowFireNode; \
145 std::uint64_t unk5F0; \
146 NiPointer<NiNode> ArrowHoldOffsetNode; \
147 NiPointer<NiNode> ArrowHoldNode; \
148 std::uint64_t unk608; \
150 std::uint32_t unk614; \
151 std::uint64_t unk618; \
152 std::uint64_t unk620; \
153 std::uint64_t unk628; \
154 std::uint64_t unk630; \
155 void* QuestMarkerBillBoardsNodeArray; \
156 void* TeleportNodeArray; \
157 void* QuestMarkerBillBoardsNodeArray2; \
158 std::uint64_t unk650; \
159 void* TeleportNodeArray2; \
160 void* QuestMarkerBillBoardsNodeArray3; \
161 std::uint64_t unk668; \
163 std::uint32_t unk674; \
164 void* TeleportNodeArray3;
230 #ifndef ENABLE_SKYRIM_AE
343 static_assert(
sizeof(
Unk00Data) == 0x18);
353 static_assert(
sizeof(
Unk18Data) == 0x18);
377 #define CRIME_VALUE_CONTENT \
378 BSTHashMap<const TESFaction*, CrimeGoldStruct> crimeGoldMap; \
379 BSTHashMap<const TESFaction*, StolenItemValueStruct> stolenItemValueMap;
383 static_assert(
sizeof(CrimeValue) == 0x60);
387 #define RACE_DATA_CONTENT \
388 BGSTextureSet* complexion; \
389 TESRace* charGenRace; \
394 static_assert(
sizeof(RaceData) == 0x18);
398 #define GAME_STATE_DATA_CONTENT \
399 std::int32_t difficulty; \
400 ActorHandle assumedIdentity; \
401 std::int8_t murder; \
402 std::int8_t perkCount; \
403 stl::enumeration<ByCharGenFlag, std::uint8_t> byCharGenFlag; \
408 static_assert(
sizeof(GameStateData) == 0xC);
459 static_assert(
sizeof(
Data) == 0x128);
470 #define INFO_RUNTIME_DATA_CONTENT \
471 float grabDistance; \
473 std::uint64_t unk008; \
474 std::uint32_t unk010; \
475 std::uint32_t sleepSeconds; \
476 BSTSmartPointer<BipedAnim> largeBiped; \
477 NiPointer<NiNode> firstPerson3D; \
480 float encumberedTimer; \
481 float powerAttackTimer; \
482 std::int32_t hoursToSleep; \
483 std::int32_t amountStolenSold; \
484 std::uint32_t valueStolen; \
485 ActorHandle lastRiddenMount; \
486 ActorHandle lightTarget; \
487 float sortActorDistanceTimer; \
488 float sitHeadingDelta; \
489 ObjectRefHandle playerMapMarker; \
490 TeleportPath* playerMarkerPath; \
491 std::uint32_t skillTrainingsThisLevel; \
492 std::uint32_t unk064; \
493 TESClass* defaultClass; \
494 std::uint64_t unk070; \
495 std::uint32_t crimeCounts[PackageNS::CRIME_TYPES::kTotal]; \
496 std::uint32_t unk094; \
497 AlchemyItem* pendingPoison; \
498 std::int64_t lastPlayingTimeUpdate; \
499 std::int64_t totalPlayingTime; \
500 std::int32_t characterSeed; \
501 std::uint32_t unk0B4; \
502 TESForm* lastKnownGoodLocation; \
503 std::uint32_t unk0C0; \
504 std::uint32_t unk0C4; \
505 NiPointer<BSLight> firstPersonLight; \
506 NiPointer<BSLight> thirdPersonLight; \
507 float dropAngleMod; \
508 float lastDropAngleMod; \
509 PlayerSkills* skills; \
510 ActorHandle autoAimActor; \
512 std::uint64_t unk118; \
513 NiPointer<NiAVObject> targeted3D; \
514 CombatGroup* combatGroup; \
515 BSTArray<ActorHandle> actorsToDisplayOnTheHUDArray; \
516 TESForm* advanceObject; \
517 TESBoundObject* lastOneHandItems[2]; \
518 std::uint32_t teammateCount; \
522 float drawSheatheSafetyTimer; \
523 std::uint32_t unk14C;
527 static_assert(
sizeof(INFO_RUNTIME_DATA) == 0x150);
552 #ifndef ENABLE_SKYRIM_VR
560 [[nodiscard]] std::uint32_t
GetNumTints(std::uint32_t a_tintType);
631 #ifndef ENABLE_SKYRIM_VR
632 #define PLAYER_RUNTIME_DATA_CONTENT \
633 mutable BSSpinLock questTargetsLock; \
634 CRIME_VALUE_CONTENT; \
635 ObjectRefHandle commandWaitMarker; \
636 std::uint32_t pad444; \
637 BSTHashMap<const TESFaction*, FriendshipFactionsStruct> factionOwnerFriendsMap; \
638 NiPoint3 lastKnownGoodPosition; \
639 NiPoint3 bulletAutoAim; \
640 NiPoint3 cachedVelocity; \
642 BGSNote* unusedNote; \
643 BGSNote* unusedNote2; \
644 BSTArray<PerkRankData*> addedPerks; \
645 BSTArray<BGSPerk*> perks; \
646 BSTArray<BGSPerk*> standingStonePerks; \
647 BSTArray<ObjectRefHandle> currentMapMarkers; \
648 BSTArray<BSTTuple<NiPoint3, AITimeStamp>> velocityArray; \
649 BSTArray<ProjectileHandle> runesCast; \
650 BSTArray<void*> imageSpaceModifierAnims1; \
651 BSTArray<void*> imageSpaceModifierAnims2; \
652 BSSimpleList<TESQuestStageItem*> questLog; \
653 BSTArray<BGSInstancedQuestObjective> objectives; \
654 BSTHashMap<TESQuest*, BSTArray<TESQuestTarget*>*> questTargets; \
655 BSTHashMap<UnkKey, UnkValue> currentSayOnceInfosMap; \
656 BSSimpleList<ObjectRefHandle> droppedRefList; \
657 NiTMap<std::uint32_t, std::uint8_t> randomDoorSpaceMap; \
658 TESWorldSpace* cachedWorldSpace; \
659 NiPoint3 exteriorPosition; \
660 std::uint32_t pad63C; \
661 PLAYER_TARGET_LOC queuedTargetLoc; \
662 BSSoundHandle unusedSound; \
663 BSSoundHandle magicFailureSound; \
664 BSSoundHandle shoutFailureSound; \
665 std::uint32_t pad6AC; \
666 DialoguePackage* closestConversation; \
667 std::uint32_t unk6B8; \
668 std::uint32_t unk6BC; \
669 DialoguePackage* aiConversationRunning; \
670 std::int32_t numberofStealWarnings; \
671 float stealWarningTimer; \
672 std::int32_t numberofPickpocketWarnings; \
673 float pickPocketWarningTimer; \
674 AITimeStamp warnToLeaveTimeStamp; \
675 std::uint32_t pad6DC; \
676 ImageSpaceModifierInstanceDOF* ironsightsDOFInstance; \
677 ImageSpaceModifierInstanceDOF* vatsDOFInstance; \
678 ImageSpaceModifierInstanceDOF* dynamicDOFInstance; \
679 float dynamicDOFFocusTime; \
680 bool dynamicDOFFocused; \
681 std::uint8_t unk6FD; \
682 std::uint16_t unk6FE; \
683 NiPoint3 dynamicDOFLastAngle; \
684 NiPoint3 dynamicDOFLastPosition; \
685 TESFaction* currentPrisonFaction; \
686 std::int32_t jailSentence; \
687 std::uint32_t pad724; \
689 QueuedWeapon queuedWeaponAttachs[WEAPON_TYPE::kTotal]; \
690 std::int32_t vampireFeedDetection; \
691 std::uint32_t mapMarkerIterator; \
692 RefHandle forceActivateRef; \
693 PlayerActionObject playerActionObjects[15]; \
694 PLAYER_ACTION mostRecentAction; \
695 ActorHandle actorDoingPlayerCommand; \
696 BSTSmallArray<hkRefPtr<bhkMouseSpringAction>, 4> grabSpring; \
697 ObjectRefHandle grabbedObject; \
698 float grabObjectWeight; \
699 INFO_RUNTIME_DATA_CONTENT; \
700 std::uint8_t unkA20[0xA0]; \
701 std::uint32_t unkAC0; \
702 std::uint32_t unkAC4; \
703 BGSLocation* currentLocation; \
704 AITimeStamp cachedVelocityTimeStamp; \
705 float telekinesisDistance; \
706 float commandTimer; \
707 float sunGazeTimer; \
708 TESImageSpaceModifier* sunGazeImageModifierSpace; \
709 ActorValue advanceSkill; \
710 std::uint32_t advanceAction; \
711 stl::enumeration<DEFAULT_OBJECT, std::int32_t> animationObjectAction; \
712 stl::enumeration<GrabbingType, std::uint32_t> grabType; \
713 GAME_STATE_DATA_CONTENT; \
714 std::uint32_t unkB04; \
715 Crime* resistArrestCrime; \
716 BSTArray<TintMask*> tintMasks; \
717 BSTArray<TintMask*>* overlayTintMasks; \
719 std::int32_t unkB48; \
720 std::uint32_t padB4C; \
721 BSTArray<std::uint64_t> unkB50; \
722 std::uint64_t unkB68; \
723 std::uint64_t unkB70; \
724 std::uint64_t unkB78; \
725 std::uint64_t unkB80; \
726 std::int32_t unkB88; \
727 std::uint32_t padB8C; \
728 std::uint64_t unkB90; \
729 TESBoundObject* unkB98; \
730 BSTSmallArray<void*, 4> unkBA0; \
731 PreTransformationData* preTransformationData; \
732 PlayerFlags playerFlags;
733 #elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
734 #define PLAYER_RUNTIME_DATA_CONTENT \
735 std::uint64_t unk3D8; \
736 std::uint64_t unk3E0; \
737 std::uint64_t unk3E8; \
738 VR_NODE_DATA_CONTENT; \
739 std::uint64_t unk680; \
740 std::uint64_t unk688; \
741 std::uint64_t unk690; \
742 std::uint64_t unk698; \
743 std::uint64_t unk6A0; \
744 std::uint64_t unk6A8[0x65]; \
745 CRIME_VALUE_CONTENT; \
746 std::uint64_t unkA30[0x11]; \
748 std::uint64_t unk6C0[0x14]; \
752 std::uint64_t addedPerks; \
753 std::uint64_t perks; \
754 std::uint64_t standingStonePerks; \
755 std::uint64_t unkB78; \
756 std::uint64_t unkB80; \
757 std::uint64_t unkMessageArrayPtr; \
758 std::uint64_t unkB90; \
759 std::uint64_t unkB98; \
760 std::uint64_t unkBA0; \
761 std::uint64_t unkBA8; \
762 std::uint64_t unkBB0[0x25]; \
763 std::uint64_t imageSpaceModifierAnims1; \
764 std::uint64_t imageSpaceModifierAnims2; \
765 std::uint64_t unkCE8[0x34]; \
766 std::uint32_t padE90; \
767 ActorHandle actorDoingPlayerCommand; \
768 std::uint64_t unkE90; \
769 std::uint64_t unkE98[0x27]; \
771 INFO_RUNTIME_DATA_CONTENT; \
772 std::uint64_t unk1120[0x1A]; \
773 std::uint32_t unk11F0; \
774 GAME_STATE_DATA_CONTENT; \
775 std::uint64_t unk1200; \
776 std::uint64_t unk1208; \
777 std::uint64_t unk1210; \
778 std::uint64_t unk1218; \
779 std::uint64_t unk1220; \
781 std::uint64_t unk1240[0x12]; \
782 std::uint8_t pad12D0; \
783 std::uint8_t flags; \
784 std::uint16_t pad12D2; \
785 std::uint32_t unk12D4;
787 #define PLAYER_RUNTIME_DATA_CONTENT
807 return REL::RelocateMember<CrimeValue>(
this, 0x3E8);
810 return REL::RelocateMember<CrimeValue>(
this, 0x3E0, 0x9D0);
817 return REL::RelocateMember<CrimeValue>(
this, 0x3E8);
820 return REL::RelocateMember<CrimeValue>(
this, 0x3E0, 0x9D0);
827 return REL::RelocateMember<RaceData>(
this, 0xB38);
830 return REL::RelocateMember<RaceData>(
this, 0xB30, 0x1228);
837 return REL::RelocateMember<RaceData>(
this, 0xB38);
840 return REL::RelocateMember<RaceData>(
this, 0xB30, 0x1228);
847 return REL::RelocateMember<GameStateData>(
this, 0xB00);
850 return REL::RelocateMember<GameStateData>(
this, 0xAF8, 0x11F4);
857 return REL::RelocateMember<GameStateData>(
this, 0xB00);
860 return REL::RelocateMember<GameStateData>(
this, 0xAF8, 0x11F4);
867 return REL::RelocateMember<INFO_RUNTIME_DATA>(
this, 0x8D8);
870 return REL::RelocateMember<INFO_RUNTIME_DATA>(
this, 0x8D0, 0xFD0);
877 return REL::RelocateMember<INFO_RUNTIME_DATA>(
this, 0x8D8);
880 return REL::RelocateMember<INFO_RUNTIME_DATA>(
this, 0x8D0, 0xFD0);
888 return &REL::RelocateMember<VR_NODE_DATA>(
this, 0, 0x3F0);
897 return &REL::RelocateMember<VR_NODE_DATA>(
this, 0, 0x3F0);
902 #if (!defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)) || (!defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_VR))
909 #if !defined(ENABLE_SKYRIM_VR) && !defined(ENABLE_SKYRIM_AE)
910 static_assert(
sizeof(PlayerCharacter) == 0xBE0);
911 #elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
912 static_assert(
sizeof(PlayerCharacter) == 0x12D8);
915 #undef PLAYER_RUNTIME_DATA_CONTENT
916 #undef VR_NODE_DATA_CONTENT
917 #undef INFO_RUNTIME_DATA_CONTENT
918 #undef GAME_STATE_DATA_CONTENT
919 #undef RACE_DATA_CONTENT
#define SKYRIM_REL_VR_CONSTEXPR
Definition: Common.h:85
#define SKYRIM_REL_VR_VIRTUAL
Definition: Common.h:94
#define SKYRIM_REL_CONSTEXPR
Definition: Common.h:47
#define CRIME_VALUE_CONTENT
Definition: PlayerCharacter.h:377
#define PLAYER_RUNTIME_DATA_CONTENT
Definition: PlayerCharacter.h:632
#define RACE_DATA_CONTENT
Definition: PlayerCharacter.h:387
#define VR_NODE_DATA_CONTENT
Definition: PlayerCharacter.h:79
#define GAME_STATE_DATA_CONTENT
Definition: PlayerCharacter.h:398
#define INFO_RUNTIME_DATA_CONTENT
Definition: PlayerCharacter.h:470
static SKYRIM_REL_VR bool IsVR() noexcept
Definition: Module.h:254
static Module & get()
Definition: Module.h:82
static SKYRIM_REL bool IsAE() noexcept
Definition: Module.h:238
Definition: BSTArray.h:377
Definition: BSTEvent.h:143
Definition: BSTEvent.h:19
Definition: Character.h:8
Definition: InventoryEntryData.h:15
Definition: MagicItem.h:30
Definition: NiSmartPointer.h:9
Definition: PlayerCharacter.h:198
std::uint32_t pad44
Definition: PlayerCharacter.h:215
NiPoint3 angle
Definition: PlayerCharacter.h:206
TESObjectCELL * interior
Definition: PlayerCharacter.h:204
NiPoint3 location
Definition: PlayerCharacter.h:205
bool resetWeather
Definition: PlayerCharacter.h:211
bool isValid
Definition: PlayerCharacter.h:213
bool allowAutoSave
Definition: PlayerCharacter.h:212
RefHandle fastTravelMarker
Definition: PlayerCharacter.h:210
std::int64_t arrivalFuncData
Definition: PlayerCharacter.h:208
void(std::int64_t) ArrivalFunc_t
Definition: PlayerCharacter.h:200
TESWorldSpace * world
Definition: PlayerCharacter.h:203
RefHandle furnitureRef
Definition: PlayerCharacter.h:209
ArrivalFunc_t * arrivalFunc
Definition: PlayerCharacter.h:207
std::uint8_t pad43
Definition: PlayerCharacter.h:214
Definition: PlayerCharacter.h:242
static PlayerCharacter * GetSingleton()
RaceData & GetRaceData() noexcept
Definition: PlayerCharacter.h:823
SKYRIM_REL_VR_VIRTUAL void Unk_12E(void)
const VR_NODE_DATA * GetVRNodeData() const noexcept
Definition: PlayerCharacter.h:892
ByCharGenFlag
Definition: PlayerCharacter.h:263
static constexpr auto RTTI
Definition: PlayerCharacter.h:244
VR_NODE_DATA * GetVRNodeData() noexcept
Definition: PlayerCharacter.h:883
PLAYER_RUNTIME_DATA & GetPlayerRuntimeData() noexcept
Definition: PlayerCharacter.h:793
bool CenterOnCell(const char *a_cellName)
BSTEventSink< MenuModeChangeEvent > * AsMenuModeChangeEventSink() noexcept
Definition: PlayerCharacter.h:605
std::uint32_t GetNumTints(std::uint32_t a_tintType)
void AddPlayerAddItemEvent(TESObject *a_object, TESForm *a_owner, TESObjectREFR *a_container, AQUIRE_TYPE a_type)
const BSTEventSink< MenuOpenCloseEvent > * AsMenuOpenCloseEventSink() const noexcept
Definition: PlayerCharacter.h:601
SKYRIM_REL_VR_VIRTUAL std::uint32_t GetNonViolentCrimeGoldValue(const TESFaction *a_faction) const
NiPointer< Actor > GetActorDoingPlayerCommand() const
TintMask * GetTintMask(std::uint32_t a_tintType, std::uint32_t a_index)
bool AttemptPickpocket(TESObjectREFR *a_containerRef, InventoryEntryData *a_entry, std::int32_t a_number, bool a_fromContainer=true)
NiPointer< TESObjectREFR > GetGrabbedRef()
const BSTEventSource< BGSActorCellEvent > * AsBGSActorCellEventSource() const noexcept
Definition: PlayerCharacter.h:577
GameStateData & GetGameStatsData() noexcept
Definition: PlayerCharacter.h:843
CrimeValue & GetCrimeValue() noexcept
Definition: PlayerCharacter.h:803
void RemoveWeapon(BIPED_OBJECT equipIndex) override
const GameStateData & GetGameStatsData() const noexcept
Definition: PlayerCharacter.h:853
BSTEventSink< MenuOpenCloseEvent > * AsMenuOpenCloseEventSink() noexcept
Definition: PlayerCharacter.h:597
const BSTEventSink< MenuModeChangeEvent > * AsMenuModeChangeEventSink() const noexcept
Definition: PlayerCharacter.h:609
BSTEventSink< UserEventEnabledEvent > * AsUserEventEnabledEventSink() noexcept
Definition: PlayerCharacter.h:613
void SetAIDriven(bool a_enable)
BSTEventSource< PositionPlayerEvent > * AsPositionPlayerEventSource() noexcept
Definition: PlayerCharacter.h:589
bool CenterOnCell(TESObjectCELL *a_cell)
BSTEventSource< BGSActorDeathEvent > * AsBGSActorDeathEventSource() noexcept
Definition: PlayerCharacter.h:581
const BSTEventSource< PositionPlayerEvent > * AsPositionPlayerEventSource() const noexcept
Definition: PlayerCharacter.h:593
void DestroyMouseSprings()
SKYRIM_REL_VR_VIRTUAL std::uint32_t GetViolentCrimeGoldValue(const TESFaction *a_faction) const
BSTEventSource< BGSActorCellEvent > * AsBGSActorCellEventSource() noexcept
Definition: PlayerCharacter.h:573
bool HasActorDoingCommand() const
const BSTEventSource< BGSActorDeathEvent > * AsBGSActorDeathEventSource() const noexcept
Definition: PlayerCharacter.h:585
BSTArray< TintMask * > * GetTintList()
BSTEventSink< TESTrackedStatsEvent > * AsTESTrackedStatsEventSink() noexcept
Definition: PlayerCharacter.h:621
float GetDamage(InventoryEntryData *a_form)
~PlayerCharacter() override
const BSTEventSink< UserEventEnabledEvent > * AsUserEventEnabledEventSink() const noexcept
Definition: PlayerCharacter.h:617
void PlayPickupEvent(TESForm *a_item, TESForm *a_containerOwner, TESObjectREFR *a_containerRef, EventType a_eventType)
void SetEscaping(bool a_flag, bool a_escaped)
void AddSkillExperience(ActorValue a_skill, float a_experience)
INFO_RUNTIME_DATA & GetInfoRuntimeData() noexcept
Definition: PlayerCharacter.h:863
float GetArmorValue(InventoryEntryData *a_form)
GrabbingType
Definition: PlayerCharacter.h:256
const RaceData & GetRaceData() const noexcept
Definition: PlayerCharacter.h:833
static constexpr auto VTABLE
Definition: PlayerCharacter.h:245
SKYRIM_REL_VR_VIRTUAL void Unk_12A(void)
void PlayMagicFailureSound(MagicSystem::SpellType a_spellType)
const CrimeValue & GetCrimeValue() const noexcept
Definition: PlayerCharacter.h:813
const BSTEventSink< TESTrackedStatsEvent > * AsTESTrackedStatsEventSink() const noexcept
Definition: PlayerCharacter.h:625
const INFO_RUNTIME_DATA & GetInfoRuntimeData() const noexcept
Definition: PlayerCharacter.h:873
bool CheckCast(MagicItem *a_spell, Effect *a_effect, MagicSystem::CannotCastReason &a_reason)
static constexpr auto FORMTYPE
Definition: PlayerCharacter.h:246
EventType
Definition: PlayerCharacter.h:249
const PLAYER_RUNTIME_DATA & GetPlayerRuntimeData() const noexcept
Definition: PlayerCharacter.h:798
TintMask * GetOverlayTintMask(TintMask *a_original)
std::int32_t GetItemCount(TESBoundObject *a_object)
SKYRIM_REL_VR_VIRTUAL void ClearAllCrimeGold(TESFaction *a_faction)
Definition: TESBoundObject.h:24
Definition: TESFaction.h:120
Definition: TESObjectCELL.h:116
Definition: TESObjectREFR.h:113
Definition: TESObjectWEAP.h:79
Definition: TESObject.h:11
Definition: TESRace.h:146
Definition: TESWorldSpace.h:118
SpellType
Definition: MagicSystem.h:61
CannotCastReason
Definition: MagicSystem.h:10
Definition: AbsorbEffect.h:6
constexpr std::array< REL::VariantID, 17 > VTABLE_PlayerCharacter
Definition: Offsets_VTABLE.h:2231
constexpr REL::VariantID RTTI_PlayerCharacter(686898, 394747, 0x1f07958)
ActorValue
Definition: ActorValues.h:6
PLAYER_ACTION
Definition: PlayerCharacter.h:56
AQUIRE_TYPE
Definition: BGSAddToPlayerInventoryEvent.h:11
std::uint32_t RefHandle
Definition: BSCoreTypes.h:6
constexpr REL::Version RUNTIME_SSE_1_6_629(1, 6, 629, 0)
BIPED_OBJECT
Definition: BipedObjects.h:8
Definition: PlayerCharacter.h:170
float nonViolentCur
Definition: PlayerCharacter.h:174
float violentInfamy
Definition: PlayerCharacter.h:176
float nonViolentInfamy
Definition: PlayerCharacter.h:175
float violentCur
Definition: PlayerCharacter.h:173
Definition: PlayerCharacter.h:190
std::uint16_t friendCounts[4]
Definition: PlayerCharacter.h:193
Definition: PlayerCharacter.h:220
RefHandle refObj
Definition: PlayerCharacter.h:224
float timer
Definition: PlayerCharacter.h:223
stl::enumeration< PLAYER_ACTION, std::uint32_t > next
Definition: PlayerCharacter.h:225
Definition: PlayerCharacter.h:376
Definition: PlayerCharacter.h:397
Definition: PlayerCharacter.h:469
Definition: PlayerCharacter.h:630
Definition: PlayerCharacter.h:270
bool everModded
Definition: PlayerCharacter.h:315
bool goToJailQueued
Definition: PlayerCharacter.h:310
bool unk1_4
Definition: PlayerCharacter.h:284
bool unk3_3
Definition: PlayerCharacter.h:299
bool unk2_0
Definition: PlayerCharacter.h:288
std::uint16_t pad6
Definition: PlayerCharacter.h:318
bool isSungazing
Definition: PlayerCharacter.h:313
bool travelUseDoor
Definition: PlayerCharacter.h:272
bool aiControlledFromPos
Definition: PlayerCharacter.h:290
bool aiControlledPackage
Definition: PlayerCharacter.h:291
bool unk1_0
Definition: PlayerCharacter.h:280
bool unk4_7
Definition: PlayerCharacter.h:311
bool unk1_1
Definition: PlayerCharacter.h:281
bool aiControlledToPos
Definition: PlayerCharacter.h:289
bool unk3_2
Definition: PlayerCharacter.h:298
bool unk0_4
Definition: PlayerCharacter.h:276
bool pad5_5
Definition: PlayerCharacter.h:317
bool unk1_3
Definition: PlayerCharacter.h:283
bool magickaTutorialShown
Definition: PlayerCharacter.h:308
bool escaping
Definition: PlayerCharacter.h:278
bool unk2_7
Definition: PlayerCharacter.h:295
bool isInThirdPersonMode
Definition: PlayerCharacter.h:296
bool unk4_2
Definition: PlayerCharacter.h:306
bool attemptedYieldInCurrentCombat
Definition: PlayerCharacter.h:302
bool greetingPlayer
Definition: PlayerCharacter.h:286
bool target3DDistant
Definition: PlayerCharacter.h:300
bool returnToLastKnownGoodPosition
Definition: PlayerCharacter.h:292
bool unk2_6
Definition: PlayerCharacter.h:294
bool shouldUpdateCrosshair
Definition: PlayerCharacter.h:305
bool unk3_1
Definition: PlayerCharacter.h:297
bool healthTutorialShown
Definition: PlayerCharacter.h:307
bool forceQuestTargetRepath
Definition: PlayerCharacter.h:279
bool fastTraveling
Definition: PlayerCharacter.h:273
bool unk1_5
Definition: PlayerCharacter.h:285
bool sleeping
Definition: PlayerCharacter.h:282
bool overAutoAimTarget
Definition: PlayerCharacter.h:274
bool isInCombat
Definition: PlayerCharacter.h:301
bool showQuestItems
Definition: PlayerCharacter.h:275
bool servingJailTime
Definition: PlayerCharacter.h:316
bool isLoading
Definition: PlayerCharacter.h:304
bool isSprinting
Definition: PlayerCharacter.h:312
bool unk3_7
Definition: PlayerCharacter.h:303
bool unk1_7
Definition: PlayerCharacter.h:287
bool hasQueuedEquipAnim
Definition: PlayerCharacter.h:277
bool isBeingChased
Definition: PlayerCharacter.h:293
bool dragonRideTargetLocked
Definition: PlayerCharacter.h:314
bool staminaTutorialShown
Definition: PlayerCharacter.h:309
Definition: PlayerCharacter.h:444
float level
Definition: PlayerCharacter.h:447
float levelThreshold
Definition: PlayerCharacter.h:449
float xp
Definition: PlayerCharacter.h:448
Definition: PlayerCharacter.h:417
Skill
Definition: PlayerCharacter.h:419
@ kIllusion
Definition: PlayerCharacter.h:435
@ kAlchemy
Definition: PlayerCharacter.h:430
@ kSneak
Definition: PlayerCharacter.h:429
@ kEnchanting
Definition: PlayerCharacter.h:437
@ kLightArmor
Definition: PlayerCharacter.h:426
@ kArchery
Definition: PlayerCharacter.h:422
@ kSmithing
Definition: PlayerCharacter.h:424
@ kDestruction
Definition: PlayerCharacter.h:434
@ kPickpocket
Definition: PlayerCharacter.h:427
@ kLockpicking
Definition: PlayerCharacter.h:428
@ kTwoHanded
Definition: PlayerCharacter.h:421
@ kOneHanded
Definition: PlayerCharacter.h:420
@ kRestoration
Definition: PlayerCharacter.h:436
@ kConjuration
Definition: PlayerCharacter.h:433
@ kTotal
Definition: PlayerCharacter.h:438
@ kAlteration
Definition: PlayerCharacter.h:432
@ kBlock
Definition: PlayerCharacter.h:423
@ kSpeech
Definition: PlayerCharacter.h:431
@ kHeavyArmor
Definition: PlayerCharacter.h:425
Definition: PlayerCharacter.h:414
SkillData skills[Skill::kTotal]
Definition: PlayerCharacter.h:456
float xp
Definition: PlayerCharacter.h:451
float levelThreshold
Definition: PlayerCharacter.h:455
std::uint32_t legendaryLevels[Skill::kTotal]
Definition: PlayerCharacter.h:457
Definition: PlayerCharacter.h:411
Data * data
Definition: PlayerCharacter.h:464
void AdvanceLevel(bool a_addThreshold)
Definition: PlayerCharacter.h:323
TESObjectWEAP * rightHandWeapon
Definition: PlayerCharacter.h:326
TESObjectWEAP * leftHandWeapon
Definition: PlayerCharacter.h:327
Definition: PlayerCharacter.h:386
Definition: PlayerCharacter.h:335
TESWorldSpace * worldspace
Definition: PlayerCharacter.h:340
char pad01[7]
Definition: PlayerCharacter.h:339
bool unk00
Definition: PlayerCharacter.h:338
TESObjectCELL * interiorCell
Definition: PlayerCharacter.h:341
Definition: PlayerCharacter.h:346
std::uint64_t unk10
Definition: PlayerCharacter.h:351
std::uint64_t unk08
Definition: PlayerCharacter.h:350
RE::TESObjectREFR * unk00
Definition: PlayerCharacter.h:349
Definition: PlayerCharacter.h:332
BSTArray< Unk00Data > unk00
Definition: PlayerCharacter.h:353
std::uint64_t unk38
Definition: PlayerCharacter.h:359
BSTArray< Unk18Data > unk18
Definition: PlayerCharacter.h:357
std::uint64_t unk30
Definition: PlayerCharacter.h:358
std::uint64_t unk40
Definition: PlayerCharacter.h:360
Definition: PlayerCharacter.h:181
std::int32_t unwitnessed
Definition: PlayerCharacter.h:184
std::int32_t witnessed
Definition: PlayerCharacter.h:185
Definition: PlayerCharacter.h:78