CommonLibSSE NG
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 
6 namespace 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 
22  struct RUNTIME_DATA
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: TweenMenu.h:24
Definition: FxDelegateHandler.h:19
Definition: IMenu.h:55
Definition: TweenMenu.h:17
static constexpr auto RTTI
Definition: TweenMenu.h:19
~TweenMenu() override
const RUNTIME_DATA & GetRuntimeData() const noexcept
Definition: TweenMenu.h:54
RUNTIME_DATA & GetRuntimeData() noexcept
Definition: TweenMenu.h:49
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
void Accept(CallbackProcessor *a_processor) override
constexpr static 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