CommonLibVR
Loading...
Searching...
No Matches
ExtraFlags.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSExtraData.h"
5
6namespace RE
7{
8 class ExtraFlags : public BSExtraData
9 {
10 public:
11 inline static constexpr auto RTTI = RTTI_ExtraFlags;
12 inline static constexpr auto VTABLE = VTABLE_ExtraFlags;
13 inline static constexpr auto EXTRADATATYPE = ExtraDataType::kFlags;
14
15 enum class Flag
16 {
17 kNone = 0,
18 kBlockActivate = 1 << 0,
19 kBlockPlayerActivate = 1 << 1,
20 kBlockLoadEvents = 1 << 2,
21 kBlockActivateText = 1 << 3,
22 kPlayerHasTaken = 1 << 5
23 };
24
25 ~ExtraFlags() override; // 00
26
27 // override (BSExtraData)
28 [[nodiscard]] ExtraDataType GetType() const override; // 01 - { return kFlags; }
29
30 [[nodiscard]] constexpr bool IsActivationBlocked() const noexcept { return flags.all(Flag::kBlockActivate); }
31
32 // members
34 std::uint32_t pad14; // 14
35 private:
37 };
38 static_assert(sizeof(ExtraFlags) == 0x18);
39}
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition EnumSet.h:9
constexpr bool all(Args... a_args) const noexcept
Definition EnumSet.h:99
Definition BSExtraData.h:9
Definition ExtraFlags.h:9
static constexpr auto VTABLE
Definition ExtraFlags.h:12
static constexpr auto EXTRADATATYPE
Definition ExtraFlags.h:13
~ExtraFlags() override
Flag
Definition ExtraFlags.h:16
static constexpr auto RTTI
Definition ExtraFlags.h:11
REX::EnumSet< Flag, std::uint32_t > flags
Definition ExtraFlags.h:33
std::uint32_t pad14
Definition ExtraFlags.h:34
ExtraDataType GetType() const override
constexpr bool IsActivationBlocked() const noexcept
Definition ExtraFlags.h:30
Definition AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_ExtraFlags
Definition Offsets_VTABLE.h:11526
constexpr REL::ID RTTI_ExtraFlags(static_cast< std::uint64_t >(684698))
ExtraDataType
Definition ExtraDataTypes.h:173