CommonLibSSE NG
Loading...
Searching...
No Matches
TESObjectARMO.h
Go to the documentation of this file.
1#pragma once
2
6#include "RE/B/BGSEquipType.h"
9#include "RE/B/BSTArray.h"
10#include "RE/F/FormTypes.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
20namespace RE
21{
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
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 [[nodiscard]] float GetArmorRating();
67 [[nodiscard]] TESObjectARMA* GetArmorAddon(TESRace* a_race);
69
70 // members
71 std::uint32_t armorRating; // 200 - DNAM - CK value * 100 as a std::uint32_t
72 std::uint32_t pad204; // 204
75 };
76 static_assert(sizeof(TESObjectARMO) == 0x228);
77}
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 BSTArray.h:377
Definition TESBipedModelForm.h:12
Definition TESBoundObject.h:24
Definition TESDescription.h:12
Definition TESEnchantableForm.h:11
Definition TESFile.h:15
Definition TESForm.h:35
Definition TESFullName.h:9
Definition TESObjectARMA.h:28
Definition TESObjectARMO.h:37
BSTArray< TESObjectARMA * > armorAddons
Definition TESObjectARMO.h:73
void LoadGame(BGSLoadFormBuffer *a_buf) override
float GetArmorRating()
std::uint32_t pad204
Definition TESObjectARMO.h:72
TESObjectARMO * templateArmor
Definition TESObjectARMO.h:74
TESFile * GetDescriptionOwnerFile() const override
void InitializeData() override
std::uint32_t armorRating
Definition TESObjectARMO.h:71
static constexpr auto FORMTYPE
Definition TESObjectARMO.h:41
BGSKeyword * GetDefaultKeyword() const override
TESObjectARMA * GetArmorAddon(TESRace *a_race)
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
TESObjectARMA * GetArmorAddonByMask(TESRace *a_race, BipedObjectSlot a_slot)
void Copy(TESForm *a_srcForm) override
void InitItemImpl() override
Definition TESRaceForm.h:10
Definition TESRace.h:146
Definition TESValueForm.h:8
Definition TESWeightForm.h:8
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_TESObjectARMO(513936, 392577, 0x1edb340)
constexpr std::array< REL::VariantID, 14 > VTABLE_TESObjectARMO
Definition Offsets_VTABLE.h:533
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