CommonLibVR
UIMessageQueue.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSFixedString.h"
4 #include "RE/B/BSTHashMap.h"
5 #include "RE/B/BSTMessageQueue.h"
6 #include "RE/B/BSTSingleton.h"
7 #include "RE/U/UIMessage.h"
8 
9 namespace RE
10 {
11  class IUIMessageData;
12  class UIMessage;
13 
14  class UIMessageQueue : public BSTSingletonSDM<UIMessageQueue>
15  {
16  public:
17  enum
18  {
19  kPoolSize = 64
20  };
21 
23 
24  void AddMessage(const BSFixedString& a_menuName, UI_MESSAGE_TYPE a_type, IUIMessageData* a_data);
25  IUIMessageData* CreateUIMessageData(const BSFixedString& a_name); // uses unk348, but doesn't seem to work like the skse thinks it does
27 
28  // members
29  std::uint8_t pad001; // 001
30  std::uint16_t pad002; // 002
31  std::uint32_t pad004; // 004
34  std::uint32_t poolUsed; // 378
35  std::uint32_t pad37C; // 37C
37  private:
38  KEEP_FOR_RE()
39  };
40  static_assert(sizeof(UIMessageQueue) == 0xB80);
41 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSTMessageQueue.h:81
Definition: BSTHashMap.h:21
Definition: IUIMessageData.h:6
Definition: UIMessageQueue.h:15
IUIMessageData * CreateUIMessageData(const BSFixedString &a_name)
static UIMessageQueue * GetSingleton()
BSTHashMap< UnkKey, UnkValue > unk348
Definition: UIMessageQueue.h:33
std::uint8_t pad001
Definition: UIMessageQueue.h:29
UIMessage messagePool[kPoolSize]
Definition: UIMessageQueue.h:36
std::uint32_t poolUsed
Definition: UIMessageQueue.h:34
BSTCommonStaticMessageQueue< UIMessage *, 100 > messages
Definition: UIMessageQueue.h:32
std::uint32_t pad37C
Definition: UIMessageQueue.h:35
std::uint16_t pad002
Definition: UIMessageQueue.h:30
@ kPoolSize
Definition: UIMessageQueue.h:19
void AddMessage(const BSFixedString &a_menuName, UI_MESSAGE_TYPE a_type, IUIMessageData *a_data)
std::uint32_t pad004
Definition: UIMessageQueue.h:31
Definition: UIMessage.h:28
Definition: AbsorbEffect.h:6
UI_MESSAGE_TYPE
Definition: UIMessage.h:10
Definition: BSTSingleton.h:50