28 class BGSInstancedQuestObjective;
30 class bhkMouseSpringAction;
36 class ImageSpaceModifierInstanceDOF;
37 class InventoryEntryData;
38 class MenuModeChangeEvent;
39 class MenuOpenCloseEvent;
41 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
342 static_assert(
sizeof(
Unk00Data) == 0x18);
352 static_assert(
sizeof(
Unk18Data) == 0x18);
376#define CRIME_VALUE_CONTENT \
377 BSTHashMap<const TESFaction*, CrimeGoldStruct> crimeGoldMap; \
378 BSTHashMap<const TESFaction*, StolenItemValueStruct> stolenItemValueMap;
382 static_assert(
sizeof(CrimeValue) == 0x60);
386#define RACE_DATA_CONTENT \
387 BGSTextureSet* complexion; \
388 TESRace* charGenRace; \
393 static_assert(
sizeof(RaceData) == 0x18);
397#define GAME_STATE_DATA_CONTENT \
398 std::int32_t difficulty; \
399 ActorHandle assumedIdentity; \
400 std::int8_t murder; \
401 std::int8_t perkCount; \
402 stl::enumeration<ByCharGenFlag, std::uint8_t> byCharGenFlag; \
407 static_assert(
sizeof(GameStateData) == 0xC);
458 static_assert(
sizeof(
Data) == 0x128);
469#define INFO_RUNTIME_DATA_CONTENT \
470 float grabDistance; \
472 std::uint64_t unk008; \
473 std::uint32_t unk010; \
474 std::uint32_t sleepSeconds; \
475 BSTSmartPointer<BipedAnim> largeBiped; \
476 NiPointer<NiNode> firstPerson3D; \
479 float encumberedTimer; \
480 float powerAttackTimer; \
481 std::int32_t hoursToSleep; \
482 std::int32_t amountStolenSold; \
483 std::uint32_t valueStolen; \
484 ActorHandle lastRiddenMount; \
485 ActorHandle lightTarget; \
486 float sortActorDistanceTimer; \
487 float sitHeadingDelta; \
488 ObjectRefHandle playerMapMarker; \
489 TeleportPath* playerMarkerPath; \
490 std::uint32_t skillTrainingsThisLevel; \
491 std::uint32_t unk064; \
492 TESClass* defaultClass; \
493 std::uint64_t unk070; \
494 std::uint32_t crimeCounts[PackageNS::CRIME_TYPES::kTotal]; \
495 std::uint32_t unk094; \
496 AlchemyItem* pendingPoison; \
497 std::int64_t lastPlayingTimeUpdate; \
498 std::int64_t totalPlayingTime; \
499 std::int32_t characterSeed; \
500 std::uint32_t unk0B4; \
501 TESForm* lastKnownGoodLocation; \
502 std::uint32_t unk0C0; \
503 std::uint32_t unk0C4; \
504 NiPointer<BSLight> firstPersonLight; \
505 NiPointer<BSLight> thirdPersonLight; \
506 float dropAngleMod; \
507 float lastDropAngleMod; \
508 PlayerSkills* skills; \
509 ActorHandle autoAimActor; \
511 std::uint64_t unk118; \
512 NiPointer<NiAVObject> targeted3D; \
513 CombatGroup* combatGroup; \
514 BSTArray<ActorHandle> actorsToDisplayOnTheHUDArray; \
515 TESForm* advanceObject; \
516 TESBoundObject* lastOneHandItems[2]; \
517 std::uint32_t teammateCount; \
521 float drawSheatheSafetyTimer; \
522 std::uint32_t unk14C;
526 static_assert(
sizeof(INFO_RUNTIME_DATA) == 0x150);
551#ifndef ENABLE_SKYRIM_VR
559 [[nodiscard]] std::uint32_t
GetNumTints(std::uint32_t a_tintType);
562 [[nodiscard]] TintMask*
GetTintMask(std::uint32_t a_tintType, std::uint32_t a_index);
629#ifndef ENABLE_SKYRIM_VR
630#define PLAYER_RUNTIME_DATA_CONTENT \
631 mutable BSSpinLock questTargetsLock; \
632 CRIME_VALUE_CONTENT; \
633 ObjectRefHandle commandWaitMarker; \
634 std::uint32_t pad444; \
635 BSTHashMap<const TESFaction*, FriendshipFactionsStruct> factionOwnerFriendsMap; \
636 NiPoint3 lastKnownGoodPosition; \
637 NiPoint3 bulletAutoAim; \
638 NiPoint3 cachedVelocity; \
640 BGSNote* unusedNote; \
641 BGSNote* unusedNote2; \
642 BSTArray<PerkRankData*> addedPerks; \
643 BSTArray<BGSPerk*> perks; \
644 BSTArray<BGSPerk*> standingStonePerks; \
645 BSTArray<ObjectRefHandle> currentMapMarkers; \
646 BSTArray<BSTTuple<NiPoint3, AITimeStamp>> velocityArray; \
647 BSTArray<ProjectileHandle> runesCast; \
648 BSTArray<void*> imageSpaceModifierAnims1; \
649 BSTArray<void*> imageSpaceModifierAnims2; \
650 BSSimpleList<TESQuestStageItem*> questLog; \
651 BSTArray<BGSInstancedQuestObjective> objectives; \
652 BSTHashMap<TESQuest*, BSTArray<TESQuestTarget*>*> questTargets; \
653 BSTHashMap<UnkKey, UnkValue> currentSayOnceInfosMap; \
654 BSSimpleList<ObjectRefHandle> droppedRefList; \
655 NiTMap<std::uint32_t, std::uint8_t> randomDoorSpaceMap; \
656 TESWorldSpace* cachedWorldSpace; \
657 NiPoint3 exteriorPosition; \
658 std::uint32_t pad63C; \
659 PLAYER_TARGET_LOC queuedTargetLoc; \
660 BSSoundHandle unusedSound; \
661 BSSoundHandle magicFailureSound; \
662 BSSoundHandle shoutFailureSound; \
663 std::uint32_t pad6AC; \
664 DialoguePackage* closestConversation; \
665 std::uint32_t unk6B8; \
666 std::uint32_t unk6BC; \
667 DialoguePackage* aiConversationRunning; \
668 std::int32_t numberofStealWarnings; \
669 float stealWarningTimer; \
670 std::int32_t numberofPickpocketWarnings; \
671 float pickPocketWarningTimer; \
672 AITimeStamp warnToLeaveTimeStamp; \
673 std::uint32_t pad6DC; \
674 ImageSpaceModifierInstanceDOF* ironsightsDOFInstance; \
675 ImageSpaceModifierInstanceDOF* vatsDOFInstance; \
676 ImageSpaceModifierInstanceDOF* dynamicDOFInstance; \
677 float dynamicDOFFocusTime; \
678 bool dynamicDOFFocused; \
679 std::uint8_t unk6FD; \
680 std::uint16_t unk6FE; \
681 NiPoint3 dynamicDOFLastAngle; \
682 NiPoint3 dynamicDOFLastPosition; \
683 TESFaction* currentPrisonFaction; \
684 std::int32_t jailSentence; \
685 std::uint32_t pad724; \
687 QueuedWeapon queuedWeaponAttachs[WEAPON_TYPE::kTotal]; \
688 std::int32_t vampireFeedDetection; \
689 std::uint32_t mapMarkerIterator; \
690 RefHandle forceActivateRef; \
691 PlayerActionObject playerActionObjects[15]; \
692 PLAYER_ACTION mostRecentAction; \
693 ActorHandle actorDoingPlayerCommand; \
694 BSTSmallArray<hkRefPtr<bhkMouseSpringAction>, 4> grabSpring; \
695 ObjectRefHandle grabbedObject; \
696 float grabObjectWeight; \
697 INFO_RUNTIME_DATA_CONTENT; \
698 std::uint8_t unkA20[0xA0]; \
699 std::uint32_t unkAC0; \
700 std::uint32_t unkAC4; \
701 BGSLocation* currentLocation; \
702 AITimeStamp cachedVelocityTimeStamp; \
703 float telekinesisDistance; \
704 float commandTimer; \
705 float sunGazeTimer; \
706 TESImageSpaceModifier* sunGazeImageModifierSpace; \
707 ActorValue advanceSkill; \
708 std::uint32_t advanceAction; \
709 stl::enumeration<DEFAULT_OBJECT, std::int32_t> animationObjectAction; \
710 stl::enumeration<GrabbingType, std::uint32_t> grabType; \
711 GAME_STATE_DATA_CONTENT; \
712 std::uint32_t unkB04; \
713 Crime* resistArrestCrime; \
714 BSTArray<TintMask*> tintMasks; \
715 BSTArray<TintMask*>* overlayTintMasks; \
717 std::int32_t unkB48; \
718 std::uint32_t padB4C; \
719 BSTArray<std::uint64_t> unkB50; \
720 std::uint64_t unkB68; \
721 std::uint64_t unkB70; \
722 std::uint64_t unkB78; \
723 std::uint64_t unkB80; \
724 std::int32_t unkB88; \
725 std::uint32_t padB8C; \
726 std::uint64_t unkB90; \
727 TESBoundObject* unkB98; \
728 BSTSmallArray<void*, 4> unkBA0; \
729 PreTransformationData* preTransformationData; \
730 PlayerFlags playerFlags;
731#elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
732#define PLAYER_RUNTIME_DATA_CONTENT \
733 std::uint64_t unk3D8; \
734 std::uint64_t unk3E0; \
735 std::uint64_t unk3E8; \
736 VR_NODE_DATA_CONTENT; \
737 std::uint64_t unk680; \
738 std::uint64_t unk688; \
739 std::uint64_t unk690; \
740 std::uint64_t unk698; \
741 std::uint64_t unk6A0; \
742 std::uint64_t unk6A8[0x65]; \
743 CRIME_VALUE_CONTENT; \
744 std::uint64_t unkA30[0x11]; \
746 std::uint64_t unk6C0[0x14]; \
750 std::uint64_t addedPerks; \
751 std::uint64_t perks; \
752 std::uint64_t standingStonePerks; \
753 std::uint64_t unkB78; \
754 std::uint64_t unkB80; \
755 std::uint64_t unkMessageArrayPtr; \
756 std::uint64_t unkB90; \
757 std::uint64_t unkB98; \
758 std::uint64_t unkBA0; \
759 std::uint64_t unkBA8; \
760 std::uint64_t unkBB0[0x25]; \
761 std::uint64_t imageSpaceModifierAnims1; \
762 std::uint64_t imageSpaceModifierAnims2; \
763 std::uint64_t unkCE8[0x34]; \
764 std::uint32_t padE90; \
765 ActorHandle actorDoingPlayerCommand; \
766 std::uint64_t unkE90; \
767 std::uint64_t unkE98[0x27]; \
769 INFO_RUNTIME_DATA_CONTENT; \
770 std::uint64_t unk1120[0x1A]; \
771 std::uint32_t unk11F0; \
772 GAME_STATE_DATA_CONTENT; \
773 std::uint64_t unk1200; \
774 std::uint64_t unk1208; \
775 std::uint64_t unk1210; \
776 std::uint64_t unk1218; \
777 std::uint64_t unk1220; \
779 std::uint64_t unk1240[0x12]; \
780 std::uint8_t pad12D0; \
781 std::uint8_t flags; \
782 std::uint16_t pad12D2; \
783 std::uint32_t unk12D4;
785#define PLAYER_RUNTIME_DATA_CONTENT
805 return REL::RelocateMember<CrimeValue>(
this, 0x3E8);
808 return REL::RelocateMember<CrimeValue>(
this, 0x3E0, 0x9D0);
815 return REL::RelocateMember<CrimeValue>(
this, 0x3E8);
818 return REL::RelocateMember<CrimeValue>(
this, 0x3E0, 0x9D0);
825 return REL::RelocateMember<RaceData>(
this, 0xB38);
828 return REL::RelocateMember<RaceData>(
this, 0xB30, 0x1228);
835 return REL::RelocateMember<RaceData>(
this, 0xB38);
838 return REL::RelocateMember<RaceData>(
this, 0xB30, 0x1228);
845 return REL::RelocateMember<GameStateData>(
this, 0xB00);
848 return REL::RelocateMember<GameStateData>(
this, 0xAF8, 0x11F4);
855 return REL::RelocateMember<GameStateData>(
this, 0xB00);
858 return REL::RelocateMember<GameStateData>(
this, 0xAF8, 0x11F4);
865 return REL::RelocateMember<INFO_RUNTIME_DATA>(
this, 0x8D8);
868 return REL::RelocateMember<INFO_RUNTIME_DATA>(
this, 0x8D0, 0xFD0);
875 return REL::RelocateMember<INFO_RUNTIME_DATA>(
this, 0x8D8);
878 return REL::RelocateMember<INFO_RUNTIME_DATA>(
this, 0x8D0, 0xFD0);
886 return &REL::RelocateMember<VR_NODE_DATA>(
this, 0, 0x3F0);
895 return &REL::RelocateMember<VR_NODE_DATA>(
this, 0, 0x3F0);
900#if (!defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)) || (!defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_VR))
907#if !defined(ENABLE_SKYRIM_VR) && !defined(ENABLE_SKYRIM_AE)
908 static_assert(
sizeof(PlayerCharacter) == 0xBE0);
909#elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
910 static_assert(
sizeof(PlayerCharacter) == 0x12D8);
913#undef PLAYER_RUNTIME_DATA_CONTENT
914#undef VR_NODE_DATA_CONTENT
915#undef INFO_RUNTIME_DATA_CONTENT
916#undef GAME_STATE_DATA_CONTENT
917#undef RACE_DATA_CONTENT
#define CRIME_VALUE_CONTENT
Definition PlayerCharacter.h:376
#define PLAYER_RUNTIME_DATA_CONTENT
Definition PlayerCharacter.h:630
#define RACE_DATA_CONTENT
Definition PlayerCharacter.h:386
#define VR_NODE_DATA_CONTENT
Definition PlayerCharacter.h:79
#define GAME_STATE_DATA_CONTENT
Definition PlayerCharacter.h:397
#define INFO_RUNTIME_DATA_CONTENT
Definition PlayerCharacter.h:469
#define SKYRIM_REL_VR_CONSTEXPR
Definition Relocation.h:143
#define SKYRIM_REL_VR_VIRTUAL
Definition Relocation.h:152
#define SKYRIM_REL_CONSTEXPR
Definition Relocation.h:105
Definition BSTArray.h:377
Definition BSTEvent.h:143
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
const BSTEventSource< BGSActorCellEvent > * AsBGSActorCellEventSource() const noexcept
Definition PlayerCharacter.h:575
const INFO_RUNTIME_DATA & GetInfoRuntimeData() const noexcept
Definition PlayerCharacter.h:871
const GameStateData & GetGameStatsData() const noexcept
Definition PlayerCharacter.h:851
SKYRIM_REL_VR_VIRTUAL void Unk_12E(void)
BSTEventSink< MenuOpenCloseEvent > * AsMenuOpenCloseEventSink() noexcept
Definition PlayerCharacter.h:595
const BSTEventSink< MenuOpenCloseEvent > * AsMenuOpenCloseEventSink() const noexcept
Definition PlayerCharacter.h:599
ByCharGenFlag
Definition PlayerCharacter.h:263
static constexpr auto RTTI
Definition PlayerCharacter.h:244
TintMask * GetOverlayTintMask(TintMask *a_original)
BSTEventSink< MenuModeChangeEvent > * AsMenuModeChangeEventSink() noexcept
Definition PlayerCharacter.h:603
BSTArray< TintMask * > * GetTintList()
bool CenterOnCell(const char *a_cellName)
NiPointer< TESObjectREFR > GetGrabbedRef()
GameStateData & GetGameStatsData() noexcept
Definition PlayerCharacter.h:841
std::uint32_t GetNumTints(std::uint32_t a_tintType)
void AddPlayerAddItemEvent(TESObject *a_object, TESForm *a_owner, TESObjectREFR *a_container, AQUIRE_TYPE a_type)
SKYRIM_REL_VR_VIRTUAL std::uint32_t GetNonViolentCrimeGoldValue(const TESFaction *a_faction) const
const BSTEventSink< TESTrackedStatsEvent > * AsTESTrackedStatsEventSink() const noexcept
Definition PlayerCharacter.h:623
bool AttemptPickpocket(TESObjectREFR *a_containerRef, InventoryEntryData *a_entry, std::int32_t a_number, bool a_fromContainer=true)
INFO_RUNTIME_DATA & GetInfoRuntimeData() noexcept
Definition PlayerCharacter.h:861
const BSTEventSource< BGSActorDeathEvent > * AsBGSActorDeathEventSource() const noexcept
Definition PlayerCharacter.h:583
BSTEventSource< PositionPlayerEvent > * AsPositionPlayerEventSource() noexcept
Definition PlayerCharacter.h:587
void RemoveWeapon(BIPED_OBJECT equipIndex) override
BSTEventSource< BGSActorDeathEvent > * AsBGSActorDeathEventSource() noexcept
Definition PlayerCharacter.h:579
BSTEventSink< UserEventEnabledEvent > * AsUserEventEnabledEventSink() noexcept
Definition PlayerCharacter.h:611
void SetAIDriven(bool a_enable)
BSTEventSource< BGSActorCellEvent > * AsBGSActorCellEventSource() noexcept
Definition PlayerCharacter.h:571
NiPointer< Actor > GetActorDoingPlayerCommand() const
bool CenterOnCell(TESObjectCELL *a_cell)
void DestroyMouseSprings()
SKYRIM_REL_VR_VIRTUAL std::uint32_t GetViolentCrimeGoldValue(const TESFaction *a_faction) const
RaceData & GetRaceData() noexcept
Definition PlayerCharacter.h:821
const BSTEventSink< UserEventEnabledEvent > * AsUserEventEnabledEventSink() const noexcept
Definition PlayerCharacter.h:615
bool HasActorDoingCommand() const
VR_NODE_DATA * GetVRNodeData() noexcept
Definition PlayerCharacter.h:881
float GetDamage(InventoryEntryData *a_form)
~PlayerCharacter() override
void PlayPickupEvent(TESForm *a_item, TESForm *a_containerOwner, TESObjectREFR *a_containerRef, EventType a_eventType)
void SetEscaping(bool a_flag, bool a_escaped)
const CrimeValue & GetCrimeValue() const noexcept
Definition PlayerCharacter.h:811
void AddSkillExperience(ActorValue a_skill, float a_experience)
CrimeValue & GetCrimeValue() noexcept
Definition PlayerCharacter.h:801
TintMask * GetTintMask(std::uint32_t a_tintType, std::uint32_t a_index)
const VR_NODE_DATA * GetVRNodeData() const noexcept
Definition PlayerCharacter.h:890
float GetArmorValue(InventoryEntryData *a_form)
GrabbingType
Definition PlayerCharacter.h:256
static constexpr auto VTABLE
Definition PlayerCharacter.h:245
PLAYER_RUNTIME_DATA & GetPlayerRuntimeData() noexcept
Definition PlayerCharacter.h:791
SKYRIM_REL_VR_VIRTUAL void Unk_12A(void)
static PlayerCharacter * GetSingleton()
const BSTEventSink< MenuModeChangeEvent > * AsMenuModeChangeEventSink() const noexcept
Definition PlayerCharacter.h:607
BSTEventSink< TESTrackedStatsEvent > * AsTESTrackedStatsEventSink() noexcept
Definition PlayerCharacter.h:619
const PLAYER_RUNTIME_DATA & GetPlayerRuntimeData() const noexcept
Definition PlayerCharacter.h:796
bool CheckCast(MagicItem *a_spell, Effect *a_effect, MagicSystem::CannotCastReason &a_reason)
const RaceData & GetRaceData() const noexcept
Definition PlayerCharacter.h:831
static constexpr auto FORMTYPE
Definition PlayerCharacter.h:246
EventType
Definition PlayerCharacter.h:249
const BSTEventSource< PositionPlayerEvent > * AsPositionPlayerEventSource() const noexcept
Definition PlayerCharacter.h:591
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 TESObject.h:11
Definition TESObjectREFR.h:112
Definition TESObjectWEAP.h:79
Definition TESWorldSpace.h:118
static SKYRIM_REL_VR bool IsVR() noexcept
Definition Relocation.h:821
static Module & get()
Definition Relocation.h:658
static SKYRIM_REL bool IsAE() noexcept
Definition Relocation.h:807
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:375
Definition PlayerCharacter.h:396
Definition PlayerCharacter.h:468
Definition PlayerCharacter.h:628
Definition PlayerCharacter.h:269
bool everModded
Definition PlayerCharacter.h:314
bool goToJailQueued
Definition PlayerCharacter.h:309
bool unk1_4
Definition PlayerCharacter.h:283
bool unk3_3
Definition PlayerCharacter.h:298
bool unk2_0
Definition PlayerCharacter.h:287
std::uint16_t pad6
Definition PlayerCharacter.h:317
bool isSungazing
Definition PlayerCharacter.h:312
bool travelUseDoor
Definition PlayerCharacter.h:271
bool aiControlledFromPos
Definition PlayerCharacter.h:289
bool aiControlledPackage
Definition PlayerCharacter.h:290
bool unk1_0
Definition PlayerCharacter.h:279
bool unk4_7
Definition PlayerCharacter.h:310
bool unk1_1
Definition PlayerCharacter.h:280
bool aiControlledToPos
Definition PlayerCharacter.h:288
bool unk3_2
Definition PlayerCharacter.h:297
bool unk0_4
Definition PlayerCharacter.h:275
bool pad5_5
Definition PlayerCharacter.h:316
bool unk1_3
Definition PlayerCharacter.h:282
bool magickaTutorialShown
Definition PlayerCharacter.h:307
bool escaping
Definition PlayerCharacter.h:277
bool unk2_7
Definition PlayerCharacter.h:294
bool isInThirdPersonMode
Definition PlayerCharacter.h:295
bool unk4_2
Definition PlayerCharacter.h:305
bool attemptedYieldInCurrentCombat
Definition PlayerCharacter.h:301
bool greetingPlayer
Definition PlayerCharacter.h:285
bool target3DDistant
Definition PlayerCharacter.h:299
bool returnToLastKnownGoodPosition
Definition PlayerCharacter.h:291
bool unk2_6
Definition PlayerCharacter.h:293
bool shouldUpdateCrosshair
Definition PlayerCharacter.h:304
bool unk3_1
Definition PlayerCharacter.h:296
bool healthTutorialShown
Definition PlayerCharacter.h:306
bool forceQuestTargetRepath
Definition PlayerCharacter.h:278
bool fastTraveling
Definition PlayerCharacter.h:272
bool unk1_5
Definition PlayerCharacter.h:284
bool sleeping
Definition PlayerCharacter.h:281
bool overAutoAimTarget
Definition PlayerCharacter.h:273
bool isInCombat
Definition PlayerCharacter.h:300
bool showQuestItems
Definition PlayerCharacter.h:274
bool servingJailTime
Definition PlayerCharacter.h:315
bool isLoading
Definition PlayerCharacter.h:303
bool isSprinting
Definition PlayerCharacter.h:311
bool unk3_7
Definition PlayerCharacter.h:302
bool unk1_7
Definition PlayerCharacter.h:286
bool hasQueuedEquipAnim
Definition PlayerCharacter.h:276
bool isBeingChased
Definition PlayerCharacter.h:292
bool dragonRideTargetLocked
Definition PlayerCharacter.h:313
bool staminaTutorialShown
Definition PlayerCharacter.h:308
Definition PlayerCharacter.h:443
float level
Definition PlayerCharacter.h:446
float levelThreshold
Definition PlayerCharacter.h:448
float xp
Definition PlayerCharacter.h:447
Definition PlayerCharacter.h:416
Skill
Definition PlayerCharacter.h:418
@ kIllusion
Definition PlayerCharacter.h:434
@ kAlchemy
Definition PlayerCharacter.h:429
@ kSneak
Definition PlayerCharacter.h:428
@ kEnchanting
Definition PlayerCharacter.h:436
@ kLightArmor
Definition PlayerCharacter.h:425
@ kArchery
Definition PlayerCharacter.h:421
@ kSmithing
Definition PlayerCharacter.h:423
@ kDestruction
Definition PlayerCharacter.h:433
@ kPickpocket
Definition PlayerCharacter.h:426
@ kLockpicking
Definition PlayerCharacter.h:427
@ kTwoHanded
Definition PlayerCharacter.h:420
@ kOneHanded
Definition PlayerCharacter.h:419
@ kRestoration
Definition PlayerCharacter.h:435
@ kConjuration
Definition PlayerCharacter.h:432
@ kTotal
Definition PlayerCharacter.h:437
@ kAlteration
Definition PlayerCharacter.h:431
@ kBlock
Definition PlayerCharacter.h:422
@ kSpeech
Definition PlayerCharacter.h:430
@ kHeavyArmor
Definition PlayerCharacter.h:424
Definition PlayerCharacter.h:413
SkillData skills[Skill::kTotal]
Definition PlayerCharacter.h:455
float xp
Definition PlayerCharacter.h:453
float levelThreshold
Definition PlayerCharacter.h:454
std::uint32_t legendaryLevels[Skill::kTotal]
Definition PlayerCharacter.h:456
Definition PlayerCharacter.h:410
Data * data
Definition PlayerCharacter.h:463
void AdvanceLevel(bool a_addThreshold)
Definition PlayerCharacter.h:322
TESObjectWEAP * rightHandWeapon
Definition PlayerCharacter.h:325
TESObjectWEAP * leftHandWeapon
Definition PlayerCharacter.h:326
Definition PlayerCharacter.h:385
Definition PlayerCharacter.h:334
TESWorldSpace * worldspace
Definition PlayerCharacter.h:339
char pad01[7]
Definition PlayerCharacter.h:338
bool unk00
Definition PlayerCharacter.h:337
TESObjectCELL * interiorCell
Definition PlayerCharacter.h:340
Definition PlayerCharacter.h:345
std::uint64_t unk10
Definition PlayerCharacter.h:350
std::uint64_t unk08
Definition PlayerCharacter.h:349
RE::TESObjectREFR * unk00
Definition PlayerCharacter.h:348
Definition PlayerCharacter.h:331
BSTArray< Unk00Data > unk00
Definition PlayerCharacter.h:355
std::uint64_t unk38
Definition PlayerCharacter.h:358
BSTArray< Unk18Data > unk18
Definition PlayerCharacter.h:356
std::uint64_t unk30
Definition PlayerCharacter.h:357
std::uint64_t unk40
Definition PlayerCharacter.h:359
Definition PlayerCharacter.h:181
std::int32_t unwitnessed
Definition PlayerCharacter.h:184
std::int32_t witnessed
Definition PlayerCharacter.h:185
Definition PlayerCharacter.h:78