CommonLibSSE NG
Loading...
Searching...
No Matches
ModManagerMenu.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/I/IMenu.h"
6
7namespace RE
8{
9 // menuDepth = 9
10 // flags = kPausesGame | kUsesMenuContext | kModal | kDisablePauseMenu | kRequiresUpdate | kTopmostRenderedMenu | kUpdateUsesCursor
11 // context = kMenuMode
13#ifndef SKYRIM_CROSS_VR
14 public IMenu, // 00
15 public MenuEventHandler, // 30
16 public GFxFunctionHandler // 40
17#else
18 public IMenu // 00
19#endif
20 {
21 public:
22 inline static constexpr auto RTTI = RTTI_ModManagerMenu;
23 constexpr static std::string_view MENU_NAME = "Mod Manager Menu";
24
26 {
27#define RUNTIME_DATA_CONTENT \
28 std::uint8_t unk50; /* 50 */ \
29 std::uint8_t pad51; /* 51 */ \
30 std::uint16_t pad52; /* 52 */ \
31 std::uint32_t pad54; /* 54 */
32
34 };
35 static_assert(sizeof(RUNTIME_DATA) == 0x8);
36
37 ~ModManagerMenu() override; // 00
38
39 // override (IMenu)
40 UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
41 void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override; // 05
42
43#ifndef SKYRIM_CROSS_VR
44 // override (MenuEventHandler)
45 bool CanProcess(InputEvent* a_event) override; // 01
46 bool ProcessThumbstick(ThumbstickEvent* a_event) override; // 03
47
48 // override (GFxFunctionHandler)
49 void Call(Params& a_params) override; // 01
50#endif
51
52 [[nodiscard]] MenuEventHandler* AsMenuEventHandler() noexcept
53 {
54 return &REL::RelocateMember<MenuEventHandler>(this, 0x30, 0x40);
55 }
56
57 [[nodiscard]] const MenuEventHandler* AsMenuEventHandler() const noexcept
58 {
59 return const_cast<ModManagerMenu*>(this)->AsMenuEventHandler();
60 }
61
62 [[nodiscard]] GFxFunctionHandler* AsGFxFunctionHandler() noexcept
63 {
64 return &REL::RelocateMember<GFxFunctionHandler>(this, 0x40, 0x50);
65 }
66
67 [[nodiscard]] const GFxFunctionHandler* AsGFxFunctionHandler() const noexcept
68 {
69 return const_cast<ModManagerMenu*>(this)->AsGFxFunctionHandler();
70 }
71
72 [[nodiscard]] inline RUNTIME_DATA& GetRuntimeData() noexcept
73 {
74 return REL::RelocateMember<RUNTIME_DATA>(this, 0x50, 0x60);
75 }
76
77 [[nodiscard]] inline const RUNTIME_DATA& GetRuntimeData() const noexcept
78 {
79 return REL::RelocateMember<RUNTIME_DATA>(this, 0x50, 0x60);
80 }
81
82 // members
83#ifndef SKYRIM_CROSS_VR
84 RUNTIME_DATA_CONTENT // 50, 60
85#endif
86 };
87#ifndef ENABLE_SKYRIM_VR
88 static_assert(sizeof(ModManagerMenu) == 0x58);
89#elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
90 static_assert(sizeof(ModManagerMenu) == 0x68);
91#endif
92}
93#undef RUNTIME_DATA_CONTENT
#define RUNTIME_DATA_CONTENT
Definition Actor.h:633
Definition GFxFunctionHandler.h:12
Definition IMenu.h:55
Definition InputEvent.h:22
Definition MenuEventHandler.h:14
Definition ModManagerMenu.h:20
const GFxFunctionHandler * AsGFxFunctionHandler() const noexcept
Definition ModManagerMenu.h:67
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
void Call(Params &a_params) override
GFxFunctionHandler * AsGFxFunctionHandler() noexcept
Definition ModManagerMenu.h:62
const MenuEventHandler * AsMenuEventHandler() const noexcept
Definition ModManagerMenu.h:57
~ModManagerMenu() override
RUNTIME_DATA & GetRuntimeData() noexcept
Definition ModManagerMenu.h:72
void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override
bool CanProcess(InputEvent *a_event) override
const RUNTIME_DATA & GetRuntimeData() const noexcept
Definition ModManagerMenu.h:77
bool ProcessThumbstick(ThumbstickEvent *a_event) override
static constexpr std::string_view MENU_NAME
Definition ModManagerMenu.h:23
static constexpr auto RTTI
Definition ModManagerMenu.h:22
MenuEventHandler * AsMenuEventHandler() noexcept
Definition ModManagerMenu.h:52
Definition ThumbstickEvent.h:8
Definition UIMessage.h:28
Definition AbsorbEffect.h:6
UI_MESSAGE_RESULTS
Definition IMenu.h:48
constexpr REL::VariantID RTTI_ModManagerMenu(686444, 394276, 0x1efd868)
Definition GFxFunctionHandler.h:17
Definition ModManagerMenu.h:26