CommonLibSSE (Parapets fork)
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 FORMTYPE = FormType::Armature;
32 
33  struct RecordFlags
34  {
35  enum RecordFlag : std::uint32_t
36  {
37  kDeleted = 1 << 5,
38  kIgnored = 1 << 12
39  };
40  };
41 
42  ~TESObjectARMA() override; // 00
43 
44  // override (TESObject)
45  void InitializeData() override; // 04
46  void ClearData() override; // 05
47  bool Load(TESFile* a_mod) override; // 06
48  void InitItemImpl() override; // 13
49 
50  bool IsValidRace(TESRace* a_sourceRace) const;
51  void GetNodeName(char* a_dstBuff, const TESObjectREFR* a_refr, const TESObjectARMO* a_armor, float a_weightOverride);
52 
53  // members
54  OBJ_ARMA data; // 040 - DNAM
55  std::uint32_t pad04C; // 04C
56  TESModelTextureSwap bipedModels[SEXES::kTotal]; // 050
58  BGSTextureSet* skinTextures[SEXES::kTotal]; // 130 - NAM0 - NAM1
59  BGSListForm* skinTextureSwapLists[SEXES::kTotal]; // 140 - NAM2 - NAM3
61  BGSFootstepSet* footstepSet; // 168 - SNDD
62  BGSArtObject* artObject; // 170 - ONAM
63  };
64  static_assert(sizeof(TESObjectARMA) == 0x178);
65 }
Definition: BGSArtObject.h:12
Definition: BGSBipedObjectForm.h:46
Definition: BGSFootstepSet.h:25
Definition: BGSListForm.h:10
Definition: BGSTextureSet.h:16
Definition: BSTArray.h:377
Definition: TESFile.h:14
Definition: TESModelTextureSwap.h:10
Definition: TESObjectARMA.h:28
BGSListForm * skinTextureSwapLists[SEXES::kTotal]
Definition: TESObjectARMA.h:59
BGSFootstepSet * footstepSet
Definition: TESObjectARMA.h:61
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:55
BSTArray< TESRace * > additionalRaces
Definition: TESObjectARMA.h:60
static constexpr auto FORMTYPE
Definition: TESObjectARMA.h:31
BGSTextureSet * skinTextures[SEXES::kTotal]
Definition: TESObjectARMA.h:58
OBJ_ARMA data
Definition: TESObjectARMA.h:54
TESModelTextureSwap bipedModels[SEXES::kTotal]
Definition: TESObjectARMA.h:56
bool Load(TESFile *a_mod) override
static constexpr auto RTTI
Definition: TESObjectARMA.h:30
TESModelTextureSwap bipedModel1stPersons[SEXES::kTotal]
Definition: TESObjectARMA.h:57
void InitializeData() override
void InitItemImpl() override
~TESObjectARMA() override
BGSArtObject * artObject
Definition: TESObjectARMA.h:62
Definition: TESObjectARMO.h:37
Definition: TESObjectREFR.h:105
Definition: TESObject.h:11
Definition: TESRaceForm.h:10
Definition: TESRace.h:146
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESObjectARMA
Definition: Offsets_RTTI.h:6029
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:34
RecordFlag
Definition: TESObjectARMA.h:36
@ kDeleted
Definition: TESObjectARMA.h:37
@ kIgnored
Definition: TESObjectARMA.h:38