CommonLibVR
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 
8 namespace 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:
62  KEEP_FOR_RE()
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:713
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
constexpr static std::string_view MENU_NAME
Definition: MainMenu.h:30
void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override
std::uint32_t unk68
Definition: MainMenu.h:56
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