CommonLibSSE (powerof3)
BookMenu.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTEvent.h"
4 #include "RE/G/GPtr.h"
5 #include "RE/I/IMenu.h"
6 #include "RE/I/ImageData.h"
8 
9 namespace RE
10 {
11  struct BSAnimationGraphEvent;
12 
13  class TESObjectREFR;
14 
15  // menuDepth = 1
16  // flags = kPausesGame | kUsesMenuContext | kDisablePauseMenu | kRequiresUpdate | kTopmostRenderedMenu | kRendersOffscreenTargets
17  // context = kBook
18  class BookMenu :
19  public IMenu, // 00
21  public BSTEventSink<BSAnimationGraphEvent> // 48
22  {
23  public:
24  inline static constexpr auto RTTI = RTTI_BookMenu;
25  constexpr static std::string_view MENU_NAME = "Book Menu";
26 
27  ~BookMenu() override; // 00
28 
29  // override (IMenu)
30  UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
31  void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override; // 05
32  void PostDisplay() override; // 06
33  void PreDisplay() override; // 07
34 
35  // override (BSTEventSink<BSAnimationGraphEvent>)
37 
38  [[nodiscard]] TESObjectREFR* GetTargetReference(); // returns null if opened from inventory
39 
40  // members
43  void* unk70; // 70 - smart ptr
44  std::uint32_t unk78; // 78
45  std::uint32_t pad7C; // 7C
46  std::uint64_t unk80; // 80
47  void* unk88; // 88 - smart ptr
48  std::uint16_t unk90; // 90
49  std::uint16_t unk92; // 92
50  bool closeMenu; // 94
51  bool isNote; // 95
52  std::uint8_t unk96; // 96
53  std::uint8_t pad97; // 97
54  };
55  static_assert(sizeof(BookMenu) == 0x98);
56 }
Definition: BSTArray.h:377
Definition: BSTEvent.h:146
Definition: BookMenu.h:22
std::uint64_t unk80
Definition: BookMenu.h:46
constexpr static std::string_view MENU_NAME
Definition: BookMenu.h:25
void * unk88
Definition: BookMenu.h:47
std::uint32_t pad7C
Definition: BookMenu.h:45
std::uint8_t pad97
Definition: BookMenu.h:53
void PostDisplay() override
std::uint16_t unk92
Definition: BookMenu.h:49
GPtr< GFxMovieView > book
Definition: BookMenu.h:42
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
void PreDisplay() override
std::uint8_t unk96
Definition: BookMenu.h:52
std::uint32_t unk78
Definition: BookMenu.h:44
static constexpr auto RTTI
Definition: BookMenu.h:24
TESObjectREFR * GetTargetReference()
BSTArray< ImageData > unk50
Definition: BookMenu.h:41
std::uint16_t unk90
Definition: BookMenu.h:48
void * unk70
Definition: BookMenu.h:43
BSEventNotifyControl ProcessEvent(const BSAnimationGraphEvent *a_event, BSTEventSource< BSAnimationGraphEvent > *a_eventSource) override
bool isNote
Definition: BookMenu.h:51
~BookMenu() override
bool closeMenu
Definition: BookMenu.h:50
void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override
Definition: GPtr.h:7
Definition: IMenu.h:55
Definition: SimpleAnimationGraphManagerHolder.h:11
Definition: TESObjectREFR.h:103
Definition: UIMessage.h:28
Definition: AbsorbEffect.h:6
UI_MESSAGE_RESULTS
Definition: IMenu.h:48
constexpr REL::ID RTTI_BookMenu
Definition: Offsets_RTTI.h:3687
BSEventNotifyControl
Definition: BSTEvent.h:12
Definition: BSAnimationGraphEvent.h:10