CommonLibSSE NG
ExtraFlags.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSExtraData.h"
4 #include "RE/E/ExtraDataTypes.h"
5 
6 namespace RE
7 {
8  class ExtraFlags : public BSExtraData
9  {
10  public:
11  inline static constexpr auto RTTI = RTTI_ExtraFlags;
12  inline static auto EXTRADATATYPE = ExtraDataType::kFlags;
13 
14  enum class Flag
15  {
16  kNone = 0,
17  kBlockActivate = 1 << 0,
18  kBlockPlayerActivate = 1 << 1,
19  kBlockLoadEvents = 1 << 2,
20  kBlockActivateText = 1 << 3,
21  kPlayerHasTaken = 1 << 5
22  };
23 
24  ~ExtraFlags() override; // 00
25 
26  // override (BSExtraData)
27  [[nodiscard]] ExtraDataType GetType() const override; // 01 - { return kFlags; }
28 
29  [[nodiscard]] constexpr bool IsActivationBlocked() const noexcept { return flags.all(Flag::kBlockActivate); }
30 
31  // members
33  std::uint32_t pad14; // 14
34  };
35  static_assert(sizeof(ExtraFlags) == 0x18);
36 }
Definition: BSExtraData.h:9
Definition: ExtraFlags.h:9
~ExtraFlags() override
Flag
Definition: ExtraFlags.h:15
static constexpr auto RTTI
Definition: ExtraFlags.h:11
std::uint32_t pad14
Definition: ExtraFlags.h:33
ExtraDataType GetType() const override
stl::enumeration< Flag, std::uint32_t > flags
Definition: ExtraFlags.h:32
constexpr bool IsActivationBlocked() const noexcept
Definition: ExtraFlags.h:29
static auto EXTRADATATYPE
Definition: ExtraFlags.h:12
constexpr bool all(Args... a_args) const noexcept requires(std
Definition: PCH.h:295
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_ExtraFlags(684698, 392365, 0x1ed8a80)
ExtraDataType
Definition: ExtraDataTypes.h:173