CommonLibSSE NG
Loading...
Searching...
No Matches
TESActorBase.h
Go to the documentation of this file.
1#pragma once
2
8#include "RE/B/BGSSkinForm.h"
9#include "RE/F/FormTypes.h"
10#include "RE/T/TESAIForm.h"
13#include "RE/T/TESContainer.h"
14#include "RE/T/TESFullName.h"
15#include "RE/T/TESSpellList.h"
16
17namespace RE
18{
20 public TESBoundAnimObject, // 000
21 public TESActorBaseData, // 030
22 public TESContainer, // 088
23 public TESSpellList, // 0A0
24 public TESAIForm, // 0B0
25 public TESFullName, // 0D8
26 public ActorValueOwner, // 0E8
27 public BGSDestructibleObjectForm, // 0F0
28 public BGSSkinForm, // 100
29 public BGSKeywordForm, // 110
30 public BGSAttackDataForm, // 128
31 public BGSPerkRankArray // 138
32 {
33 public:
34 inline static constexpr auto RTTI = RTTI_TESActorBase;
35
36 ~TESActorBase() override; // 00
37
38 // override (TESBoundAnimObject)
39 bool AddChange(std::uint32_t a_changeFlags) override; // 0A
40 void RemoveChange(std::uint32_t a_changeFlags) override; // 0B
41 void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
42 void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
43 bool IsAutoCalc() const override; // 3E - { return formType == FormType::NPC && (TESActorBaseData::flags >> 4) & 1; }
44 void SetAutoCalc(bool a_autoCalc) override; // 3F
45
46 // override (ActorValueOwner)
47 float GetActorValue(ActorValue a_akValue) override; // 01
48 float GetPermanentActorValue(ActorValue a_akValue) override; // 02
49 float GetBaseActorValue(ActorValue a_akValue) override; // 03
50 void SetBaseActorValue(ActorValue a_akValue, float a_value) override; // 04
51 void ModActorValue(ActorValue a_akValue, float a_value) override; // 05
52 void RestoreActorValue(ACTOR_VALUE_MODIFIER a_modifier, ActorValue a_akValue, float a_value) override; // 06
53 void SetActorValue(ActorValue a_akValue, float a_value) override; // 07
54 [[nodiscard]] bool GetIsPlayerOwner() const override; // 08
55
56 // add
57 [[nodiscard]] virtual bool GetHasPLSpecTex() const; // 53 - { return false; }
58 virtual TESCombatStyle* GetCombatStyle(); // 54 - { return 0; }
59 virtual void SetCombatStyle(TESCombatStyle* a_combatStyle); // 55 - { return; }
60 virtual TESForm* GetAsForm(); // 56 - { return this; }
61
62 [[nodiscard]] bool IsLeveled() const;
63 };
64 static_assert(sizeof(TESActorBase) == 0x150);
65}
Definition ActorValueOwner.h:8
Definition BGSAttackDataForm.h:11
Definition BGSDestructibleObjectForm.h:61
Definition BGSKeywordForm.h:12
Definition BGSLoadFormBuffer.h:11
Definition BGSPerkRankArray.h:28
Definition BGSSkinForm.h:10
Definition TESAIForm.h:118
Definition TESActorBaseData.h:81
Definition TESActorBase.h:32
float GetPermanentActorValue(ActorValue a_akValue) override
virtual TESForm * GetAsForm()
bool AddChange(std::uint32_t a_changeFlags) override
bool IsLeveled() const
void ModActorValue(ActorValue a_akValue, float a_value) override
bool IsAutoCalc() const override
void SetBaseActorValue(ActorValue a_akValue, float a_value) override
void RemoveChange(std::uint32_t a_changeFlags) override
float GetActorValue(ActorValue a_akValue) override
static constexpr auto RTTI
Definition TESActorBase.h:34
void SetAutoCalc(bool a_autoCalc) override
void SetActorValue(ActorValue a_akValue, float a_value) override
float GetBaseActorValue(ActorValue a_akValue) override
virtual void SetCombatStyle(TESCombatStyle *a_combatStyle)
void SaveGame(BGSSaveFormBuffer *a_buf) override
~TESActorBase() override
bool GetIsPlayerOwner() const override
void LoadGame(BGSLoadFormBuffer *a_buf) override
virtual bool GetHasPLSpecTex() const
virtual TESCombatStyle * GetCombatStyle()
void RestoreActorValue(ACTOR_VALUE_MODIFIER a_modifier, ActorValue a_akValue, float a_value) override
Definition TESBoundAnimObject.h:8
Definition TESCombatStyle.h:65
Definition TESContainer.h:33
Definition TESForm.h:35
Definition TESFullName.h:9
Definition TESSpellList.h:13
Definition AbsorbEffect.h:6
ActorValue
Definition ActorValues.h:6
constexpr REL::VariantID RTTI_TESActorBase(513908, 392446, 0x1ed9810)
ACTOR_VALUE_MODIFIER
Definition ActorValues.h:179