CommonLibVR
BSXFlags.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace RE
6 {
7  class BSXFlags : public NiIntegerExtraData
8  {
9  public:
10  inline static constexpr auto RTTI = RTTI_BSXFlags;
11  inline static constexpr auto Ni_RTTI = NiRTTI_BSXFlags;
12  inline static constexpr auto VTABLE = VTABLE_BSXFlags;
13 
14  enum class Flag
15  {
16  kNone = 0,
17  kAnimated = 1 << 0,
18  kHavok = 1 << 1,
19  kRagdoll = 1 << 2,
20  kComplex = 1 << 3,
21  kAddon = 1 << 4,
22  kEditorMarker = 1 << 5,
23  kDynamic = 1 << 6,
24  kArticulated = 1 << 7,
25  kNeedsTransformUpdate = 1 << 8,
26  kExternalEmit = 1 << 9,
27  kMagicShaderParticles = 1 << 10,
28  kLights = 1 << 11,
29  kBreakable = 1 << 12,
30  kSearchedBreakable = 1 << 13
31  };
32 
33  ~BSXFlags() override; // 00
34 
35  // override (NiIntegerExtraData)
36  const NiRTTI* GetRTTI() const override; // 02
37  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17 - { return this; }
38  void LoadBinary(NiStream& a_stream) override; // 18 - { NiIntegerExtraData::LoadBinary(a_stream); }
39  void LinkObject(NiStream& a_stream) override; // 19 - { NiIntegerExtraData::LinkObject(a_stream); }
40  bool RegisterStreamables(NiStream& a_stream) override; // 1A - { return NiIntegerExtraData::RegisterStreamables(a_stream); }
41  void SaveBinary(NiStream& a_stream) override; // 1B - { NiIntegerExtraData::SaveBinary(a_stream); }
42  bool IsEqual(NiObject* a_object) override; // 1C - { return NiIntegerExtraData::IsEqual(a_object); }
43 
44  [[nodiscard]] Flag GetFlags() const;
45  void SetFlags(Flag a_flags);
46 
47  private:
48  KEEP_FOR_RE()
49  };
50  static_assert(sizeof(BSXFlags) == 0x20);
51 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSXFlags.h:8
void LoadBinary(NiStream &a_stream) override
Flag GetFlags() const
static constexpr auto VTABLE
Definition: BSXFlags.h:12
void LinkObject(NiStream &a_stream) override
const NiRTTI * GetRTTI() const override
static constexpr auto Ni_RTTI
Definition: BSXFlags.h:11
void SaveBinary(NiStream &a_stream) override
static constexpr auto RTTI
Definition: BSXFlags.h:10
void SetFlags(Flag a_flags)
~BSXFlags() override
bool IsEqual(NiObject *a_object) override
bool RegisterStreamables(NiStream &a_stream) override
Flag
Definition: BSXFlags.h:15
NiObject * CreateClone(NiCloningProcess &a_cloning) override
Definition: NiCloningProcess.h:10
Definition: NiIntegerExtraData.h:8
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BSXFlags
Definition: Offsets_VTABLE.h:10585
constexpr REL::ID NiRTTI_BSXFlags(static_cast< std::uint64_t >(524558))
constexpr REL::ID RTTI_BSXFlags(static_cast< std::uint64_t >(690676))