CommonLibSSE NG
CraftingMenu.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/I/IMenu.h"
4 
5 namespace RE
6 {
7  namespace CraftingSubMenus
8  {
9  class CraftingSubMenu;
10  }
11 
12  // menuDepth = 0
13  // flags = kUsesMenuContext | kDisablePauseMenu | kUpdateUsesCursor | kInventoryItemMenu | kDontHideCursorWhenTopmost
14  // context = kItemMenu
15  class CraftingMenu : public IMenu
16  {
17  public:
18  inline static constexpr auto RTTI = RTTI_CraftingMenu;
19  constexpr static std::string_view MENU_NAME = "Crafting Menu";
20 
21  ~CraftingMenu() override; // 00
22 
23  // override (IMenu)
24  UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
25  void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override; // 05
26  void PostDisplay() override; // 06
27 
28  [[nodiscard]] inline CraftingSubMenus::CraftingSubMenu* GetCraftingSubMenu() const noexcept
29  {
30  return REL::RelocateMember<CraftingSubMenus::CraftingSubMenu*>(this, 0x30, 0x40);
31  }
32 
33  inline void SetCraftingSubMenu(CraftingSubMenus::CraftingSubMenu* craftingSubMenu) noexcept
34  {
35  REL::RelocateMember<CraftingSubMenus::CraftingSubMenu*>(this, 0x30, 0x40) = craftingSubMenu;
36  }
37 
38  // members
39 #ifndef SKYRIM_CROSS_VR
41 #endif
42  };
43 #ifndef ENABLE_SKYRIM_VR
44  static_assert(sizeof(CraftingMenu) == 0x38);
45 #elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
46  static_assert(sizeof(CraftingMenu) == 0x48);
47 #endif
48 }
Definition: CraftingMenu.h:16
static constexpr auto RTTI
Definition: CraftingMenu.h:18
CraftingSubMenus::CraftingSubMenu * subMenu
Definition: CraftingMenu.h:40
void SetCraftingSubMenu(CraftingSubMenus::CraftingSubMenu *craftingSubMenu) noexcept
Definition: CraftingMenu.h:33
void PostDisplay() override
CraftingSubMenus::CraftingSubMenu * GetCraftingSubMenu() const noexcept
Definition: CraftingMenu.h:28
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
~CraftingMenu() override
constexpr static std::string_view MENU_NAME
Definition: CraftingMenu.h:19
void AdvanceMovie(float a_interval, std::uint32_t a_currentTime) override
Definition: CraftingSubMenu.h:20
Definition: IMenu.h:55
Definition: UIMessage.h:28
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_CraftingMenu(688808, 396660, 0x1f46110)
UI_MESSAGE_RESULTS
Definition: IMenu.h:48