CommonLibVR
JournalMenu.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTEvent.h"
4 #include "RE/I/IMenu.h"
9 
10 namespace RE
11 {
12  class BSSystemEvent;
13 
14  // menuDepth = 5
15  // flags = kPausesGame | kUsesMenuContext | kFreezeFrameBackground | kRequiresUpdate | kTopmostRenderedMenu | kUpdateUsesCursor | kAllowSaving
16  // kDisablePauseMenu if game load prevented
17  // context = kJournal
18  class JournalMenu :
19  public IMenu, // 00
20  public MenuEventHandler, // 30
21  public BSTEventSink<BSSystemEvent> // 40
22  {
23  public:
24  inline static constexpr auto RTTI = RTTI_JournalMenu;
25  inline static constexpr auto VTABLE = VTABLE_JournalMenu;
26  constexpr static std::string_view MENU_NAME = "Journal Menu";
27 
28  ~JournalMenu() override; // 00
29 
30  // override (IMenu)
31  void Accept(CallbackProcessor* a_processor) override; // 01
32  UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
33  void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override; // 05
34  void PostDisplay() override; // 06
35 
36  // override (MenuEventHandler)
37  bool CanProcess(InputEvent* a_event) override; // 01
38  bool ProcessThumbstick(ThumbstickEvent* a_event) override; // 03
39 
40  // override (BSTEventSink<BSSystemEvent>)
41  BSEventNotifyControl ProcessEvent(const BSSystemEvent* a_event, BSTEventSource<BSSystemEvent>* a_eventSource) override; // 01
42 
43  // members
47  std::uint64_t unkD0; // D0
48  std::uint64_t unkD8; // D8
49  bool unkE0; // E0
50 #ifdef SKYRIMVR
51  std::uint64_t unkF8; // F8
52  std::uint64_t unk100; // 100
53 #endif
54  private:
55  KEEP_FOR_RE()
56  };
57 #ifndef SKYRIMVR
58  static_assert(sizeof(JournalMenu) == 0xE8);
59 #else
60  static_assert(sizeof(JournalMenu) == 0x108);
61 #endif
62 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSTEvent.h:143
Definition: BSTEvent.h:19
Definition: FxDelegateHandler.h:20
Definition: IMenu.h:64
Definition: InputEvent.h:25
Definition: JournalMenu.h:22
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override
~JournalMenu() override
std::uint64_t unkD0
Definition: JournalMenu.h:47
bool ProcessThumbstick(ThumbstickEvent *a_event) override
Journal_SystemTab systemTab
Definition: JournalMenu.h:46
constexpr static std::string_view MENU_NAME
Definition: JournalMenu.h:26
bool unkE0
Definition: JournalMenu.h:49
Journal_StatsTab statsTab
Definition: JournalMenu.h:45
Journal_QuestsTab questsTab
Definition: JournalMenu.h:44
std::uint64_t unkD8
Definition: JournalMenu.h:48
static constexpr auto RTTI
Definition: JournalMenu.h:24
BSEventNotifyControl ProcessEvent(const BSSystemEvent *a_event, BSTEventSource< BSSystemEvent > *a_eventSource) override
bool CanProcess(InputEvent *a_event) override
static constexpr auto VTABLE
Definition: JournalMenu.h:25
void PostDisplay() override
void Accept(CallbackProcessor *a_processor) override
Definition: Journal_QuestsTab.h:9
Definition: Journal_StatsTab.h:8
Definition: Journal_SystemTab.h:19
Definition: MenuEventHandler.h:14
Definition: ThumbstickEvent.h:8
Definition: UIMessage.h:28
Definition: AbsorbEffect.h:6
UI_MESSAGE_RESULTS
Definition: IMenu.h:49
constexpr REL::ID RTTI_JournalMenu(static_cast< std::uint64_t >(689011))
constexpr std::array< REL::ID, 3 > VTABLE_JournalMenu
Definition: Offsets_VTABLE.h:11936
BSEventNotifyControl
Definition: BSTEvent.h:12