CommonLibSSE NG
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  [[nodiscard]] bool IsChild() const override; // 05E - { return race ? (race->data.flags & Flag::kChild) != Flag::kNone : false; }
38  [[nodiscard]] BSFaceGenNiNode* GetFaceNodeSkinned() override; // 061
39  [[nodiscard]] BSFaceGenAnimationData* GetFaceGenAnimationData() override; // 063
40  void SetBiped(const BSTSmartPointer<BipedAnim>& a_biped) override; // 081
41 #ifndef SKYRIM_CROSS_VR
42  void InitiateVampireFeedPackage(Actor* a_arg1, TESObjectREFR* a_arg2) override; // 0C0
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
50  float GetArmorBaseFactorSum() override; // 0E7
51  float CalcUnarmedDamage() override; // 0E8
52  void PrecacheData(void) override; // 120
53 #endif
54 
55  // add
56  SKYRIM_REL_VR_VIRTUAL void Unk_128(void); // 128
57  SKYRIM_REL_VR_VIRTUAL void Unk_129(void); // 129 - { return 1; }
58  };
59 #ifndef ENABLE_SKYRIM_AE
60  static_assert(sizeof(Character) == 0x2B0);
61 #endif
62 }
#define SKYRIM_REL_VR_VIRTUAL
Definition: Common.h:94
Definition: Actor.h:135
Definition: BGSLoadFormBuffer.h:11
Definition: BGSSaveFormBuffer.h:8
Definition: BSFaceGenAnimationData.h:11
Definition: BSFaceGenNiNode.h:14
Definition: BSTSmartPointer.h:36
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
SKYRIM_REL_VR_VIRTUAL void Unk_128(void)
float GetArmorBaseFactorSum() override
SKYRIM_REL_VR_VIRTUAL void Unk_129(void)
static constexpr auto FORMTYPE
Definition: Character.h:12
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::VariantID RTTI_Character(514043, 394334, 0x1efee80)
constexpr std::array< REL::VariantID, 10 > VTABLE_Character
Definition: Offsets_VTABLE.h:2215
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