CommonLibSSE (Parapets fork)
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 FORMTYPE = FormType::Armor;
41 
42  struct RecordFlags
43  {
44  enum RecordFlag : std::uint32_t
45  {
46  kNonPlayable = 1 << 2,
47  kDeleted = 1 << 5,
48  kShield = 1 << 6,
49  kIgnored = 1 << 12
50  };
51  };
52 
53  // override (TESBoundObject)
54  void InitializeData() override; // 04
55  bool Load(TESFile* a_mod) override; // 06
56  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 0E
57  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 0F
58  void InitItemImpl() override; // 13
59  TESFile* GetDescriptionOwnerFile() const override; // 14 - { return templateArmor ? templateArmor->GetFile(-1) : GetFile(-1); }
60  void Copy(TESForm* a_srcForm) override; // 2F
61 
62  // override (BGSKeywordForm)
63  [[nodiscard]] BGSKeyword* GetDefaultKeyword() const override; // 05
64 
65  float GetArmorRating();
66 
67  // members
68  std::uint32_t armorRating; // 200 - DNAM - CK value * 100 as a std::uint32_t
69  std::uint32_t pad204; // 204
71  TESObjectARMO* templateArmor; // 220 - TNAM
72  };
73  static_assert(sizeof(TESObjectARMO) == 0x228);
74 }
Definition: BGSBipedObjectForm.h:46
Definition: BGSBlockBashData.h:9
Definition: BGSDestructibleObjectForm.h:61
Definition: BGSEquipType.h:9
Definition: BGSKeywordForm.h:10
Definition: BGSKeyword.h:10
Definition: BGSPickupPutdownSounds.h:10
Definition: BSTArray.h:377
Definition: TESBipedModelForm.h:12
Definition: TESBoundObject.h:24
Definition: TESDescription.h:12
Definition: TESEnchantableForm.h:11
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESFullName.h:9
Definition: TESObjectARMO.h:37
BSTArray< TESObjectARMA * > armorAddons
Definition: TESObjectARMO.h:70
void LoadGame(BGSLoadFormBuffer *a_buf) override
float GetArmorRating()
BGSKeyword * GetDefaultKeyword() const override
std::uint32_t pad204
Definition: TESObjectARMO.h:69
TESObjectARMO * templateArmor
Definition: TESObjectARMO.h:71
void InitializeData() override
std::uint32_t armorRating
Definition: TESObjectARMO.h:68
TESFile * GetDescriptionOwnerFile() const override
static constexpr auto FORMTYPE
Definition: TESObjectARMO.h:40
static constexpr auto RTTI
Definition: TESObjectARMO.h:39
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: TESValueForm.h:10
Definition: TESWeightForm.h:8
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESObjectARMO
Definition: Offsets_RTTI.h:6030
Definition: TESObjectARMO.h:43
RecordFlag
Definition: TESObjectARMO.h:45
@ kNonPlayable
Definition: TESObjectARMO.h:46
@ kDeleted
Definition: TESObjectARMO.h:47
@ kIgnored
Definition: TESObjectARMO.h:49
@ kShield
Definition: TESObjectARMO.h:48