CommonLibSSE (Parapets fork)
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 
13  enum class Flag
14  {
15  kNone = 0,
16  kAnimated = 1 << 0,
17  kHavok = 1 << 1,
18  kRagdoll = 1 << 2,
19  kComplex = 1 << 3,
20  kAddon = 1 << 4,
21  kEditorMarker = 1 << 5,
22  kDynamic = 1 << 6,
23  kArticulated = 1 << 7,
24  kNeedsTransformUpdate = 1 << 8,
25  kExternalEmit = 1 << 9,
26  kMagicShaderParticles = 1 << 10,
27  kLights = 1 << 11,
28  kBreakable = 1 << 12,
29  kSearchedBreakable = 1 << 13
30  };
31 
32  ~BSXFlags() override; // 00
33 
34  // override (NiIntegerExtraData)
35  const NiRTTI* GetRTTI() const override; // 02
36  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17 - { return this; }
37  void LoadBinary(NiStream& a_stream) override; // 18 - { NiIntegerExtraData::LoadBinary(a_stream); }
38  void LinkObject(NiStream& a_stream) override; // 19 - { NiIntegerExtraData::LinkObject(a_stream); }
39  bool RegisterStreamables(NiStream& a_stream) override; // 1A - { return NiIntegerExtraData::RegisterStreamables(a_stream); }
40  void SaveBinary(NiStream& a_stream) override; // 1B - { NiIntegerExtraData::SaveBinary(a_stream); }
41  bool IsEqual(NiObject* a_object) override; // 1C - { return NiIntegerExtraData::IsEqual(a_object); }
42 
43  [[nodiscard]] Flag GetFlags() const;
44  void SetFlags(Flag a_flags);
45  };
46  static_assert(sizeof(BSXFlags) == 0x20);
47 }
Definition: BSXFlags.h:8
void LoadBinary(NiStream &a_stream) override
Flag GetFlags() const
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:14
NiObject * CreateClone(NiCloningProcess &a_cloning) override
Definition: NiIntegerExtraData.h:8
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiStream.h:6
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BSXFlags
Definition: Offsets_RTTI.h:3658
constexpr REL::ID NiRTTI_BSXFlags
Definition: Offsets_NiRTTI.h:135