CommonLibSSE NG
Loading...
Searching...
No Matches
RaceSexMenu.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSTArray.h"
4#include "RE/I/IMenu.h"
7#include "RE/S/Sexes.h"
8
9namespace RE
10{
11 // menuDepth = 3
12 // flags = kPausesGame | kUsesMenuContext | kRequiresUpdate | kTopmostRenderedMenu | kUpdateUsesCursor
13 // context = kItemMenu
15#ifndef SKYRIM_CROSS_VR
16 public IMenu, // 00
17 public MenuEventHandler // 30, 40
18#else
19 public IMenu // 00
20#endif
21 {
22 public:
23 inline static constexpr auto RTTI = RTTI_RaceSexMenu;
24 constexpr static std::string_view MENU_NAME = "RaceSex Menu";
25
27 {
28#define RUNTIME_DATA_CONTENT \
29 BSTArray<void*> unk040[7]; /* 000 */ \
30 RaceSexCamera camera; /* 0A8 */ \
31 BSTArray<void*> unk140[2]; /* 100 */ \
32 BSTArray<void*> unk170; /* 130 */ \
33 std::uint64_t unk188; /* 148 */ \
34 std::uint32_t unk190; /* 150 */ \
35 std::uint32_t unk194; /* 154 */ \
36 stl::enumeration<SEX, std::uint32_t> sex; /* 158 */ \
37 std::uint16_t unk19C; /* 15C */ \
38 std::uint8_t unk19E; /* 15E */ \
39 std::uint8_t pad19F; /* 15F */ \
40 std::uint8_t unk1A0; /* 160 */ \
41 std::uint8_t unk1A1; /* 161 */ \
42 std::uint16_t unk1A2; /* 162 */ \
43 std::uint32_t unk1A4; /* 164 */
44
46 };
47 static_assert(sizeof(RUNTIME_DATA) == 0x168);
48
49 ~RaceSexMenu() override; // 00
50
51 // override (IMenu)
52 void Accept(CallbackProcessor* a_processor) override; // 01
53 void PostCreate() override; // 02
54 UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
55 void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override; // 05
56
57 // override (MenuEventHandler)
58#ifndef SKYRIM_CROSS_VR
59 bool CanProcess(InputEvent* a_event) override; // 01
60 bool ProcessThumbstick(ThumbstickEvent* a_event) override; // 03
61 bool ProcessMouseMove(MouseMoveEvent* a_event) override; // 04
62 bool ProcessButton(ButtonEvent* a_event) override; // 05
63#endif
64
65 [[nodiscard]] MenuEventHandler* AsMenuEventHandler() noexcept
66 {
67 return &REL::RelocateMember<MenuEventHandler>(this, 0x30, 0x40);
68 }
69
70 [[nodiscard]] const MenuEventHandler* AsMenuEventHandler() const noexcept
71 {
72 return const_cast<RaceSexMenu*>(this)->AsMenuEventHandler();
73 }
74
75 [[nodiscard]] inline RUNTIME_DATA& GetRuntimeData() noexcept
76 {
77 return REL::RelocateMember<RUNTIME_DATA>(this, 0x40, 0x50);
78 }
79
80 [[nodiscard]] inline const RUNTIME_DATA& GetRuntimeData() const noexcept
81 {
82 return REL::RelocateMember<RUNTIME_DATA>(this, 0x40, 0x50);
83 }
84
85 void ChangeName(const char* a_name);
86
87 // members
88#ifndef SKYRIM_CROSS_VR
89 RUNTIME_DATA_CONTENT // 40, 50
90#endif
91 };
92#ifndef ENABLE_SKYRIM_VR
93 static_assert(sizeof(RaceSexMenu) == 0x1A8);
94#elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
95 static_assert(sizeof(RaceSexMenu) == 0x1B8);
96#endif
97}
98#undef RUNTIME_DATA_CONTENT
#define RUNTIME_DATA_CONTENT
Definition Actor.h:633
Definition ButtonEvent.h:11
Definition FxDelegateHandler.h:19
Definition IMenu.h:55
Definition InputEvent.h:22
Definition MenuEventHandler.h:14
Definition MouseMoveEvent.h:8
Definition RaceSexMenu.h:21
const MenuEventHandler * AsMenuEventHandler() const noexcept
Definition RaceSexMenu.h:70
~RaceSexMenu() override
void PostCreate() override
bool ProcessMouseMove(MouseMoveEvent *a_event) override
bool CanProcess(InputEvent *a_event) override
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
static constexpr std::string_view MENU_NAME
Definition RaceSexMenu.h:24
bool ProcessButton(ButtonEvent *a_event) override
RUNTIME_DATA & GetRuntimeData() noexcept
Definition RaceSexMenu.h:75
static constexpr auto RTTI
Definition RaceSexMenu.h:23
bool ProcessThumbstick(ThumbstickEvent *a_event) override
MenuEventHandler * AsMenuEventHandler() noexcept
Definition RaceSexMenu.h:65
const RUNTIME_DATA & GetRuntimeData() const noexcept
Definition RaceSexMenu.h:80
void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override
void ChangeName(const char *a_name)
void Accept(CallbackProcessor *a_processor) override
Definition ThumbstickEvent.h:8
Definition UIMessage.h:28
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_RaceSexMenu(688899, 396754, 0x1f47630)
UI_MESSAGE_RESULTS
Definition IMenu.h:48
Definition RaceSexMenu.h:27