CommonLibVR
Character.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/A/Actor.h"
4 
5 namespace RE
6 {
7  class Character : public Actor
8  {
9  public:
10  inline static constexpr auto RTTI = RTTI_Character;
11  inline static constexpr auto VTABLE = VTABLE_Character;
12  inline static constexpr auto FORMTYPE = FormType::ActorCharacter;
13 
14  struct RecordFlags
15  {
16  enum RecordFlag : std::uint32_t
17  {
18  kDeleted = 1 << 5,
19  kStartsDead = 1 << 9,
20  kPersistent = 1 << 10,
21  kInitiallyDisabled = 1 << 11,
22  kIgnored = 1 << 12,
23  kNoAIAcquire = 1 << 25,
24  kDontHavokSettle = 1 << 29
25  };
26  };
27 
28  ~Character() override; // 000
29 
30  // override (Actor)
31  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 00E - { Actor::SaveBuffer(a_buf); }
32  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 00F - { Actor::LoadBuffer(a_buf); }
33  void InitLoadGame(BGSLoadFormBuffer* a_buf) override; // 010 - { Actor::InitLoadGame(a_arg1); }
34  void FinishLoadGame(BGSLoadFormBuffer* a_buf) override; // 011 - { Actor::FinishLoadGame(a_arg1); }
35  void Revert(BGSLoadFormBuffer* a_buf) override; // 012 - { return; }
36  void Predestroy(void) override; // 03B
37  bool IsChild() const override; // 05E - { return race ? (race->data.flags & Flag::kChild) != Flag::kNone : false; }
38  BSFaceGenNiNode* GetFaceNodeSkinned() override; // 061
40  void SetBiped(const BSTSmartPointer<BipedAnim>& a_biped) override; // 081
41  void InitiateVampireFeedPackage(Actor* a_arg1, TESObjectREFR* a_arg2) override; // 0C0
42 #ifndef SKYRIMVR
43  void Unk_C4(void) override; // 0C4 - { unk272 = a_arg1; }
44  void Unk_C5(void) override; // 0C5 - { return unk272; }
45  void Unk_C6(void) override; // 0C6 - { return 1; }
46  void OnArmorActorValueChanged() override; // 0CA
47  bool InitiateTresPassPackage(TrespassPackage* a_trespassPackage) override; // 0D7
48  void SetSize(float a_size) override; // 0D9
49  float CalcArmorRating() override; // 0E6 - calculate armor rating?
50  float GetArmorBaseFactorSum() override; // 0E7 - something about armor rating
51  float CalcUnarmedDamage() override; // 0E8 - get unarmed damage?
52  void PrecacheData(void) override; // 120
53 #else
54  void Unk_C6(void) override; // 0C4 - { unk272 = a_arg1; }
55  void Unk_C7(void) override; // 0C5 - { return unk272; }
56  void Unk_C8(void) override; // 0C6 - { return 1; }
57  void OnArmorActorValueChanged() override; // 0CA
58  bool InitiateTresPassPackage(TrespassPackage* a_trespassPackage) override; // 0D7
59  void SetSize(float a_size) override; // 0D9
60  float CalcArmorRating() override; // 0E6 - calculate armor rating?
61  float GetArmorBaseFactorSum() override; // 0E7 - something about armor rating
62  float CalcUnarmedDamage() override; // 0E8 - get unarmed damage?
63  void PrecacheData(void) override; // 120
64 #endif
65  // add
66  virtual void Unk_128(void); // 128
67  virtual void Unk_129(void); // 129 - { return 1; }
68  private:
69  KEEP_FOR_RE()
70  };
71 #ifndef SKYRIM_SUPPORT_AE
72  static_assert(sizeof(Character) == 0x2B0);
73 #else
74  static_assert(sizeof(Character) == 0x2B8);
75 #endif
76 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: Actor.h:133
Definition: BGSLoadFormBuffer.h:11
Definition: BGSSaveFormBuffer.h:8
Definition: BSFaceGenAnimationData.h:11
Definition: BSFaceGenNiNode.h:14
Definition: BSTSmartPointer.h:37
Definition: Character.h:8
BSFaceGenNiNode * GetFaceNodeSkinned() override
void InitiateVampireFeedPackage(Actor *a_arg1, TESObjectREFR *a_arg2) override
void LoadGame(BGSLoadFormBuffer *a_buf) override
~Character() override
void FinishLoadGame(BGSLoadFormBuffer *a_buf) override
bool InitiateTresPassPackage(TrespassPackage *a_trespassPackage) override
void InitLoadGame(BGSLoadFormBuffer *a_buf) override
void OnArmorActorValueChanged() override
void Unk_C5(void) override
void SetBiped(const BSTSmartPointer< BipedAnim > &a_biped) override
static constexpr auto RTTI
Definition: Character.h:10
void Unk_C6(void) override
void PrecacheData(void) override
float CalcUnarmedDamage() override
virtual void Unk_128(void)
float GetArmorBaseFactorSum() override
static constexpr auto FORMTYPE
Definition: Character.h:12
virtual void Unk_129(void)
void Predestroy(void) override
static constexpr auto VTABLE
Definition: Character.h:11
BSFaceGenAnimationData * GetFaceGenAnimationData() override
void SaveGame(BGSSaveFormBuffer *a_buf) override
void Unk_C4(void) override
float CalcArmorRating() override
bool IsChild() const override
void SetSize(float a_size) override
void Revert(BGSLoadFormBuffer *a_buf) override
Definition: TESObjectREFR.h:113
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_Character(static_cast< std::uint64_t >(514043))
constexpr std::array< REL::ID, 10 > VTABLE_Character
Definition: Offsets_VTABLE.h:10636
Definition: Character.h:15
RecordFlag
Definition: Character.h:17
@ kInitiallyDisabled
Definition: Character.h:21
@ kPersistent
Definition: Character.h:20
@ kDeleted
Definition: Character.h:18
@ kNoAIAcquire
Definition: Character.h:23
@ kDontHavokSettle
Definition: Character.h:24
@ kStartsDead
Definition: Character.h:19
@ kIgnored
Definition: Character.h:22