29 class ActorMagicCaster;
32 class bhkCharacterController;
33 class bhkCharacterMoveFinishEvent;
35 class BSTransformDeltaEvent;
36 class CombatController;
39 class InventoryEntryData;
40 class MovementControllerNPC;
41 class MovementMessageActorCollision;
43 class PackageLocation;
44 class PerkEntryVisitor;
45 class TrespassPackage;
46 struct ActorMotionFeedbackData;
47 struct ActorMotionFeedbackOutput;
77 return GetAt(
static_cast<char>(a_actorValue));
82 return GetAt(
static_cast<char>(a_actorValue));
90 [[nodiscard]] T* GetAt(
char a_actorValue)
const
94 std::uint32_t idx = 0;
95 while (akVals[idx] !=
'\0') {
96 if (akVals[idx] == a_actorValue) {
102 if (akVals[idx] !=
'\0') {
103 return std::addressof(
entries[idx]);
109 static_assert(
sizeof(LocalMap<float>) == 0x10);
120#ifndef ENABLE_SKYRIM_AE
299 void DoTrap2(TrapEntry* a_trap, TargetEntry* a_target)
override;
324#ifndef SKYRIM_CROSS_VR
341 [[nodiscard]]
bool IsDead(
bool a_notEssential =
true)
const override;
349#ifndef ENABLE_SKYRIM_AE
501 void CastPermanentMagic(
bool a_wornItemEnchantments,
bool a_baseSpells,
bool a_raceSpells,
bool a_everyActorAbility);
633#define RUNTIME_DATA_CONTENT \
634 stl::enumeration<BOOL_BITS, std::uint32_t> boolBits; \
635 float updateTargetTimer; \
636 stl::enumeration<ACTOR_CRITICAL_STAGE, std::uint32_t> criticalStage; \
637 std::uint32_t pad0EC; \
638 AIProcess* currentProcess; \
639 ObjectRefHandle dialogueItemTarget; \
640 ActorHandle currentCombatTarget; \
641 ActorHandle myKiller; \
642 float checkMyDeadBodyTimer; \
644 float underWaterTimer; \
645 std::int32_t thiefCrimeStamp; \
646 std::int32_t actionValue; \
647 float timerOnAction; \
648 std::uint32_t unk11C; \
649 NiPoint3 editorLocCoord; \
650 float editorLocRot; \
651 TESForm* editorLocForm; \
652 BGSLocation* editorLocation; \
653 ActorMover* actorMover; \
654 BSTSmartPointer<MovementControllerNPC> movementController; \
655 TESPackage* unk150; \
656 CombatController* combatController; \
657 TESFaction* vendorFaction; \
658 AITimeStamp calculateVendorFactionTimer; \
659 EmotionType emotionType; \
660 std::uint32_t emotionValue; \
661 std::uint32_t unk174; \
662 std::uint32_t unk178; \
663 std::uint32_t intimidateBribeDayStamp; \
664 std::uint64_t unk180; \
665 BSTSmallArray<SpellItem*> addedSpells; \
666 ActorMagicCaster* magicCasters[SlotTypes::kTotal]; \
667 MagicItem* selectedSpells[SlotTypes::kTotal]; \
668 TESForm* selectedPower; \
669 std::uint32_t unk1E8; \
670 std::uint32_t pad1EC; \
672 float equippedWeight; \
673 stl::enumeration<BOOL_FLAGS, std::uint32_t> boolFlags; \
674 ActorValueStorage avStorage; \
675 BGSDialogueBranch* exclusiveBranch; \
676 Modifiers healthModifiers; \
677 Modifiers magickaModifiers; \
678 Modifiers staminaModifiers; \
679 Modifiers voicePointsModifiers; \
681 std::uint32_t lastSeenTime; \
682 BSTSmartPointer<BipedAnim> biped; \
684 float armorBaseFactorSum; \
685 std::int8_t soundCallBackSet; \
686 std::uint8_t unk271; \
687 std::uint8_t unk272; \
688 std::uint8_t unk273; \
689 std::uint32_t unk274; \
690 std::uint64_t unk278; \
691 std::uint64_t unk280; \
692 WinAPI::CRITICAL_SECTION unk288;
740 return &REL::RelocateMemberIfNewer<BSTEventSink<bhkCharacterMoveFinishEvent>>(
SKSE::RUNTIME_SSE_1_6_629,
this, 0xD0, 0xD8);
744 return &REL::RelocateMemberIfNewer<BSTEventSink<bhkCharacterMoveFinishEvent>>(
SKSE::RUNTIME_SSE_1_6_629,
this, 0xD0, 0xD8);
756#ifndef ENABLE_SKYRIM_AE
761 void CalculateCurrentVendorFaction()
const;
762 float CalcEquippedWeight();
765#ifndef ENABLE_SKYRIM_AE
766 static_assert(
sizeof(Actor) == 0x2B0);
769#undef RUNTIME_DATA_CONTENT
#define RUNTIME_DATA_CONTENT
Definition Actor.h:633
#define NiSmartPointer(className)
Definition NiSmartPointer.h:251
#define SKYRIM_REL_VR_VIRTUAL
Definition Relocation.h:152
virtual BSContainer::ForEachResult Visit(SpellItem *a_spell)=0
static constexpr auto RTTI
Definition Actor.h:260
virtual ~ForEachSpellVisitor()=default
SKYRIM_REL_VR_VIRTUAL void StopCombat()
bool IsCommandedActor() const
SKYRIM_REL_VR_VIRTUAL void SetVampireFeed(bool a_set)
void StopInteractingQuick(bool a_unk02)
BGSAnimationSequencer * GetSequencer(void) const override
ObjectRefHandle GetOccupiedFurniture() const
bool GetRider(NiPointer< Actor > &a_outRider)
BSTEventSink< bhkCharacterMoveFinishEvent > * AsCharacterMoveFinishEventSink() noexcept
Definition Actor.h:739
const IPostAnimationChannelUpdateFunctor * AsIPostAnimationChannelUpdateFunctor() const noexcept
Definition Actor.h:751
SKYRIM_REL_VR_VIRTUAL void ServePrisonTime()
float GetActorValueModifier(ACTOR_VALUE_MODIFIER a_modifier, ActorValue a_value) const
SKYRIM_REL_VR_VIRTUAL void AttachArrow(const BSTSmartPointer< BipedAnim > &a_biped)
SKYRIM_REL_VR_VIRTUAL void Unk_106(void)
SKYRIM_REL_VR_VIRTUAL float CheckClampDamageModifier(ActorValue a_av, float a_delta)
SKYRIM_REL_VR_VIRTUAL Actor * SetUpTalkingActivatorActor(Actor *a_target, Actor *&a_activator)
NiPoint3 GetBoundMin() const override
SKYRIM_REL_VR_VIRTUAL bool AddShout(TESShout *a_shout)
NiNode * GetFireNode() override
SKYRIM_REL_VR_VIRTUAL bool QSpeakingDone() const
bool IsChild() const override
SKYRIM_REL_VR_VIRTUAL void SetRefraction(bool a_enable, float a_refraction)
SKYRIM_REL_VR_VIRTUAL void SetSize(float a_size)
void SaveGame(BGSSaveFormBuffer *a_buf) override
void Unk_69(void) override
std::int32_t RequestDetectionLevel(Actor *a_target, DETECTION_PRIORITY a_priority=DETECTION_PRIORITY::kNormal)
bool ProcessInWater(hkpCollidable *a_collidable, float a_waterHeight, float a_deltaTime) override
SKYRIM_REL_VR_VIRTUAL void SetCrimeGoldValue(TESFaction *a_faction, bool a_violent, std::uint32_t a_amount)
BOOL_FLAGS
Definition Actor.h:190
@ kSceneHeadTrackRotation
@ kDoNotShowOnStealthMeter
@ kForceOneAnimgraphUpdate
@ kAllowInstantFurniturePopInPlayerCell
@ kCheckAddEffectDualCast
@ kCanSpeakToEssentialDown
SKYRIM_REL_VR_VIRTUAL void SetEmotionValue(std::uint32_t a_emotionValue)
bool ShouldPerformRevert() const override
SKYRIM_REL_VR_VIRTUAL void UpdateNoAI(float a_delta)
SKYRIM_REL_VR_VIRTUAL void PotentiallyFixRagdollState()
SKYRIM_REL_VR_VIRTUAL void RemoveCrimeGoldValue(TESFaction *a_faction, bool a_violent, std::int32_t a_amount)
void AddToFaction(TESFaction *a_faction, std::int8_t a_rank)
void UpdateSoundCallBack(bool a_endSceneAction) override
std::uint8_t WhoIsCasting()
SKYRIM_REL_VR_VIRTUAL void Unk_C4(void)
bool HasShout(TESShout *a_shout) const
SKYRIM_REL_VR_VIRTUAL void Resurrect(bool a_resetInventory, bool a_attach3D)
SKYRIM_REL_VR_VIRTUAL void ForEachPerkEntry(EntryPoint a_entryType, PerkEntryVisitor &a_visitor) const
SKYRIM_REL_VR_VIRTUAL void SetAvoidanceDisabled(bool a_set)
NiPoint3 GetLookingAtLocation() const override
SKYRIM_REL_VR_VIRTUAL bool IsInFaction(const TESFaction *faction) const
NiPointer< Actor > GetCommandingActor() const
BSFaceGenAnimationData * GetFaceGenAnimationData() override
bool GetMountedBy(NiPointer< Actor > &a_outRider)
SKYRIM_REL_VR_VIRTUAL bool MoveToMiddleHigh()
void MoveHavok(bool a_forceRec) override
ObjectRefHandle RemoveItem(TESBoundObject *a_item, std::int32_t a_count, ITEM_REMOVE_REASON a_reason, ExtraDataList *a_extraList, TESObjectREFR *a_moveToRef, const NiPoint3 *a_dropLoc=0, const NiPoint3 *a_rotate=0) override
void DispelAlteredStates(RE::EffectArchetype a_exception)
void SetFireNode(NiNode *a_fireNode) override
bool IsCurrentShout(SpellItem *a_power)
ActorValueOwner * AsActorValueOwner() noexcept
Definition Actor.h:715
SKYRIM_REL_VR_VIRTUAL void UnlockWord(TESWordOfPower *a_power)
SKYRIM_REL_VR_VIRTUAL void ApplyTemporaryPerk(BGSPerk *a_perk)
SKYRIM_REL_VR_VIRTUAL std::uint32_t GetEmotionValue()
bool RemoveSpell(SpellItem *a_spell)
bool OnAddCellPerformQueueReference(TESObjectCELL &a_cell) const override
MagicTarget * AsMagicTarget() noexcept
Definition Actor.h:707
SKYRIM_REL_VR_VIRTUAL void AddPerk(BGSPerk *a_perk, std::uint32_t a_rank=0)
SKYRIM_REL_VR_VIRTUAL void ModifyMovementData(float a_delta, NiPoint3 &a_arg3, NiPoint3 &a_arg4)
const MagicTarget * AsMagicTarget() const noexcept
Definition Actor.h:711
SKYRIM_REL_VR_VIRTUAL float GetWalkSpeed()
void RemoveExtraArrows3D()
NiPoint3 GetStartingAngle() const override
TESPackage * GetCurrentPackage()
SKYRIM_REL_VR_VIRTUAL void DrawWeaponMagicHands(bool a_draw)
SKYRIM_REL_VR_VIRTUAL void InitiateFlee(TESObjectREFR *a_fleeRef, bool a_runOnce, bool a_knows, bool a_combatMode, TESObjectCELL *a_cell, TESObjectREFR *a_ref, float a_fleeFromDist, float a_fleeToDist)
SKYRIM_REL_VR_VIRTUAL const BSFixedString & GetResponseString() const
void Revert(BGSLoadFormBuffer *a_buf) override
bool IsTrespassing() const
void AllowPCDialogue(bool a_talk)
SKYRIM_REL_VR_VIRTUAL void ApplyPerksFromBase()
SKYRIM_REL_VR_VIRTUAL void HandleHealthDamage(Actor *a_attacker, float a_damage)
void AddObjectToContainer(TESBoundObject *a_object, ExtraDataList *a_extraList, std::int32_t a_count, TESObjectREFR *a_fromRefr) override
bool HasLineOfSight(TESObjectREFR *a_ref, bool &a_arg2)
std::int32_t GetGoldAmount(bool a_noInit=false)
const ActorValueOwner * AsActorValueOwner() const noexcept
Definition Actor.h:719
bool AddAnimationGraphEventSink(BSTEventSink< BSAnimationGraphEvent > *a_sink) const
bool ShouldSaveAnimationOnSaving() const override
void InitHavok() override
SKYRIM_REL_VR_VIRTUAL EmotionType GetEmotionType()
SKYRIM_REL_VR_VIRTUAL void Unk_117(void)
SKYRIM_REL_VR_VIRTUAL void Unk_C5(void)
SKYRIM_REL_VR_VIRTUAL void PickUpObject(TESObjectREFR *a_object, std::int32_t a_count, bool a_arg3=false, bool a_playSound=true)
SKYRIM_REL_VR_VIRTUAL void SetCannibal(bool a_set)
SKYRIM_REL_VR_VIRTUAL void GoToPrison(TESFaction *a_faction, bool a_removeInventory, bool a_realJail)
void SetDelete(bool a_set) override
SKYRIM_REL_VR_VIRTUAL void WornArmorChanged(void)
void RemoveWeapon(BIPED_OBJECT equipIndex) override
static constexpr auto RTTI
Definition Actor.h:136
SKYRIM_REL_VR_VIRTUAL void Unk_123(void)
bool IsBeingRidden() const
void DoMoveToHigh() override
BGSScene * GetCurrentScene() const override
float GetAimHeading() const
SKYRIM_REL_VR_VIRTUAL bool CheckValidTarget(TESObjectREFR &a_target)
SKYRIM_REL_VR_VIRTUAL void InitiateVampireFeedPackage(Actor *a_target, TESObjectREFR *a_furniture)
SKYRIM_REL_VR_VIRTUAL void DetachArrow(const BSTSmartPointer< BipedAnim > &a_biped)
void UnequipItem(std::uint64_t a_arg1, TESBoundObject *a_object) override
void ClearExpressionOverride()
SKYRIM_REL_VR_VIRTUAL bool IsAtPoint(const NiPoint3 &a_point, float a_radius, bool a_expandRadius, bool a_alwaysTestHeight)
SKYRIM_REL_VR_VIRTUAL bool CalculateCachedOwnerIsNPC() const
MagicTarget * GetMagicTarget() override
BSTEventSink< BSTransformDeltaEvent > * AsBSTransformDeltaEventSink() noexcept
Definition Actor.h:731
BGSDialogueBranch * GetExclusiveBranch() const override
SKYRIM_REL_VR_VIRTUAL void UseSkill(ActorValue a_av, float a_points, TESForm *a_arg3)
void Unk_67(void) override
SKYRIM_REL_VR_VIRTUAL float GetRunSpeed()
TESForm * GetEquippedObject(bool a_leftHand) const
bool UpdateInDialogue(DialogueResponse *a_response, bool a_unused) override
ActorHandle CreateRefHandle()
bool IsPointSubmergedMoreThan(const NiPoint3 &a_pos, TESObjectCELL *a_cell, float a_waterLevel)
SKYRIM_REL_VR_VIRTUAL void Unk_C6(void)
TESFaction * GetVendorFaction()
SKYRIM_REL_VR_VIRTUAL bool PutActorOnMountQuick()
SKYRIM_REL_VR_VIRTUAL void OnItemEquipped(bool a_playAnim)
void SetCurrentScene(BGSScene *a_scene) override
SKYRIM_REL_VR_VIRTUAL void PlayPickUpSound(TESBoundObject *a_object, bool a_pickup, bool a_use)
bool GetMount(NiPointer< Actor > &a_outMount)
bool MagicTargetIsActor() const override
void SwitchRace(TESRace *a_race, bool a_player)
SOUL_LEVEL GetSoulSize() const
SKYRIM_REL_VR_VIRTUAL void UpdateCharacterControllerSimulationSettings(bhkCharacterController &a_controller)
SKYRIM_REL_VR_VIRTUAL void CheckTempModifiers()
SKYRIM_REL_VR_VIRTUAL void PayFine(TESFaction *a_faction, bool a_goToJail, bool a_removeStolenItems)
void TryUpdateActorLastSeenTime() override
SKYRIM_REL_VR_VIRTUAL void ModCrimeGoldValue(TESFaction *a_faction, bool a_violent, std::int32_t a_amount)
bool CanUseIdle(TESIdleForm *a_idle) const
const TESNPC * GetActorBase() const
bool SetSleepOutfit(BGSOutfit *a_outfit, bool a_update3D)
SKYRIM_REL_VR_VIRTUAL void UpdateCombatControllerSettings()
void SetExclusiveBranch(BGSDialogueBranch *a_branch) override
NiPoint3 GetBoundMax() const override
void UpdateWeaponAbility(TESForm *a_weapon, ExtraDataList *a_extraData, bool a_leftHand)
bool IsHostileToActor(Actor *a_actor)
SKYRIM_REL_VR_VIRTUAL float GetFastWalkSpeed()
SKYRIM_REL_VR_VIRTUAL float GetArmorBaseFactorSum()
void Set3D(NiAVObject *a_object, bool a_queue3DTasks=true) override
SKYRIM_REL_VR_VIRTUAL void Unk_B4(void)
BOOL_BITS
Definition Actor.h:153
@ kForceUpdateQuestTarget
@ kIgnoreChangeAnimationCall
TESShout * GetCurrentShout()
SKYRIM_REL_VR_VIRTUAL void SetEmotionType(EmotionType a_emotionType)
float GetWarmthRating() const
SKYRIM_REL_VR_VIRTUAL bool ShouldRespondToActorCollision(const MovementMessageActorCollision &a_msg, const ActorHandlePtr &a_target)
SKYRIM_REL_VR_VIRTUAL void PrecacheData()
SKYRIM_REL_VR_VIRTUAL bool IsInCombat() const
SKYRIM_REL_VR_VIRTUAL void DetachCharController()
void DoReset3D(bool a_updateWeight)
bool IsOverEncumbered() const
double GetMoveDirectionRelativeToFacing()
void Unk_68(void) override
void Unk_78(void) override
const InventoryEntryData * GetAttackingWeapon() const
SKYRIM_REL_VR_VIRTUAL void CreateActorMover()
InventoryEntryData * GetEquippedEntryData(bool a_leftHand) const
void TrespassAlarm(TESObjectREFR *a_ref, TESForm *a_ownership, std::int32_t a_crime)
SKYRIM_REL_VR_VIRTUAL bool HasPerkEntries(EntryPoint a_entryType) const
SKYRIM_REL_VR_VIRTUAL bool IsPowerAttackCoolingDown() const
void DoTrap2(TrapEntry *a_trap, TargetEntry *a_target) override
void Predestroy() override
SKYRIM_REL_VR_VIRTUAL float CalcArmorRating()
TESObjectARMO * GetWornArmor(FormID a_formID, bool a_noInit=false)
bool AddWornItem(TESBoundObject *a_item, std::int32_t a_count, bool a_forceEquip, std::uint32_t a_arg4, std::uint32_t a_arg5) override
SKYRIM_REL_VR_VIRTUAL void SetCombatGroup(CombatGroup *a_group)
void Unk_75(void) override
void UpdateArmorAbility(TESForm *a_armor, ExtraDataList *a_extraData)
SKYRIM_REL_VR_VIRTUAL void Unk_C9(void)
static constexpr auto FORMTYPE
Definition Actor.h:137
void Update3DPosition(bool a_warp) override
bool AddSpell(SpellItem *a_spell)
void RemoveOutfitItems(BGSOutfit *a_outfit)
bool IsDead(bool a_notEssential=true) const override
SKYRIM_REL_VR_VIRTUAL void UpdateNonRenderSafe(float a_delta)
void ProcessVATSAttack(MagicCaster *a_caster, bool a_hasTargetAnim, TESObjectREFR *a_target, bool a_leftHand)
void SetParentCell(TESObjectCELL *a_cell) override
const TESFaction * GetCrimeFaction() const
void SetActionComplete(bool a_set) override
SKYRIM_REL_VR_VIRTUAL CombatGroup * GetCombatGroup() const
SKYRIM_REL_VR_VIRTUAL ObjectRefHandle DropObject(const TESBoundObject *a_object, ExtraDataList *a_extraList, std::int32_t a_count, const NiPoint3 *a_dropLoc=0, const NiPoint3 *a_rotate=0)
SKYRIM_REL_VR_VIRTUAL bool CheckCast(MagicItem *a_spell, bool a_dualCast, MagicSystem::CannotCastReason *a_reason)
const BSTEventSink< bhkCharacterMoveFinishEvent > * AsCharacterMoveFinishEventSink() const noexcept
Definition Actor.h:743
SKYRIM_REL_VR_VIRTUAL bool MovetoMiddleLow()
SKYRIM_REL_VR_VIRTUAL float GetAcrobatics() const
SKYRIM_REL_VR_VIRTUAL bool InitiateTresPassPackage(TrespassPackage *a_trespassPackage)
SKYRIM_REL_VR_VIRTUAL std::int32_t GetCurrentShoutLevel()
void UpdateAnimation(float a_delta) override
SKYRIM_REL_VR_VIRTUAL bool GetVampireFeed()
void StopMoving(float a_delta)
MagicCaster * GetMagicCaster(MagicSystem::CastingSource a_source) override
bool IsInCastPowerList(SpellItem *a_power)
void EnableAI(bool a_enable)
void DeselectSpell(SpellItem *a_spell)
SKYRIM_REL_VR_VIRTUAL void RemovePerk(BGSPerk *a_perk)
SKYRIM_REL_VR_VIRTUAL void SetLastRiddenMount(ActorHandle a_mount)
bool CanTalkToPlayer() const
void AllowBleedoutDialogue(bool a_canTalk)
bhkCharacterController * GetCharController() const
static NiPointer< Actor > LookupByHandle(RefHandle a_refHandle)
void ForceEditorLocation(BGSLocation *a_location) override
SKYRIM_REL_VR_VIRTUAL bhkCharacterController * Move(float a_arg2, const NiPoint3 &a_position)
SKYRIM_REL_VR_VIRTUAL void EndDialogue()
SKYRIM_REL_VR_VIRTUAL void Unk_105(void)
SKYRIM_REL_VR_VIRTUAL void InitiateSpectator(Actor *a_target)
bool HasOutfitItems(BGSOutfit *a_outfit)
const TESPackage * GetCurrentPackage() const
void DoTrap1(TrapData &a_data) override
SKYRIM_REL_VR_VIRTUAL void SetBeenAttacked(bool a_set)
SKYRIM_REL_VR_VIRTUAL float GetAlpha()
SKYRIM_REL_VR_VIRTUAL void UpdateFadeSettings(bhkCharacterController *a_controller)
bool HasSpell(SpellItem *a_spell) const
InventoryEntryData * GetAttackingWeapon()
uint32_t GetCollisionFilterInfo(uint32_t &a_outCollisionFilterInfo)
constexpr bool IsInKillMove() const noexcept
Definition Actor.h:585
TESRace * GetRace() const
SKYRIM_REL_VR_VIRTUAL void Unk_EA(void)
IPostAnimationChannelUpdateFunctor * AsIPostAnimationChannelUpdateFunctor() noexcept
Definition Actor.h:747
SKYRIM_REL_VR_VIRTUAL void CreateMovementController()
TESObjectARMO * GetSkin(BGSBipedObjectForm::BipedObjectSlot a_slot, bool a_noInit=false)
SKYRIM_REL_VR_VIRTUAL void GetEyeVector(NiPoint3 &a_origin, NiPoint3 &a_direction, bool a_includeCameraOffset)
SKYRIM_REL_VR_VIRTUAL void ProcessTracking(float a_delta, NiAVObject *a_obj3D)
SKYRIM_REL_VR_VIRTUAL void RemoveTemporaryPerk(BGSPerk *a_perk)
SKYRIM_REL_VR_VIRTUAL ActorHandle QLastRiddenMount() const
void Unk_96(void) override
void StealAlarm(TESObjectREFR *a_ref, TESForm *a_object, std::int32_t a_num, std::int32_t a_total, TESForm *a_owner, bool a_allowWarning)
SKYRIM_REL_VR_VIRTUAL void UpdateAlpha()
bool CanPickpocket() const
std::int32_t GetFactionRank(TESFaction *a_faction, bool a_isPlayer)
SKYRIM_REL_VR_VIRTUAL void SetAlpha(float a_alpha=1.0)
SKYRIM_REL_VR_VIRTUAL void SetPosition(const NiPoint3 &a_pos, bool a_updateCharController)
const TESFaction * GetVendorFaction() const
Actor * GetTargetStatsObject() override
TESFaction * GetCrimeFaction()
bool IsAnimationDriven() const
void ClearExtraArrows()
Definition Actor.h:510
void RemoveCastScroll(SpellItem *a_spell, MagicSystem::CastingSource a_source)
SKYRIM_REL_VR_VIRTUAL void InitiateGetUpPackage()
bool IsInRagdollState() const
bool IsSummoned() const noexcept
SKYRIM_REL_VR_VIRTUAL float CalcUnarmedDamage()
void SetLifeState(ACTOR_LIFE_STATE a_lifeState)
SKYRIM_REL_VR_VIRTUAL void Update(float a_delta)
void SetRotationZ(float a_angle)
SKYRIM_REL_VR_VIRTUAL bool DrinkPotion(AlchemyItem *a_potion, ExtraDataList *a_extralist)
void LoadGame(BGSLoadFormBuffer *a_buf) override
bool HasKeywordHelper(const BGSKeyword *a_keyword) const override
SKYRIM_REL_VR_VIRTUAL void PutCreatedPackage(TESPackage *a_package, bool a_tempPackage, bool a_createdPackage, bool a_allowFromFurniture)
void TryMoveToMiddleLow() override
float GetVoiceRecoveryTime()
SKYRIM_REL_VR_VIRTUAL void DestroyActorMover()
NiAVObject * GetHeadPartObject(BGSHeadPart::HeadPartType a_type)
void VisitSpells(ForEachSpellVisitor &a_visitor)
TESObjectARMO * GetWornArmor(BGSBipedObjectForm::BipedObjectSlot a_slot, bool a_noInit=false)
SKYRIM_REL_VR_VIRTUAL void SetSpeakingDone(bool a_set)
void UpdateAwakeSound(NiAVObject *a_obj3D)
void CastPermanentMagic(bool a_wornItemEnchantments, bool a_baseSpells, bool a_raceSpells, bool a_everyActorAbility)
bool IsLimbGone(std::uint32_t a_limb)
bool PopulateGraphProjectsToLoad(void) const override
bool DetachHavok(NiAVObject *a_obj3D) override
SKYRIM_REL_VR_VIRTUAL float GetHeading(bool a_ignoreRaceSettings) const
SKYRIM_REL_VR_VIRTUAL void Unk_E9(void)
SKYRIM_REL_VR_VIRTUAL bool ComputeMotionFeedbackSpeedAndDirection(const ActorMotionFeedbackData &a_data, float a_delta, ActorMotionFeedbackOutput &a_output)
void FinishLoadGame(BGSLoadFormBuffer *a_buf) override
TESPackage * CheckForCurrentAliasPackage() override
void ResetInventory(bool a_leveledOnly) override
SKYRIM_REL_VR_VIRTUAL void SetActorStartingPosition()
NiPoint3 GetStartingLocation() const override
ACTOR_RUNTIME_DATA & GetActorRuntimeData() noexcept
Definition Actor.h:697
float GetEquippedWeight()
void PlayASound(BSSoundHandle &a_result, FormID a_formID, bool a_unk03, std::uint32_t a_flags)
BGSLocation * GetEditorLocation1() const override
const ActorState * AsActorState() const noexcept
Definition Actor.h:727
const BSTEventSink< BSTransformDeltaEvent > * AsBSTransformDeltaEventSink() const noexcept
Definition Actor.h:735
SKYRIM_REL_VR_VIRTUAL void RemoveCharController()
void GetLinearVelocity(NiPoint3 &a_velocity) const override
const TESShout * GetCurrentShout() const
bool IsCasting(MagicItem *a_spell) const
void InitLoadGame(BGSLoadFormBuffer *a_buf) override
SKYRIM_REL_VR_VIRTUAL void KillDying()
SKYRIM_REL_VR_VIRTUAL std::uint32_t GetCrimeGoldValue(const TESFaction *a_faction) const
SKYRIM_REL_VR_VIRTUAL bool HasBeenAttacked() const
void AddWornOutfit(BGSOutfit *a_outfit, bool a_forceUpdate)
SKYRIM_REL_VR_VIRTUAL bool CalculateCachedOwnerIsUndead() const
SKYRIM_REL_VR_VIRTUAL void UpdateCombat()
void InterruptCast(bool a_restoreMagicka) const
SKYRIM_REL_VR_VIRTUAL void OnArmorActorValueChanged()
BSSimpleList< ActiveEffect * > * GetActiveEffectList() override
SKYRIM_REL_VR_VIRTUAL void WeaponSwingCallBack()
const ACTOR_RUNTIME_DATA & GetActorRuntimeData() const noexcept
Definition Actor.h:702
SKYRIM_REL_VR_VIRTUAL bool UpdateFeedbackGraphSpeedAndDirection(const ActorMotionFeedbackOutput &a_output)
bool SetDefaultOutfit(BGSOutfit *a_outfit, bool a_update3D)
void RemoveAnimationGraphEventSink(BSTEventSink< BSAnimationGraphEvent > *a_sink) const
void InitItemImpl() override
void VisitArmorAddon(TESObjectARMO *a_armor, TESObjectARMA *a_arma, std::function< void(bool a_firstPerson, NiAVObject &a_obj)> a_visitor)
SKYRIM_REL_VR_VIRTUAL void InitiateDialogue(Actor *a_target, PackageLocation *a_loc1, PackageLocation *a_loc2)
Actor * GetKiller() const
SKYRIM_REL_VR_VIRTUAL bool GetCannibal()
SKYRIM_REL_VR_VIRTUAL bool MovetoLow()
SKYRIM_REL_VR_VIRTUAL void Unk_B3(void)
bool IsFactionInCrimeGroup(const TESFaction *a_faction) const
NiAVObject * Load3D(bool a_arg1) override
void SetRotationX(float a_angle)
bool GetEditorLocation2(NiPoint3 &a_outPos, NiPoint3 &a_outRot, TESForm *&a_outWorldOrCell, TESObjectCELL *a_fallback) override
void ModifyAnimationUpdateData(BSAnimationUpdateData &a_data) override
bool WouldBeStealing(const TESObjectREFR *a_target) const
void SetObjectReference(TESBoundObject *a_object) override
bool IsPlayerTeammate() const
SKYRIM_REL_VR_VIRTUAL void ForEachPerk(PerkEntryVisitor &a_visitor) const
static bool LookupByHandle(RefHandle a_refHandle, NiPointer< Actor > &a_refrOut)
float GetAimAngle() const
SKYRIM_REL_VR_VIRTUAL float GetJogSpeed()
SKYRIM_REL_VR_VIRTUAL void Unk_A2(void)
TESObjectARMO * GetSkin() const
void PauseCurrentDialogue(void) override
bool ShouldSaveAnimationOnUnloading() const override
SKYRIM_REL_VR_VIRTUAL std::uint32_t UseAmmo(std::uint32_t a_shotCount)
void EvaluatePackage(bool a_immediate=false, bool a_resetAI=false)
SKYRIM_REL_VR_VIRTUAL void UpdateActor3DPosition()
SKYRIM_REL_VR_VIRTUAL bool CalculateCachedOwnerIsInCombatantFaction() const
bool CanOfferServices() const
SKYRIM_REL_VR_VIRTUAL void StartPowerAttackCoolDown()
bool TryChangeSkyCellActorsProcessLevel() override
void AddCastPower(SpellItem *a_power)
std::uint16_t GetLevel() const
SKYRIM_REL_VR_VIRTUAL void Unk_D1(void)
SKYRIM_REL_VR_VIRTUAL void InitiateCannibalPackage(Actor *a_target)
void DispelWornItemEnchantments()
bool ApplyCurrent(float a_velocityTime, const hkVector4 &a_velocity) override
bool VisitFactions(std::function< bool(TESFaction *a_faction, std::int8_t a_rank)> a_visitor)
bool SetDialogueWithPlayer(bool a_flag, bool a_forceGreet, TESTopicInfo *a_topic) override
bool HasKeywordString(std::string_view a_formEditorID)
SKYRIM_REL_VR_VIRTUAL bool MoveToHigh()
bool CanAttackActor(Actor *a_actor)
TESAmmo * GetCurrentAmmo() const override
SKYRIM_REL_VR_VIRTUAL void InitValues()
bool HasPerk(BGSPerk *a_perk) const
ActorState * AsActorState() noexcept
Definition Actor.h:723
SKYRIM_REL_VR_VIRTUAL void KillImpl(Actor *a_attacker, float a_damage, bool a_sendEvent, bool a_ragdollInstant)
void EndInterruptPackage(bool a_skipDialogue)
Definition ActorState.h:93
Definition ActorValueOwner.h:8
Definition AlchemyItem.h:24
Definition BGSAnimationSequencer.h:11
Definition BGSDialogueBranch.h:10
HeadPartType
Definition BGSHeadPart.h:34
Definition BGSKeyword.h:10
Definition BGSLocation.h:68
Definition BGSOutfit.h:11
BGSEntryPoint::ENTRY_POINT EntryPoint
Definition BGSPerkEntry.h:24
Definition BSFaceGenAnimationData.h:11
Definition BSPointerHandleSmartPointer.h:10
Definition BSTEvent.h:143
Definition BSTSmartPointer.h:36
Definition CombatGroup.h:70
Definition DialogueItem.h:22
Definition IPostAnimationChannelUpdateFunctor.h:6
Definition InventoryEntryData.h:15
Definition MagicCaster.h:25
Definition MagicItem.h:30
Definition MagicTarget.h:26
Definition NiAVObject.h:50
Definition NiSmartPointer.h:9
Definition PackageLocation.h:11
Definition PerkEntryVisitor.h:10
Definition SpellItem.h:16
Definition TESBoundObject.h:24
Definition TESFaction.h:120
Definition TESObjectARMA.h:28
Definition TESObjectARMO.h:37
Definition TESObjectCELL.h:116
Definition TESObjectREFR.h:112
Definition TESPackage.h:248
Definition TESTopicInfo.h:42
Definition TESWordOfPower.h:13
Definition bhkCharacterController.h:66
const_pointer data() const noexcept
Definition BSFixedString.h:116
Definition hkpCollidable.h:13
ForEachResult
Definition BSContainer.h:6
CannotCastReason
Definition MagicSystem.h:10
CastingSource
Definition MagicSystem.h:23
Definition AbsorbEffect.h:6
SOUL_LEVEL
Definition SoulLevels.h:6
EmotionType
Definition EmotionTypes.h:6
ActorValue
Definition ActorValues.h:6
DETECTION_PRIORITY
Definition DetectionPriorities.h:6
ACTOR_LIFE_STATE
Definition ActorState.h:8
std::uint32_t FormID
Definition BSCoreTypes.h:5
constexpr REL::VariantID RTTI_Actor__ForEachSpellVisitor(686850, 394698, 0x1f06a10)
ITEM_REMOVE_REASON
Definition TESObjectREFR.h:63
constexpr REL::VariantID RTTI_Actor(513915, 392538, 0x1edaa58)
ACTOR_CRITICAL_STAGE
Definition Actor.h:50
std::uint32_t RefHandle
Definition BSCoreTypes.h:6
constexpr REL::Version RUNTIME_SSE_1_6_629(1, 6, 629, 0)
Definition ActorValueList.h:28
ACTOR_VALUE_MODIFIER
Definition ActorValues.h:179
@ kTotal
Definition ActorValues.h:184
ChangeFlag
Definition Actor.h:229
@ kLifeState
Definition Actor.h:230
@ kMerchantContainer
Definition Actor.h:232
@ kDismemberedLimbs
Definition Actor.h:233
@ kOverrideModifiers
Definition Actor.h:238
@ kPackageExtraData
Definition Actor.h:231
@ kDispModifiers
Definition Actor.h:235
@ kPermanentModifiers
Definition Actor.h:239
@ kLeveledActor
Definition Actor.h:234
@ kTempModifiers
Definition Actor.h:236
@ kDamageModifiers
Definition Actor.h:237
RecordFlag
Definition Actor.h:246
@ kInitiallyDisabled
Definition Actor.h:250
@ kPersistent
Definition Actor.h:249
@ kNoAIAcquire
Definition Actor.h:252
@ kIgnored
Definition Actor.h:251
@ kDontHavokSettle
Definition Actor.h:253
@ kStartsDead
Definition Actor.h:248
@ kDeleted
Definition Actor.h:247
@ kLeftHand
Definition Actor.h:143
@ kPowerOrShout
Definition Actor.h:146
@ kUnknown
Definition Actor.h:145
@ kTotal
Definition Actor.h:148
@ kRightHand
Definition Actor.h:144
const T * operator[](ActorValue a_actorValue) const
Definition Actor.h:80
T * operator[](ActorValue a_actorValue)
Definition Actor.h:75
BSFixedString actorValues
Definition Actor.h:86
T * entries
Definition Actor.h:87
LocalMap< float > baseValues
Definition Actor.h:112
LocalMap< Modifiers > modifiers
Definition Actor.h:113
ENTRY_POINT
Definition BGSEntryPoint.h:12
BipedObjectSlot
Definition BGSBipedObjectForm.h:11
BIPED_OBJECT
Definition BipedObjects.h:8
Definition BSAnimationGraphEvent.h:10
Definition BSAnimationUpdateData.h:10
Definition BSSoundHandle.h:9
ArchetypeID
Definition EffectArchetypes.h:8
float modifiers[ACTOR_VALUE_MODIFIERS::kTotal]
Definition Actor.h:64