CommonLibSSE (Parapets fork)
ContainerMenu.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTArray.h"
4 #include "RE/G/GFxValue.h"
5 #include "RE/I/IMenu.h"
6 
7 namespace RE
8 {
9  struct BottomBar;
10  struct ItemCard;
11  struct ItemList;
12 
13  // menuDepth = 0
14  // flags = kPausesGame | kUsesMenuContext | kDisablePauseMenu | kUpdateUsesCursor | kInventoryItemMenu | kCustomRendering
15  // context = kItemMenu
16  class ContainerMenu : public IMenu
17  {
18  public:
19  inline static constexpr auto RTTI = RTTI_ContainerMenu;
20  constexpr static std::string_view MENU_NAME = "ContainerMenu";
21 
22  enum class ContainerMode : std::uint32_t
23  {
24  kLoot = 0,
25  kSteal = 1,
26  kPickpocket = 2,
27  kNPCMode = 3
28  };
29 
30  ~ContainerMenu() override; // 00
31 
32  // override (IMenu)
33  void Accept(CallbackProcessor* a_processor) override; // 01
34  UI_MESSAGE_RESULTS ProcessMessage(UIMessage& a_message) override; // 04
35  void PostDisplay() override; // 06
36 
38  [[nodiscard]] RefHandle GetTargetRefHandle();
39 
40  // members
41  GFxValue root; // 30 - "Menu_mc"
47  std::uint64_t unk90; // 90
48  std::uint64_t unk98; // 98
49  std::uint64_t unkA0; // A0
50  std::uint8_t unkA8; // A8
51  std::uint8_t padA9; // A9
52  std::uint16_t padAA; // AA
53  std::uint32_t padAC; // AC
54  std::int32_t value; // B0
55  std::uint32_t unkB4; // B4
56  std::uint8_t unkB8; // B8
57  bool pcControlsReady; // B9
58  std::uint16_t padBA; // BA
59  std::uint32_t padBC; // BC
60  };
61 #ifndef SKYRIMVR
62  static_assert(sizeof(ContainerMenu) == 0xC0);
63 #else
64  //static_assert(sizeof(ContainerMenu) == 0xE0);
65 #endif
66 }
Definition: ContainerMenu.h:17
BSTArray< void * > unk78
Definition: ContainerMenu.h:46
void PostDisplay() override
std::uint8_t unkA8
Definition: ContainerMenu.h:50
ContainerMode
Definition: ContainerMenu.h:23
BSTArray< void * > unk60
Definition: ContainerMenu.h:45
std::uint8_t padA9
Definition: ContainerMenu.h:51
std::uint64_t unk98
Definition: ContainerMenu.h:48
std::uint16_t padBA
Definition: ContainerMenu.h:58
ItemList * itemList
Definition: ContainerMenu.h:42
ContainerMode GetContainerMode()
constexpr static std::string_view MENU_NAME
Definition: ContainerMenu.h:20
ItemCard * itemCard
Definition: ContainerMenu.h:43
std::uint8_t unkB8
Definition: ContainerMenu.h:56
BottomBar * bottomBar
Definition: ContainerMenu.h:44
RefHandle GetTargetRefHandle()
std::uint64_t unk90
Definition: ContainerMenu.h:47
std::int32_t value
Definition: ContainerMenu.h:54
bool pcControlsReady
Definition: ContainerMenu.h:57
UI_MESSAGE_RESULTS ProcessMessage(UIMessage &a_message) override
static constexpr auto RTTI
Definition: ContainerMenu.h:19
std::uint32_t unkB4
Definition: ContainerMenu.h:55
~ContainerMenu() override
void Accept(CallbackProcessor *a_processor) override
GFxValue root
Definition: ContainerMenu.h:41
std::uint32_t padBC
Definition: ContainerMenu.h:59
std::uint32_t padAC
Definition: ContainerMenu.h:53
std::uint64_t unkA0
Definition: ContainerMenu.h:49
std::uint16_t padAA
Definition: ContainerMenu.h:52
Definition: FxDelegateHandler.h:19
Definition: GFxValue.h:92
Definition: IMenu.h:56
Definition: UIMessage.h:28
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_ContainerMenu
Definition: Offsets_RTTI.h:4541
UI_MESSAGE_RESULTS
Definition: IMenu.h:49
std::uint32_t RefHandle
Definition: BSCoreTypes.h:6
Definition: BottomBar.h:9
Definition: ItemCard.h:14
Definition: ItemList.h:14