CommonLibSSE (powerof3)
TESActorBase.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/A/ActorValueOwner.h"
6 #include "RE/B/BGSKeywordForm.h"
8 #include "RE/B/BGSSkinForm.h"
9 #include "RE/F/FormTypes.h"
10 #include "RE/T/TESAIForm.h"
11 #include "RE/T/TESActorBaseData.h"
13 #include "RE/T/TESContainer.h"
14 #include "RE/T/TESFullName.h"
15 #include "RE/T/TESSpellList.h"
16 
17 namespace RE
18 {
19  class TESActorBase :
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 (TESAIForm)
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  static_assert(sizeof(TESActorBase) == 0x150);
63 }
Definition: ActorValueOwner.h:8
Definition: BGSAttackDataForm.h:11
Definition: BGSDestructibleObjectForm.h:61
Definition: BGSKeywordForm.h:10
Definition: BGSPerkRankArray.h:20
Definition: BGSSkinForm.h:10
Definition: TESAIForm.h:118
Definition: TESActorBaseData.h:77
Definition: TESActorBase.h:32
float GetPermanentActorValue(ActorValue a_akValue) override
bool AddChange(std::uint32_t a_changeFlags) override
virtual TESForm * GetAsForm()
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 TESCombatStyle * GetCombatStyle()
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
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:22
Definition: TESForm.h:34
Definition: TESFullName.h:9
Definition: TESSpellList.h:12
Definition: AbsorbEffect.h:6
ActorValue
Definition: ActorValues.h:6
constexpr REL::ID RTTI_TESActorBase
Definition: Offsets_RTTI.h:5967
ACTOR_VALUE_MODIFIER
Definition: ActorValues.h:179