CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
BookMenu.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSString.h"
4#include "RE/B/BSTEvent.h"
5#include "RE/G/GPtr.h"
6#include "RE/I/IMenu.h"
7#include "RE/I/ImageData.h"
8#include "RE/N/NiMatrix3.h"
11
12namespace RE
13{
14 struct BSAnimationGraphEvent;
15
16 class ExtraDataList;
17 class NiAVObject;
18 class TESObjectBOOK;
19 class TESObjectREFR;
20
21 // menuDepth = 1
22 // flags = kPausesGame | kUsesMenuContext | kDisablePauseMenu | kRequiresUpdate | kTopmostRenderedMenu | kRendersOffscreenTargets
23 // context = kBook
24 class BookMenu :
25 public IMenu, // 00
27 public BSTEventSink<BSAnimationGraphEvent> // 48
28 {
29 public:
30 inline static constexpr auto RTTI = RTTI_BookMenu;
31 inline static constexpr auto VTABLE = VTABLE_BookMenu;
32 constexpr static std::string_view MENU_NAME = "Book Menu";
33
34 ~BookMenu() override; // 00
35
36 // override (IMenu)
37 UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
38 void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override; // 05
39 void PostDisplay() override; // 06
40 void PreDisplay() override; // 07
41
42 // override (BSTEventSink<BSAnimationGraphEvent>)
44
45 [[nodiscard]] static TESObjectBOOK* GetTargetForm();
46 [[nodiscard]] static TESObjectREFR* GetTargetReference(); // returns null if opened from inventory
47
48 static void OpenBookMenu(const BSString& a_description, const ExtraDataList* a_extraList, TESObjectREFR* a_ref, TESObjectBOOK* a_book, const NiPoint3& a_pos, const NiMatrix3& a_rot, float a_scale, bool a_useDefaultPos);
49
50 // members
54 std::uint32_t unk78; // 78
55 std::uint32_t pad7C; // 7C
56 std::uint64_t unk80; // 80
57 void* unk88; // 88 - smart ptr
58 std::uint16_t unk90; // 90
59 std::uint16_t unk92; // 92
60 bool closeMenu; // 94
61 bool isNote; // 95
62 std::uint8_t unk96; // 96
63 std::uint8_t pad97; // 97
64 };
65 static_assert(sizeof(BookMenu) == 0x98);
66}
Definition: BSTArray.h:377
Definition: BSTEvent.h:143
Definition: BSTEvent.h:19
Definition: BookMenu.h:28
std::uint64_t unk80
Definition: BookMenu.h:56
void * unk88
Definition: BookMenu.h:57
std::uint32_t pad7C
Definition: BookMenu.h:55
static TESObjectBOOK * GetTargetForm()
std::uint8_t pad97
Definition: BookMenu.h:63
static constexpr auto VTABLE
Definition: BookMenu.h:31
void PostDisplay() override
std::uint16_t unk92
Definition: BookMenu.h:59
GPtr< GFxMovieView > book
Definition: BookMenu.h:52
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
void PreDisplay() override
std::uint8_t unk96
Definition: BookMenu.h:62
std::uint32_t unk78
Definition: BookMenu.h:54
static constexpr auto RTTI
Definition: BookMenu.h:30
BSTArray< ImageData > unk50
Definition: BookMenu.h:51
std::uint16_t unk90
Definition: BookMenu.h:58
BSEventNotifyControl ProcessEvent(const BSAnimationGraphEvent *a_event, BSTEventSource< BSAnimationGraphEvent > *a_eventSource) override
static constexpr std::string_view MENU_NAME
Definition: BookMenu.h:32
NiPointer< NiAVObject > book3D
Definition: BookMenu.h:53
bool isNote
Definition: BookMenu.h:61
static TESObjectREFR * GetTargetReference()
~BookMenu() override
bool closeMenu
Definition: BookMenu.h:60
void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override
static void OpenBookMenu(const BSString &a_description, const ExtraDataList *a_extraList, TESObjectREFR *a_ref, TESObjectBOOK *a_book, const NiPoint3 &a_pos, const NiMatrix3 &a_rot, float a_scale, bool a_useDefaultPos)
Definition: ExtraDataList.h:49
Definition: GPtr.h:7
Definition: IMenu.h:55
Definition: NiMatrix3.h:8
Definition: NiPoint3.h:6
Definition: NiSmartPointer.h:9
Definition: SimpleAnimationGraphManagerHolder.h:11
Definition: TESObjectBOOK.h:66
Definition: TESObjectREFR.h:110
Definition: UIMessage.h:28
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BookMenu(static_cast< std::uint64_t >(688801))
UI_MESSAGE_RESULTS
Definition: IMenu.h:48
constexpr std::array< REL::ID, 3 > VTABLE_BookMenu
Definition: Offsets_VTABLE.h:10613
BSEventNotifyControl
Definition: BSTEvent.h:12
Definition: BSAnimationGraphEvent.h:10