CommonLibSSE NG
Loading...
Searching...
No Matches
TweenMenu.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSTArray.h"
4#include "RE/I/IMenu.h"
5
6namespace RE
7{
8 namespace BSResource
9 {
10 struct ID;
11 }
12
13 // menuDepth = 0
14 // flags = kPausesGame | kUpdateUsesCursor | kAllowSaving | kDontHideCursorWhenTopmost | kCustomRendering
15 // context = kMenuMode
16 class TweenMenu : public IMenu
17 {
18 public:
19 inline static constexpr auto RTTI = RTTI_TweenMenu;
20 constexpr static std::string_view MENU_NAME = "TweenMenu";
21
23 {
24#define RUNTIME_DATA_CONTENT \
25 BSTArray<PerkData> perkData; /* 00 */ \
26 float unk48; /* 18 */ \
27 float unk4C; /* 1C */
28
30 };
31 static_assert(sizeof(RUNTIME_DATA) == 0x20);
32
33 struct PerkData
34 {
35 public:
36 // members
38 const char* fileName; // 08
39 };
40 static_assert(sizeof(PerkData) == 0x10);
41
42 ~TweenMenu() override; // 00
43
44 // override (IMenu)
45 void Accept(CallbackProcessor* a_processor) override; // 01
46 UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
47 void PostDisplay() override; // 06
48
49 [[nodiscard]] inline RUNTIME_DATA& GetRuntimeData() noexcept
50 {
51 return REL::RelocateMember<RUNTIME_DATA>(this, 0x30, 0x40);
52 }
53
54 [[nodiscard]] inline const RUNTIME_DATA& GetRuntimeData() const noexcept
55 {
56 return REL::RelocateMember<RUNTIME_DATA>(this, 0x30, 0x40);
57 }
58
59 // members
60#ifndef SKYRIM_CROSS_VR
61 RUNTIME_DATA_CONTENT // 30, 40
62#endif
63 };
64#ifndef ENABLE_SKYRIM_VR
65 static_assert(sizeof(TweenMenu) == 0x50);
66#elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
67 static_assert(sizeof(TweenMenu) == 0x60);
68#endif
69}
70#undef RUNTIME_DATA_CONTENT
#define RUNTIME_DATA_CONTENT
Definition Actor.h:633
Definition FxDelegateHandler.h:19
Definition IMenu.h:55
Definition TweenMenu.h:17
RUNTIME_DATA & GetRuntimeData() noexcept
Definition TweenMenu.h:49
static constexpr auto RTTI
Definition TweenMenu.h:19
~TweenMenu() override
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
const RUNTIME_DATA & GetRuntimeData() const noexcept
Definition TweenMenu.h:54
void Accept(CallbackProcessor *a_processor) override
static constexpr std::string_view MENU_NAME
Definition TweenMenu.h:20
void PostDisplay() override
Definition UIMessage.h:28
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_TweenMenu(688922, 396777, 0x1f47a70)
UI_MESSAGE_RESULTS
Definition IMenu.h:48
Definition ID.h:10
Definition TweenMenu.h:34
const char * fileName
Definition TweenMenu.h:38
BSResource::ID * fileHash
Definition TweenMenu.h:37
Definition TweenMenu.h:23