CommonLibSSE NG
Loading...
Searching...
No Matches
KinectMenu.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSTEvent.h"
4#include "RE/G/GFxValue.h"
5#include "RE/I/IMenu.h"
6
7namespace RE
8{
9 class MenuOpenCloseEvent;
10
11 // menuDepth = 6
12 // flags = kAllowSaving | kCustomRendering | kAssignCursorToRenderer
13 // context = kNone
14 class KinectMenu :
15#ifndef SKYRIM_CROSS_VR
16 public IMenu, // 00
17 public BSTEventSink<MenuOpenCloseEvent> // 30
18#else
19 public IMenu // 00
20#endif
21 {
22 public:
23 inline static constexpr auto RTTI = RTTI_KinectMenu;
24 constexpr static std::string_view MENU_NAME = "Kinect Menu";
25
26 ~KinectMenu() override; // 00
27
28 // override (IMenu)
29 UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
30
31#ifndef SKYRIM_CROSS_VR
32 // override (BSTEventSink<MenuOpenCloseEvent>)
34#endif
35
37 {
38 return &REL::RelocateMember<BSTEventSink<MenuOpenCloseEvent>>(this, 0x30, 0x40);
39 }
40
41 [[nodiscard]] const BSTEventSink<MenuOpenCloseEvent>* AsMenuOpenCloseEventSink() const noexcept
42 {
43 return const_cast<KinectMenu*>(this)->AsMenuOpenCloseEventSink();
44 }
45
46 [[nodiscard]] inline GFxValue GetRoot() const noexcept
47 {
48 return REL::RelocateMember<GFxValue>(this, 0x38, 0x48);
49 }
50
51 inline void SetRoot(GFxValue a_root) noexcept
52 {
53 REL::RelocateMember<GFxValue>(this, 0x38, 0x48) = a_root;
54 }
55
56 // members
57#ifndef SKYRIM_CROSS_VR
58 GFxValue root; // 38, 48 - "Menu_mc"
59#endif
60 };
61#ifndef ENABLE_SKYRIM_VR
62 static_assert(sizeof(KinectMenu) == 0x50);
63#elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
64 static_assert(sizeof(KinectMenu) == 0x60);
65#endif
66}
Definition BSTEvent.h:143
Definition BSTEvent.h:19
Definition GFxValue.h:92
Definition IMenu.h:55
Definition KinectMenu.h:21
static constexpr std::string_view MENU_NAME
Definition KinectMenu.h:24
void SetRoot(GFxValue a_root) noexcept
Definition KinectMenu.h:51
GFxValue root
Definition KinectMenu.h:58
BSEventNotifyControl ProcessEvent(const MenuOpenCloseEvent *a_event, BSTEventSource< MenuOpenCloseEvent > *a_eventSource) override
BSTEventSink< MenuOpenCloseEvent > * AsMenuOpenCloseEventSink() noexcept
Definition KinectMenu.h:36
GFxValue GetRoot() const noexcept
Definition KinectMenu.h:46
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
static constexpr auto RTTI
Definition KinectMenu.h:23
const BSTEventSink< MenuOpenCloseEvent > * AsMenuOpenCloseEventSink() const noexcept
Definition KinectMenu.h:41
~KinectMenu() override
Definition MenuOpenCloseEvent.h:8
Definition UIMessage.h:28
Definition AbsorbEffect.h:6
UI_MESSAGE_RESULTS
Definition IMenu.h:48
constexpr REL::VariantID RTTI_KinectMenu(686465, 394297, 0x1efe160)
BSEventNotifyControl
Definition BSTEvent.h:12