CommonLibVR
BGSBipedObjectForm.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace RE
6 {
7  struct BIPED_MODEL // BOD2
8  {
9  public:
10  enum class BipedObjectSlot
11  {
12  kNone = 0,
13  kHead = 1 << 0,
14  kHair = 1 << 1,
15  kBody = 1 << 2,
16  kHands = 1 << 3,
17  kForearms = 1 << 4,
18  kAmulet = 1 << 5,
19  kRing = 1 << 6,
20  kFeet = 1 << 7,
21  kCalves = 1 << 8,
22  kShield = 1 << 9,
23  kTail = 1 << 10,
24  kLongHair = 1 << 11,
25  kCirclet = 1 << 12,
26  kEars = 1 << 13,
27  kModMouth = 1 << 14,
28  kModNeck = 1 << 15,
29  kModChestPrimary = 1 << 16,
30  kModBack = 1 << 17,
31  kModMisc1 = 1 << 18,
32  kModPelvisPrimary = 1 << 19,
33  kDecapitateHead = 1 << 20,
34  kDecapitate = 1 << 21,
35  kModPelvisSecondary = 1 << 22,
36  kModLegRight = 1 << 23,
37  kModLegLeft = 1 << 24,
38  kModFaceJewelry = 1 << 25,
39  kModChestSecondary = 1 << 26,
40  kModShoulder = 1 << 27,
41  kModArmLeft = 1 << 28,
42  kModArmRight = 1 << 29,
43  kModMisc2 = 1 << 30,
44  kFX01 = 1 << 31
45  };
46 
47  enum class ArmorType
48  {
51  kClothing
52  };
53 
54  // members
57  };
58  static_assert(sizeof(BIPED_MODEL) == 0x8);
59 
61  {
62  public:
63  inline static constexpr auto RTTI = RTTI_BGSBipedObjectForm;
64  inline static constexpr auto VTABLE = VTABLE_BGSBipedObjectForm;
65 
69 
70  ~BGSBipedObjectForm() override; // 00
71 
72  // override (BaseFormComponent)
73  void InitializeDataComponent() override; // 01
74  void ClearDataComponent() override; // 02 - { return; }
75  void CopyComponent(BaseFormComponent* a_rhs) override; // 03
76 
78  [[nodiscard]] ArmorType GetArmorType() const;
79  [[nodiscard]] BipedObjectSlot GetSlotMask() const;
80  [[nodiscard]] bool HasPartOf(BipedObjectSlot a_flag) const;
81  [[nodiscard]] bool IsClothing() const;
82  [[nodiscard]] bool IsHeavyArmor() const;
83  [[nodiscard]] bool IsLightArmor() const;
84  [[nodiscard]] bool IsShield() const;
87 
88  // members
90  private:
91  KEEP_FOR_RE()
92  };
93  static_assert(sizeof(BGSBipedObjectForm) == 0x10);
94 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSBipedObjectForm.h:61
BipedObjectSlot AddSlotToMask(BipedObjectSlot a_slot)
static constexpr auto VTABLE
Definition: BGSBipedObjectForm.h:64
void InitializeDataComponent() override
static constexpr auto RTTI
Definition: BGSBipedObjectForm.h:63
ArmorType GetArmorType() const
void SetSlotMask(BipedObjectSlot a_mask)
bool IsClothing() const
~BGSBipedObjectForm() override
bool IsLightArmor() const
bool HasPartOf(BipedObjectSlot a_flag) const
BipedObjectSlot RemoveSlotFromMask(BipedObjectSlot a_slot)
void ClearDataComponent() override
bool IsHeavyArmor() const
BIPED_MODEL bipedModelData
Definition: BGSBipedObjectForm.h:89
BipedObjectSlot GetSlotMask() const
void CopyComponent(BaseFormComponent *a_rhs) override
Definition: BaseFormComponent.h:8
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BGSBipedObjectForm
Definition: Offsets_VTABLE.h:8593
constexpr REL::ID RTTI_BGSBipedObjectForm(static_cast< std::uint64_t >(513928))
Definition: BGSBipedObjectForm.h:8
stl::enumeration< ArmorType, std::uint32_t > armorType
Definition: BGSBipedObjectForm.h:56
BipedObjectSlot
Definition: BGSBipedObjectForm.h:11
ArmorType
Definition: BGSBipedObjectForm.h:48
stl::enumeration< BipedObjectSlot, std::uint32_t > bipedObjectSlots
Definition: BGSBipedObjectForm.h:55