CommonLibVR
Loading...
Searching...
No Matches
MainMenu.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/B/BSTEvent.h"
6#include "RE/I/IMenu.h"
7
8namespace RE
9{
10 class BSSaveDataEvent;
11 class BSSystemEvent;
12 struct MapMenuMarker;
13
14 // menuDepth = 0
15 // flags = kPausesGame | kDisablePauseMenu | kRequiresUpdate | kUpdateUsesCursor | kApplicationMenu
16 // context = kMenuMode
17 class MainMenu :
18 public IMenu, // 00
19 public BSTEventSink<BSSystemEvent>, // 30
20 public BSTEventSink<BSSaveDataEvent>, // 38
21#ifndef SKYRIMVR
22 public GFxFunctionHandler // 40
23#else
24 public BSTEventSink<BSGamerProfileEvent>, // 50
25 public MenuEventHandler // 58
26#endif
27 {
28 public:
29 inline static constexpr auto RTTI = RTTI_MainMenu;
30 constexpr static std::string_view MENU_NAME = "Main Menu";
31
32 ~MainMenu() override; // 00
33
34 // override (IMenu)
35 void Accept(CallbackProcessor* a_processor) override; // 01
36 UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
37 void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override; // 05
38
39 // override (BSTEventSink<BSSystemEvent>)
40 BSEventNotifyControl ProcessEvent(const BSSystemEvent* a_event, BSTEventSource<BSSystemEvent>* a_eventSource) override; // 01
41
42 // override (BSTEventSink<BSSaveDataEvent>)
43 BSEventNotifyControl ProcessEvent(const BSSaveDataEvent* a_event, BSTEventSource<BSSaveDataEvent>* a_eventSource) override; // 01
44#ifdef SKYRIMVR
45 // override (BSTEventSink<BSSaveDataEvent>)
46 BSEventNotifyControl ProcessEvent(const BSGamerProfileEvent* a_event, BSTEventSource<BSGamerProfileEvent>* a_eventSource) override; // 01
47#endif
48
49#ifndef SKYRIMVR
50 // override (GFxFunctionHandler)
51 void Call(Params& a_params) override; // 01
52#endif
53
54 // members
56 std::uint32_t unk68; // 68
57 std::uint8_t unk6C; // 6C
58 std::uint8_t unk6D; // 6D
59 std::uint8_t unk6E; // 6E
60 std::uint8_t pad6F; // 6F
61 private:
63 };
64#ifndef SKYRIMVR
65 static_assert(sizeof(MainMenu) == 0x70);
66#else
67 static_assert(sizeof(MainMenu) == 0x88);
68#endif
69}
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition BSScaleformExternalTexture.h:9
Definition BSTEvent.h:143
Definition BSTEvent.h:19
Definition FxDelegateHandler.h:20
Definition GFxFunctionHandler.h:12
Definition IMenu.h:64
Definition MainMenu.h:27
BSEventNotifyControl ProcessEvent(const BSSaveDataEvent *a_event, BSTEventSource< BSSaveDataEvent > *a_eventSource) override
std::uint8_t pad6F
Definition MainMenu.h:60
std::uint8_t unk6D
Definition MainMenu.h:58
static constexpr auto RTTI
Definition MainMenu.h:29
BSScaleformExternalTexture gamerIconTexture
Definition MainMenu.h:55
void Accept(CallbackProcessor *a_processor) override
BSEventNotifyControl ProcessEvent(const BSSystemEvent *a_event, BSTEventSource< BSSystemEvent > *a_eventSource) override
~MainMenu() override
std::uint8_t unk6C
Definition MainMenu.h:57
void Call(Params &a_params) override
void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override
std::uint32_t unk68
Definition MainMenu.h:56
static constexpr std::string_view MENU_NAME
Definition MainMenu.h:30
std::uint8_t unk6E
Definition MainMenu.h:59
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
Definition MenuEventHandler.h:14
Definition UIMessage.h:28
Definition AbsorbEffect.h:6
UI_MESSAGE_RESULTS
Definition IMenu.h:49
constexpr REL::ID RTTI_MainMenu(static_cast< std::uint64_t >(688873))
BSEventNotifyControl
Definition BSTEvent.h:12
Definition GFxFunctionHandler.h:18