31 class ActorMagicCaster;
34 class bhkCharacterController;
35 class bhkCharacterMoveFinishEvent;
37 class BSTransformDeltaEvent;
38 class CombatController;
41 class InventoryEntryData;
42 class MovementControllerNPC;
43 class MovementMessageActorCollision;
45 class PackageLocation;
46 class PerkEntryVisitor;
47 class TrespassPackage;
48 struct ActorMotionFeedbackData;
49 struct ActorMotionFeedbackOutput;
50 struct HighProcessData;
51 struct MiddleHighProcessData;
81 return GetAt(
static_cast<char>(a_actorValue));
86 return GetAt(
static_cast<char>(a_actorValue));
94 [[nodiscard]] T* GetAt(
char a_actorValue)
const
98 std::uint32_t idx = 0;
99 while (akVals[idx] !=
'\0') {
100 if (akVals[idx] == a_actorValue) {
106 if (akVals[idx] !=
'\0') {
107 return std::addressof(
entries[idx]);
113 static_assert(
sizeof(LocalMap<float>) == 0x10);
124 #ifndef ENABLE_SKYRIM_AE
303 void DoTrap2(TrapEntry* a_trap, TargetEntry* a_target)
override;
328 #ifndef SKYRIM_CROSS_VR
345 [[nodiscard]]
bool IsDead(
bool a_notEssential =
true)
const override;
353 #ifndef ENABLE_SKYRIM_AE
505 void CastPermanentMagic(
bool a_wornItemEnchantments,
bool a_baseSpells,
bool a_raceSpells,
bool a_everyActorAbility);
646 #define RUNTIME_DATA_CONTENT \
647 stl::enumeration<BOOL_BITS, std::uint32_t> boolBits; \
648 float updateTargetTimer; \
649 stl::enumeration<ACTOR_CRITICAL_STAGE, std::uint32_t> criticalStage; \
650 std::uint32_t pad0EC; \
651 AIProcess* currentProcess; \
652 ObjectRefHandle dialogueItemTarget; \
653 ActorHandle currentCombatTarget; \
654 ActorHandle myKiller; \
655 float checkMyDeadBodyTimer; \
657 float underWaterTimer; \
658 std::int32_t thiefCrimeStamp; \
659 std::int32_t actionValue; \
660 float timerOnAction; \
661 std::uint32_t unk11C; \
662 NiPoint3 editorLocCoord; \
663 float editorLocRot; \
664 TESForm* editorLocForm; \
665 BGSLocation* editorLocation; \
666 ActorMover* actorMover; \
667 BSTSmartPointer<MovementControllerNPC> movementController; \
668 TESPackage* unk150; \
669 CombatController* combatController; \
670 TESFaction* vendorFaction; \
671 AITimeStamp calculateVendorFactionTimer; \
672 EmotionType emotionType; \
673 std::uint32_t emotionValue; \
674 std::uint32_t unk174; \
675 std::uint32_t unk178; \
676 std::uint32_t intimidateBribeDayStamp; \
677 std::uint64_t unk180; \
678 BSTSmallArray<SpellItem*> addedSpells; \
679 ActorMagicCaster* magicCasters[SlotTypes::kTotal]; \
680 MagicItem* selectedSpells[SlotTypes::kTotal]; \
681 TESForm* selectedPower; \
682 std::uint32_t unk1E8; \
683 std::uint32_t pad1EC; \
685 float equippedWeight; \
686 stl::enumeration<BOOL_FLAGS, std::uint32_t> boolFlags; \
687 ActorValueStorage avStorage; \
688 BGSDialogueBranch* exclusiveBranch; \
689 Modifiers healthModifiers; \
690 Modifiers magickaModifiers; \
691 Modifiers staminaModifiers; \
692 Modifiers voicePointsModifiers; \
694 std::uint32_t lastSeenTime; \
695 BSTSmartPointer<BipedAnim> biped; \
697 float armorBaseFactorSum; \
698 std::int8_t soundCallBackSet; \
699 std::uint8_t unk271; \
700 std::uint8_t unk272; \
701 std::uint8_t unk273; \
702 std::uint32_t unk274; \
703 std::uint64_t unk278; \
704 std::uint64_t unk280; \
705 REX::W32::CRITICAL_SECTION unk288;
753 return &REL::RelocateMemberIfNewer<BSTEventSink<bhkCharacterMoveFinishEvent>>(
SKSE::RUNTIME_SSE_1_6_629,
this, 0xD0, 0xD8);
757 return &REL::RelocateMemberIfNewer<BSTEventSink<bhkCharacterMoveFinishEvent>>(
SKSE::RUNTIME_SSE_1_6_629,
this, 0xD0, 0xD8);
769 #ifndef ENABLE_SKYRIM_AE
774 void CalculateCurrentVendorFaction()
const;
775 float CalcEquippedWeight();
778 #ifndef ENABLE_SKYRIM_AE
779 static_assert(
sizeof(Actor) == 0x2B0);
782 #undef RUNTIME_DATA_CONTENT
#define RUNTIME_DATA_CONTENT
Definition: Actor.h:646
#define SKYRIM_REL_VR_VIRTUAL
Definition: Common.h:94
Definition: ActorState.h:93
Definition: ActorValueOwner.h:8
virtual BSContainer::ForEachResult Visit(SpellItem *a_spell)=0
static constexpr auto RTTI
Definition: Actor.h:264
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)
void UpdateRegenDelay(ActorValue a_actorValue, float a_regenDelay)
const IPostAnimationChannelUpdateFunctor * AsIPostAnimationChannelUpdateFunctor() const noexcept
Definition: Actor.h:764
ObjectRefHandle GetOccupiedFurniture() const
bool GetRider(NiPointer< Actor > &a_outRider)
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)
TESFaction * GetVendorFaction()
SKYRIM_REL_VR_VIRTUAL void Unk_106(void)
SKYRIM_REL_VR_VIRTUAL float CheckClampDamageModifier(ActorValue a_av, float a_delta)
NiPoint3 GetBoundMin() const override
BGSAnimationSequencer * GetSequencer(void) const override
SKYRIM_REL_VR_VIRTUAL bool AddShout(TESShout *a_shout)
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
MagicTarget * GetMagicTarget() 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:194
@ 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
bool IsDualCasting() const
static NiPointer< Actor > LookupByHandle(RefHandle a_refHandle)
SKYRIM_REL_VR_VIRTUAL void SetAvoidanceDisabled(bool a_set)
NiPoint3 GetLookingAtLocation() const override
SKYRIM_REL_VR_VIRTUAL bool IsInFaction(const TESFaction *faction) const
bool GetMountedBy(NiPointer< Actor > &a_outRider)
SKYRIM_REL_VR_VIRTUAL bool MoveToMiddleHigh()
bhkCharacterController * GetCharController() const
TESFaction * GetCrimeFaction()
float GetRegenDelay(ActorValue a_actorValue) const
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)
SKYRIM_REL_VR_VIRTUAL bhkCharacterController * Move(float a_arg2, const NiPoint3 &a_position)
SKYRIM_REL_VR_VIRTUAL void UnlockWord(TESWordOfPower *a_power)
TESObjectARMO * GetWornArmor(BGSBipedObjectForm::BipedObjectSlot a_slot, bool a_noInit=false)
SKYRIM_REL_VR_VIRTUAL void ApplyTemporaryPerk(BGSPerk *a_perk)
NiAVObject * Load3D(bool a_arg1) override
SKYRIM_REL_VR_VIRTUAL std::uint32_t GetEmotionValue()
bool RemoveSpell(SpellItem *a_spell)
bool OnAddCellPerformQueueReference(TESObjectCELL &a_cell) const override
SKYRIM_REL_VR_VIRTUAL void AddPerk(BGSPerk *a_perk, std::uint32_t a_rank=0)
Actor * GetTargetStatsObject() override
MagicCaster * GetMagicCaster(MagicSystem::CastingSource a_source) override
SKYRIM_REL_VR_VIRTUAL void ModifyMovementData(float a_delta, NiPoint3 &a_arg3, NiPoint3 &a_arg4)
SKYRIM_REL_VR_VIRTUAL float GetWalkSpeed()
void RemoveExtraArrows3D()
NiPoint3 GetStartingAngle() const override
const BSTEventSink< bhkCharacterMoveFinishEvent > * AsCharacterMoveFinishEventSink() const noexcept
Definition: Actor.h:756
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)
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)
bool AddAnimationGraphEventSink(BSTEventSink< BSAnimationGraphEvent > *a_sink) const
const TESFaction * GetCrimeFaction() const
bool ShouldSaveAnimationOnSaving() const override
void InitHavok() override
void InitiateDoNothingPackage()
NiAVObject * GetHeadPartObject(BGSHeadPart::HeadPartType a_type)
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
BGSDialogueBranch * GetExclusiveBranch() const override
SKYRIM_REL_VR_VIRTUAL void WornArmorChanged(void)
void RemoveWeapon(BIPED_OBJECT equipIndex) override
static constexpr auto RTTI
Definition: Actor.h:140
NiNode * GetFireNode() override
SKYRIM_REL_VR_VIRTUAL void Unk_123(void)
bool IsBeingRidden() const
void DoMoveToHigh() 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
TESAmmo * GetCurrentAmmo() 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()
bool UpdateInDialogue(DialogueResponse *a_response, bool a_unused) override
const BSTEventSink< BSTransformDeltaEvent > * AsBSTransformDeltaEventSink() const noexcept
Definition: Actor.h:748
ActorHandle CreateRefHandle()
bool IsPointSubmergedMoreThan(const NiPoint3 &a_pos, TESObjectCELL *a_cell, float a_waterLevel)
SKYRIM_REL_VR_VIRTUAL void Unk_C6(void)
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
const ACTOR_RUNTIME_DATA & GetActorRuntimeData() const noexcept
Definition: Actor.h:715
SKYRIM_REL_VR_VIRTUAL void UpdateCharacterControllerSimulationSettings(bhkCharacterController &a_controller)
TESObjectARMO * GetWornArmor(FormID a_formID, bool a_noInit=false)
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
bool SetSleepOutfit(BGSOutfit *a_outfit, bool a_update3D)
SKYRIM_REL_VR_VIRTUAL void UpdateCombatControllerSettings()
void SetExclusiveBranch(BGSDialogueBranch *a_branch) override
TESObjectARMO * GetSkin() const
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()
const InventoryEntryData * GetAttackingWeapon() const
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:157
@ kForceUpdateQuestTarget
@ kIgnoreChangeAnimationCall
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
TESObjectARMO * GetSkin(BGSBipedObjectForm::BipedObjectSlot a_slot, bool a_noInit=false)
TESForm * GetEquippedObject(bool a_leftHand) 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
SKYRIM_REL_VR_VIRTUAL void CreateActorMover()
TESShout * GetCurrentShout()
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()
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:141
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)
TESPackage * GetCurrentPackage()
void SetParentCell(TESObjectCELL *a_cell) override
SKYRIM_REL_VR_VIRTUAL CombatGroup * GetCombatGroup() const
void SetActionComplete(bool a_set) override
NiPointer< Actor > GetCommandingActor() 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)
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
const ActorState * AsActorState() const noexcept
Definition: Actor.h:740
SKYRIM_REL_VR_VIRTUAL bool GetVampireFeed()
void StopMoving(float a_delta)
std::uint32_t GetCollisionFilterInfo(std::uint32_t &a_outCollisionFilterInfo)
bool IsInCastPowerList(SpellItem *a_power)
void EnableAI(bool a_enable)
void DeselectSpell(SpellItem *a_spell)
const MagicTarget * AsMagicTarget() const noexcept
Definition: Actor.h:724
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)
void ForceEditorLocation(BGSLocation *a_location) override
SKYRIM_REL_VR_VIRTUAL void EndDialogue()
SKYRIM_REL_VR_VIRTUAL void Unk_105(void)
SKYRIM_REL_VR_VIRTUAL void InitiateSpectator(Actor *a_target)
const ActorValueOwner * AsActorValueOwner() const noexcept
Definition: Actor.h:732
bool HasOutfitItems(BGSOutfit *a_outfit)
HighProcessData * GetHighProcess() const
TESForm * GetEquippedObjectInSlot(const BGSEquipSlot *slot) 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)
BSTEventSink< BSTransformDeltaEvent > * AsBSTransformDeltaEventSink() noexcept
Definition: Actor.h:744
bool HasSpell(SpellItem *a_spell) const
const TESFaction * GetVendorFaction() const
constexpr bool IsInKillMove() const noexcept
Definition: Actor.h:595
SKYRIM_REL_VR_VIRTUAL void Unk_EA(void)
SKYRIM_REL_VR_VIRTUAL void CreateMovementController()
SKYRIM_REL_VR_VIRTUAL const BSFixedString & GetResponseString() const
BSFaceGenAnimationData * GetFaceGenAnimationData() override
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)
BSSimpleList< ActiveEffect * > * GetActiveEffectList() override
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)
ACTOR_RUNTIME_DATA & GetActorRuntimeData() noexcept
Definition: Actor.h:710
bool IsAnimationDriven() const
void ClearExtraArrows()
Definition: Actor.h:514
void RemoveCastScroll(SpellItem *a_spell, MagicSystem::CastingSource a_source)
SKYRIM_REL_VR_VIRTUAL void InitiateGetUpPackage()
InventoryEntryData * GetEquippedEntryData(bool a_leftHand) const
bool IsInRagdollState() const
bool IsSummoned() const noexcept
SKYRIM_REL_VR_VIRTUAL float CalcUnarmedDamage()
float GetTotalCarryWeight()
void SetLifeState(ACTOR_LIFE_STATE a_lifeState)
void RemoveFromFaction(TESFaction *a_faction)
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
Actor * GetKiller() const
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()
BGSLocation * GetEditorLocation1() const override
const TESShout * GetCurrentShout() const
void VisitSpells(ForEachSpellVisitor &a_visitor)
SKYRIM_REL_VR_VIRTUAL void SetSpeakingDone(bool a_set)
void UpdateAwakeSound(NiAVObject *a_obj3D)
BGSScene * GetCurrentScene() const override
void CastPermanentMagic(bool a_wornItemEnchantments, bool a_baseSpells, bool a_raceSpells, bool a_everyActorAbility)
bool IsLimbGone(std::uint32_t a_limb)
BSTEventSink< bhkCharacterMoveFinishEvent > * AsCharacterMoveFinishEventSink() noexcept
Definition: Actor.h:752
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
ActorValueOwner * AsActorValueOwner() noexcept
Definition: Actor.h:728
void ResetInventory(bool a_leveledOnly) override
SKYRIM_REL_VR_VIRTUAL void SetActorStartingPosition()
NiPoint3 GetStartingLocation() const override
float GetEquippedWeight()
void PlayASound(BSSoundHandle &a_result, FormID a_formID, bool a_unk03, std::uint32_t a_flags)
SKYRIM_REL_VR_VIRTUAL void RemoveCharController()
void GetLinearVelocity(NiPoint3 &a_velocity) const override
IPostAnimationChannelUpdateFunctor * AsIPostAnimationChannelUpdateFunctor() noexcept
Definition: Actor.h:760
ActorState * AsActorState() noexcept
Definition: Actor.h:736
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()
SKYRIM_REL_VR_VIRTUAL Actor * SetUpTalkingActivatorActor(Actor *a_target, Actor *&a_activator)
void InterruptCast(bool a_restoreMagicka) const
SKYRIM_REL_VR_VIRTUAL void OnArmorActorValueChanged()
SKYRIM_REL_VR_VIRTUAL void WeaponSwingCallBack()
TESPackage * CheckForCurrentAliasPackage() override
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)
TESRace * GetRace() 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
void SetRotationX(float a_angle)
MiddleHighProcessData * GetMiddleHighProcess() const
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)
void PauseCurrentDialogue(void) override
const TESNPC * GetActorBase() const
MagicTarget * AsMagicTarget() noexcept
Definition: Actor.h:720
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()
const TESPackage * GetCurrentPackage() const
InventoryEntryData * GetAttackingWeapon()
bool CanAttackActor(Actor *a_actor)
SKYRIM_REL_VR_VIRTUAL void InitValues()
bool HasPerk(BGSPerk *a_perk) const
SKYRIM_REL_VR_VIRTUAL void KillImpl(Actor *a_attacker, float a_damage, bool a_sendEvent, bool a_ragdollInstant)
void EndInterruptPackage(bool a_skipDialogue)
Definition: AlchemyItem.h:24
Definition: BGSAnimationSequencer.h:11
Definition: BGSDialogueBranch.h:10
Definition: BGSEquipSlot.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: BGSScene.h:32
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:113
Definition: TESPackage.h:255
Definition: TESRace.h:146
Definition: TESShout.h:18
Definition: TESTopicInfo.h:42
Definition: TESWordOfPower.h:13
Definition: bhkCharacterController.h:66
const_pointer data() const noexcept
Definition: BSFixedString.h:116
Definition: hkVector4.h:9
Definition: hkpCollidable.h:13
ForEachResult
Definition: BSContainer.h:6
CannotCastReason
Definition: MagicSystem.h:10
CastingSource
Definition: MagicSystem.h:24
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:64
constexpr REL::VariantID RTTI_Actor(513915, 392538, 0x1edaa58)
ACTOR_CRITICAL_STAGE
Definition: Actor.h:54
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
const T * operator[](ActorValue a_actorValue) const
Definition: Actor.h:84
T * operator[](ActorValue a_actorValue)
Definition: Actor.h:79
BSFixedString actorValues
Definition: Actor.h:90
T * entries
Definition: Actor.h:91
LocalMap< float > baseValues
Definition: Actor.h:113
LocalMap< Modifiers > modifiers
Definition: Actor.h:117
ChangeFlag
Definition: Actor.h:233
@ kLifeState
Definition: Actor.h:234
@ kMerchantContainer
Definition: Actor.h:236
@ kDismemberedLimbs
Definition: Actor.h:237
@ kOverrideModifiers
Definition: Actor.h:242
@ kPackageExtraData
Definition: Actor.h:235
@ kDispModifiers
Definition: Actor.h:239
@ kPermanentModifiers
Definition: Actor.h:243
@ kLeveledActor
Definition: Actor.h:238
@ kTempModifiers
Definition: Actor.h:240
@ kDamageModifiers
Definition: Actor.h:241
RecordFlag
Definition: Actor.h:250
@ kInitiallyDisabled
Definition: Actor.h:254
@ kPersistent
Definition: Actor.h:253
@ kNoAIAcquire
Definition: Actor.h:256
@ kIgnored
Definition: Actor.h:255
@ kDontHavokSettle
Definition: Actor.h:257
@ kStartsDead
Definition: Actor.h:252
@ kDeleted
Definition: Actor.h:251
@ kLeftHand
Definition: Actor.h:147
@ kPowerOrShout
Definition: Actor.h:150
@ kUnknown
Definition: Actor.h:149
@ kTotal
Definition: Actor.h:152
@ kRightHand
Definition: Actor.h:148
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:10
ArchetypeID
Definition: EffectArchetypes.h:8
Definition: HighProcessData.h:60
Definition: MiddleHighProcessData.h:132
float modifiers[ACTOR_VALUE_MODIFIERS::kTotal]
Definition: Actor.h:68