CommonLibVR
TESObjectARMA.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/B/BSTArray.h"
5 #include "RE/F/FormTypes.h"
6 #include "RE/S/Sexes.h"
8 #include "RE/T/TESObject.h"
9 #include "RE/T/TESRaceForm.h"
10 
11 namespace RE
12 {
13  struct OBJ_ARMA // DNAM
14  {
15  std::int8_t priorities[SEXES::kTotal]; // 0
16  std::int8_t modelRange[SEXES::kTotal]; // 2
17  std::int8_t unused[SEXES::kTotal]; // 4
18  std::int8_t detectionSoundValue; // 6
19  std::uint8_t pad07; // 7
20  float weaponAdjust; // 8
21  };
22  static_assert(sizeof(OBJ_ARMA) == 0xC);
23 
24  class TESObjectARMA :
25  public TESObject, // 00
26  public TESRaceForm, // 20
27  public BGSBipedObjectForm // 30
28  {
29  public:
30  inline static constexpr auto RTTI = RTTI_TESObjectARMA;
31  inline static constexpr auto VTABLE = VTABLE_TESObjectARMA;
32  inline static constexpr auto FORMTYPE = FormType::Armature;
33 
34  struct RecordFlags
35  {
36  enum RecordFlag : std::uint32_t
37  {
38  kDeleted = 1 << 5,
39  kIgnored = 1 << 12
40  };
41  };
42 
43  ~TESObjectARMA() override; // 00
44 
45  // override (TESObject)
46  void InitializeData() override; // 04
47  void ClearData() override; // 05
48  bool Load(TESFile* a_mod) override; // 06
49  void InitItemImpl() override; // 13
50 
51  bool IsValidRace(TESRace* a_sourceRace) const;
52  void GetNodeName(char* a_dstBuff, const TESObjectREFR* a_refr, const TESObjectARMO* a_armor, float a_weightOverride);
53 
54  // members
55  OBJ_ARMA data; // 040 - DNAM
56  std::uint32_t pad04C; // 04C
57  TESModelTextureSwap bipedModels[SEXES::kTotal]; // 050
59  BGSTextureSet* skinTextures[SEXES::kTotal]; // 130 - NAM0 - NAM1
60  BGSListForm* skinTextureSwapLists[SEXES::kTotal]; // 140 - NAM2 - NAM3
62  BGSFootstepSet* footstepSet; // 168 - SNDD
63  BGSArtObject* artObject; // 170 - ONAM
64  private:
65  KEEP_FOR_RE()
66  };
67  static_assert(sizeof(TESObjectARMA) == 0x178);
68 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSArtObject.h:12
Definition: BGSBipedObjectForm.h:61
Definition: BGSFootstepSet.h:25
Definition: BGSListForm.h:11
Definition: BGSTextureSet.h:16
Definition: BSTArray.h:378
Definition: TESFile.h:17
Definition: TESModelTextureSwap.h:10
Definition: TESObjectARMA.h:28
BGSListForm * skinTextureSwapLists[SEXES::kTotal]
Definition: TESObjectARMA.h:60
BGSFootstepSet * footstepSet
Definition: TESObjectARMA.h:62
void ClearData() override
bool IsValidRace(TESRace *a_sourceRace) const
void GetNodeName(char *a_dstBuff, const TESObjectREFR *a_refr, const TESObjectARMO *a_armor, float a_weightOverride)
std::uint32_t pad04C
Definition: TESObjectARMA.h:56
BSTArray< TESRace * > additionalRaces
Definition: TESObjectARMA.h:61
static constexpr auto FORMTYPE
Definition: TESObjectARMA.h:32
BGSTextureSet * skinTextures[SEXES::kTotal]
Definition: TESObjectARMA.h:59
OBJ_ARMA data
Definition: TESObjectARMA.h:55
TESModelTextureSwap bipedModels[SEXES::kTotal]
Definition: TESObjectARMA.h:57
bool Load(TESFile *a_mod) override
static constexpr auto RTTI
Definition: TESObjectARMA.h:30
TESModelTextureSwap bipedModel1stPersons[SEXES::kTotal]
Definition: TESObjectARMA.h:58
void InitializeData() override
void InitItemImpl() override
~TESObjectARMA() override
static constexpr auto VTABLE
Definition: TESObjectARMA.h:31
BGSArtObject * artObject
Definition: TESObjectARMA.h:63
Definition: TESObjectARMO.h:37
Definition: TESObjectREFR.h:113
Definition: TESObject.h:11
Definition: TESRaceForm.h:10
Definition: TESRace.h:149
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESObjectARMA(static_cast< std::uint64_t >(513976))
constexpr std::array< REL::ID, 3 > VTABLE_TESObjectARMA
Definition: Offsets_VTABLE.h:12858
Definition: TESObjectARMA.h:14
std::int8_t detectionSoundValue
Definition: TESObjectARMA.h:18
std::int8_t unused[SEXES::kTotal]
Definition: TESObjectARMA.h:17
std::int8_t modelRange[SEXES::kTotal]
Definition: TESObjectARMA.h:16
std::int8_t priorities[SEXES::kTotal]
Definition: TESObjectARMA.h:15
float weaponAdjust
Definition: TESObjectARMA.h:20
std::uint8_t pad07
Definition: TESObjectARMA.h:19
Definition: TESObjectARMA.h:35
RecordFlag
Definition: TESObjectARMA.h:37
@ kDeleted
Definition: TESObjectARMA.h:38
@ kIgnored
Definition: TESObjectARMA.h:39