#pragma once #include "RE/B/BSTEvent.h" #include "RE/N/NiPointer.h" namespace RE { class TESFurnitureEvent { public: enum class FurnitureEventType : std::int32_t { kEnter = 0x0, kExit = 0x1 }; [[nodiscard]] static BSTEventSource* GetEventSource() { using func_t = decltype(&TESFurnitureEvent::GetEventSource); static REL::Relocation func{ ID::TESFurnitureEvent::GetEventSource }; return func(); } [[nodiscard]] constexpr bool IsEnter() const noexcept { return type.all(FurnitureEventType::kEnter); } [[nodiscard]] constexpr bool IsExit() const noexcept { return type.all(FurnitureEventType::kExit); } // members NiPointer actor; // 00 NiPointer targetFurniture; // 08 REX::TEnumSet type; // 10 }; static_assert(sizeof(TESFurnitureEvent) == 0x18); }