CommonLibSSE NG
WorldSpaceMenu.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTEvent.h"
4 #include "RE/I/IMenu.h"
5 
6 namespace RE
7 {
8  class HudModeChangeEvent;
9 
10  // menuDepth = 4
11  // context = 22
13 #ifndef SKYRIM_CROSS_VR
14  public IMenu, // 00
15  public BSTEventSink<HudModeChangeEvent> // 40
16 #else
17  public IMenu // 00
18 #endif
19  {
20  public:
21 #if !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
22  inline static constexpr auto RTTI = RTTI_WorldSpaceMenu;
23 #endif
24 
25  ~WorldSpaceMenu() override; // 00
26 
28  {
29  if (!REL::Module::IsVR()) {
30  return nullptr;
31  }
32  return &REL::RelocateMember<BSTEventSink<HudModeChangeEvent>>(this, 0, 0x40);
33  }
34 
35  [[nodiscard]] const BSTEventSink<HudModeChangeEvent>* AsHudModeChangeEventSink() const noexcept
36  {
37  return const_cast<WorldSpaceMenu*>(this)->AsHudModeChangeEventSink();
38  }
39 
40 #if !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
41  // add
42  virtual void Unk_11();
43  virtual void Unk_12();
44  virtual void Unk_13();
45 
46  // members
47  std::uint16_t unk48{ 0 }; // 40
48  std::uint8_t unk50{ 0 }; // 42
49  std::uint8_t unk51{ 0 }; // 43
50  std::uint8_t unk52{ 0 }; // 44
51  std::uint8_t pad53{ 0 }; // 45
52  std::uint32_t pad54{ 0 }; // 46
53 #endif
54  };
55 #if !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
56  static_assert(sizeof(WorldSpaceMenu) == 0x58);
57 #endif
58 }
static SKYRIM_REL_VR bool IsVR() noexcept
Definition: Module.h:254
Definition: BSTEvent.h:143
Definition: IMenu.h:55
Definition: WorldSpaceMenu.h:19
std::uint8_t unk52
Definition: WorldSpaceMenu.h:50
std::uint8_t pad53
Definition: WorldSpaceMenu.h:51
std::uint8_t unk51
Definition: WorldSpaceMenu.h:49
std::uint32_t pad54
Definition: WorldSpaceMenu.h:52
static constexpr auto RTTI
Definition: WorldSpaceMenu.h:22
~WorldSpaceMenu() override
virtual void Unk_12()
virtual void Unk_13()
BSTEventSink< HudModeChangeEvent > * AsHudModeChangeEventSink() noexcept
Definition: WorldSpaceMenu.h:27
virtual void Unk_11()
const BSTEventSink< HudModeChangeEvent > * AsHudModeChangeEventSink() const noexcept
Definition: WorldSpaceMenu.h:35
std::uint8_t unk50
Definition: WorldSpaceMenu.h:48
std::uint16_t unk48
Definition: WorldSpaceMenu.h:47
Definition: AbsorbEffect.h:6
constexpr REL::VariantOffset RTTI_WorldSpaceMenu(0, 0, 0x1efe318)