CommonLibVR
TESObjectARMO.h
Go to the documentation of this file.
1 #pragma once
2 
6 #include "RE/B/BGSEquipType.h"
7 #include "RE/B/BGSKeywordForm.h"
9 #include "RE/B/BSTArray.h"
10 #include "RE/F/FormTypes.h"
11 #include "RE/T/TESBipedModelForm.h"
12 #include "RE/T/TESBoundObject.h"
13 #include "RE/T/TESDescription.h"
15 #include "RE/T/TESFullName.h"
16 #include "RE/T/TESRaceForm.h"
17 #include "RE/T/TESValueForm.h"
18 #include "RE/T/TESWeightForm.h"
19 
20 namespace RE
21 {
22  class TESObjectARMO :
23  public TESBoundObject, // 000
24  public TESFullName, // 030
25  public TESRaceForm, // 040
26  public TESEnchantableForm, // 050
27  public TESValueForm, // 068
28  public TESWeightForm, // 078
29  public BGSDestructibleObjectForm, // 088
30  public BGSPickupPutdownSounds, // 098
31  public TESBipedModelForm, // 0B0
32  public BGSEquipType, // 1A0
33  public BGSBipedObjectForm, // 1B0
34  public BGSBlockBashData, // 1C0
35  public BGSKeywordForm, // 1D8
36  public TESDescription // 1F0
37  {
38  public:
39  inline static constexpr auto RTTI = RTTI_TESObjectARMO;
40  inline static constexpr auto VTABLE = VTABLE_TESObjectARMO;
41  inline static constexpr auto FORMTYPE = FormType::Armor;
42 
43  struct RecordFlags
44  {
45  enum RecordFlag : std::uint32_t
46  {
47  kNonPlayable = 1 << 2,
48  kDeleted = 1 << 5,
49  kShield = 1 << 6,
50  kIgnored = 1 << 12
51  };
52  };
53 
54  // override (TESBoundObject)
55  void InitializeData() override; // 04
56  bool Load(TESFile* a_mod) override; // 06
57  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
58  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
59  void InitItemImpl() override; // 13
60  TESFile* GetDescriptionOwnerFile() const override; // 14 - { return templateArmor ? templateArmor->GetFile(-1) : GetFile(-1); }
61  void Copy(TESForm* a_srcForm) override; // 2F
62 
63  // override (BGSKeywordForm)
64  [[nodiscard]] BGSKeyword* GetDefaultKeyword() const override; // 05
65 
66  float GetArmorRating();
69 
70  // members
71  std::uint32_t armorRating; // 200 - DNAM - CK value * 100 as a std::uint32_t
72  std::uint32_t pad204; // 204
74  TESObjectARMO* templateArmor; // 220 - TNAM
75  private:
76  KEEP_FOR_RE()
77  };
78  static_assert(sizeof(TESObjectARMO) == 0x228);
79 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSBipedObjectForm.h:61
Definition: BGSBlockBashData.h:9
Definition: BGSDestructibleObjectForm.h:61
Definition: BGSEquipType.h:9
Definition: BGSKeywordForm.h:12
Definition: BGSKeyword.h:10
Definition: BGSLoadFormBuffer.h:11
Definition: BGSPickupPutdownSounds.h:10
Definition: BGSSaveFormBuffer.h:8
Definition: BSTArray.h:378
Definition: TESBipedModelForm.h:12
Definition: TESBoundObject.h:26
Definition: TESDescription.h:12
Definition: TESEnchantableForm.h:11
Definition: TESFile.h:17
Definition: TESForm.h:40
Definition: TESFullName.h:9
Definition: TESObjectARMA.h:28
Definition: TESObjectARMO.h:37
TESObjectARMA * GetArmorAddon(TESRace *a_race)
BSTArray< TESObjectARMA * > armorAddons
Definition: TESObjectARMO.h:73
void LoadGame(BGSLoadFormBuffer *a_buf) override
float GetArmorRating()
BGSKeyword * GetDefaultKeyword() const override
TESObjectARMA * GetArmorAddonByMask(TESRace *a_race, BipedObjectSlot a_slot)
std::uint32_t pad204
Definition: TESObjectARMO.h:72
TESObjectARMO * templateArmor
Definition: TESObjectARMO.h:74
void InitializeData() override
std::uint32_t armorRating
Definition: TESObjectARMO.h:71
TESFile * GetDescriptionOwnerFile() const override
static constexpr auto FORMTYPE
Definition: TESObjectARMO.h:41
static constexpr auto RTTI
Definition: TESObjectARMO.h:39
static constexpr auto VTABLE
Definition: TESObjectARMO.h:40
void SaveGame(BGSSaveFormBuffer *a_buf) override
bool Load(TESFile *a_mod) override
void Copy(TESForm *a_srcForm) override
void InitItemImpl() override
Definition: TESRaceForm.h:10
Definition: TESRace.h:149
Definition: TESValueForm.h:8
Definition: TESWeightForm.h:8
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 14 > VTABLE_TESObjectARMO
Definition: Offsets_VTABLE.h:12859
constexpr REL::ID RTTI_TESObjectARMO(static_cast< std::uint64_t >(513936))
BipedObjectSlot
Definition: BGSBipedObjectForm.h:11
Definition: TESObjectARMO.h:44
RecordFlag
Definition: TESObjectARMO.h:46
@ kNonPlayable
Definition: TESObjectARMO.h:47
@ kDeleted
Definition: TESObjectARMO.h:48
@ kIgnored
Definition: TESObjectARMO.h:50
@ kShield
Definition: TESObjectARMO.h:49