CommonLibSSE (Parapets fork)
HUDMenu.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTArray.h"
4 #include "RE/B/BSTEvent.h"
5 #include "RE/G/GFxValue.h"
6 #include "RE/I/IMenu.h"
7 #include "RE/W/WorldSpaceMenu.h"
8 
9 namespace RE
10 {
11  class ActorValueMeter;
12  class HUDObject;
13  class ShoutMeter;
14  class UserEventEnabledEvent;
15  struct BSRemoteGamepadEvent;
16 
17 #ifndef SKYRIMVR
18  // menuDepth = 2
19  // flags = kAlwaysOpen | kRequiresUpdate | kAllowSaving | kCustomRendering | kAssignCursorToRenderer
20  // context = kNone
21  class HUDMenu :
22  public IMenu, // 00
23  public BSTEventSink<UserEventEnabledEvent>, // 30
24  public BSTEventSink<BSRemoteGamepadEvent> // 38
25  {
26  public:
27  inline static constexpr auto RTTI = RTTI_HUDMenu;
28  constexpr static std::string_view MENU_NAME = "HUD Menu";
29 
30  ~HUDMenu() override; // 00
31 
32  // override (IMenu)
33  void Accept(CallbackProcessor* a_processor) override; // 01
34  UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
35  void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override; // 05
36  void RefreshPlatform() override; // 08
37 
38  // override (BSTEventSink<UserEventEnabledEvent>)
39  BSEventNotifyControl ProcessEvent(const UserEventEnabledEvent* a_event, BSTEventSource<UserEventEnabledEvent>* a_eventSource) override; // 01
40 
41  // override (BSTEventSink<BSRemoteGamepadEvent>)
42  BSEventNotifyControl ProcessEvent(const BSRemoteGamepadEvent* a_event, BSTEventSource<BSRemoteGamepadEvent>* a_eventSource) override; // 01
43 
44  // members
49  ShoutMeter* shout; // 70
50  GFxValue root; // 78 - kDisplayObject - "_level0.HUDMovieBaseInstance"
51  std::uint64_t unk90; // 90
52  };
53  static_assert(sizeof(HUDMenu) == 0x98);
54 #else
55  class HUDMenu :
56  public WorldSpaceMenu, // 00
57  public BSTEventSink<UserEventEnabledEvent>, // 58
58  public BSTEventSink<BSRemoteGamepadEvent> // 60
59  {
60  public:
61  inline static constexpr auto RTTI = RTTI_HUDMenu;
62  constexpr static std::string_view MENU_NAME = "VR/VR_HMD_info";
63 
64  ~HUDMenu() override; // 00
65 
66  // override (IMenu)
67  void Accept(CallbackProcessor* a_processor) override; // 01
68  UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
69  void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override; // 05
70  void RefreshPlatform() override; // 08
71 
72  // override (BSTEventSink<HudModeChangeEvent>)
73  BSEventNotifyControl ProcessEvent(const HudModeChangeEvent* a_event, BSTEventSource<HudModeChangeEvent>* a_eventSource) override; // 01
74 
75  // override (BSTEventSink<UserEventEnabledEvent>)
76  BSEventNotifyControl ProcessEvent(const UserEventEnabledEvent* a_event, BSTEventSource<UserEventEnabledEvent>* a_eventSource) override; // 01
77 
78  // override (BSTEventSink<BSRemoteGamepadEvent>)
79  BSEventNotifyControl ProcessEvent(const BSRemoteGamepadEvent* a_event, BSTEventSource<BSRemoteGamepadEvent>* a_eventSource) override; // 01
80 
81  // members
82  std::uint64_t pad68; // 68
84  ActorValueMeter* health; // 88
85  ActorValueMeter* stamina; // 90
86  ActorValueMeter* magicka; // 98
87  ShoutMeter* shout; // A0
88  GFxValue root; // A8 - kDisplayObject - "_level0.HUDMovieBaseInstance"
89  std::uint64_t unk90; // C0
90  };
91  static_assert(sizeof(HUDMenu) == 0xC8);
92 #endif
93 }
Definition: ActorValueMeter.h:9
Definition: BSTArray.h:377
Definition: BSTEvent.h:146
Definition: BSTEvent.h:28
Definition: FxDelegateHandler.h:19
Definition: GFxValue.h:92
Definition: HUDMenu.h:25
~HUDMenu() override
ActorValueMeter * magicka
Definition: HUDMenu.h:48
BSTArray< HUDObject * > objects
Definition: HUDMenu.h:45
constexpr static std::string_view MENU_NAME
Definition: HUDMenu.h:28
BSEventNotifyControl ProcessEvent(const UserEventEnabledEvent *a_event, BSTEventSource< UserEventEnabledEvent > *a_eventSource) override
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
ShoutMeter * shout
Definition: HUDMenu.h:49
GFxValue root
Definition: HUDMenu.h:50
void RefreshPlatform() override
void Accept(CallbackProcessor *a_processor) override
std::uint64_t unk90
Definition: HUDMenu.h:51
void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override
ActorValueMeter * stamina
Definition: HUDMenu.h:47
ActorValueMeter * health
Definition: HUDMenu.h:46
static constexpr auto RTTI
Definition: HUDMenu.h:27
BSEventNotifyControl ProcessEvent(const BSRemoteGamepadEvent *a_event, BSTEventSource< BSRemoteGamepadEvent > *a_eventSource) override
Definition: IMenu.h:56
Definition: ShoutMeter.h:8
Definition: UIMessage.h:28
Definition: AbsorbEffect.h:6
UI_MESSAGE_RESULTS
Definition: IMenu.h:49
constexpr REL::ID RTTI_HUDMenu
Definition: Offsets_RTTI.h:4880
BSEventNotifyControl
Definition: BSTEvent.h:12