CommonLibSSE (Parapets fork)
MenuTopicManager.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSFixedString.h"
4 #include "RE/B/BSPointerHandle.h"
5 #include "RE/B/BSSimpleList.h"
6 #include "RE/B/BSString.h"
7 #include "RE/B/BSTEvent.h"
8 #include "RE/B/BSTSingleton.h"
9 
10 namespace RE
11 {
12  class BGSDialogueBranch;
13  class DialogueResponse;
14  class MenuOpenCloseEvent;
15  class TESQuest;
16  class TESTopic;
17  class TESTopicInfo;
18  struct PositionPlayerEvent;
19 
21  public BSTSingletonSDM<MenuTopicManager>, // 0x10
22  public BSTEventSink<MenuOpenCloseEvent>, // 0x00
23  public BSTEventSink<PositionPlayerEvent> // 0x08
24  {
25  public:
26  inline static constexpr auto RTTI = RTTI_MenuTopicManager;
27 
28  struct Dialogue
29  {
30  public:
31  // members
33  bool unk10; // 10
34  bool unk11; // 11
35  bool unk12; // 12 - data.topic->formID == 0xFD || data.topic->formID == 0x118
36  std::uint8_t unk13; // 13
37  std::uint32_t unk14; // 14
43  std::uint8_t unk48; // 48
44  bool neverSaid; // 49
45  std::uint16_t unk4A; // 4A
46  std::uint32_t unk4C; // 4C
47  TESTopic* unk50; // 50
48  };
49  static_assert(sizeof(Dialogue) == 0x58);
50 
51  ~MenuTopicManager() override; // 00
52 
53  // override (BSTEventSink<MenuOpenCloseEvent>)
55 
56  // override (BSTEventSink<PositionPlayerEvent>)
58 
59  [[nodiscard]] static MenuTopicManager* GetSingleton();
60 
61  // members
64  std::uint64_t unk28; // 28
69  ObjectRefHandle lastSpeaker; // 6C - used if the dialogue menu was closed but the NPC is still talking
70  TESTopicInfo* currentTopicInfo; // 70 - only valid when the NPC is talking
71  TESTopicInfo* lastTopicInfo; // 78 - used if the dialogue menu was closed but the NPC is still talking
74  bool isGreetingPlayer; // B0
75  bool unkB1; // B1
76  bool isSayingGoodbye; // B2
77  bool unkB3; // B3
78  bool unkB4; // B4
79  bool unkB5; // B5
80  bool unkB6; // B6
81  bool unkB7; // B7
82  bool unkB8; // B8
83  bool unkB9; // B9
84  bool unkBA; // BA
85  bool unkBB; // BB
86  std::uint16_t padBC; // BC
88  };
89  static_assert(sizeof(MenuTopicManager) == 0xD8);
90 }
Definition: BSSimpleList.h:10
Definition: BSTArray.h:377
Definition: BSTEvent.h:146
Definition: MenuOpenCloseEvent.h:8
Definition: MenuTopicManager.h:24
bool unkB5
Definition: MenuTopicManager.h:79
bool unkB6
Definition: MenuTopicManager.h:80
TESTopicInfo * rootTopicInfo
Definition: MenuTopicManager.h:65
BSTArray< BGSDialogueBranch * > topLevelBranches
Definition: MenuTopicManager.h:73
BSEventNotifyControl ProcessEvent(const MenuOpenCloseEvent *a_event, BSTEventSource< MenuOpenCloseEvent > *a_eventSource) override
bool unkB8
Definition: MenuTopicManager.h:82
std::uint16_t padBC
Definition: MenuTopicManager.h:86
BSTArray< TESTopic * > unkC0
Definition: MenuTopicManager.h:87
BSEventNotifyControl ProcessEvent(const PositionPlayerEvent *a_event, BSTEventSource< PositionPlayerEvent > *a_eventSource) override
Dialogue * lastSelectedDialogue
Definition: MenuTopicManager.h:66
bool unkB3
Definition: MenuTopicManager.h:77
bool unkBB
Definition: MenuTopicManager.h:85
BSTArray< BGSDialogueBranch * > blockingBranches
Definition: MenuTopicManager.h:72
std::uint64_t unk28
Definition: MenuTopicManager.h:64
bool isSayingGoodbye
Definition: MenuTopicManager.h:76
bool unkBA
Definition: MenuTopicManager.h:84
static MenuTopicManager * GetSingleton()
static constexpr auto RTTI
Definition: MenuTopicManager.h:26
bool unkB4
Definition: MenuTopicManager.h:78
TESTopicInfo * currentTopicInfo
Definition: MenuTopicManager.h:70
ObjectRefHandle lastSpeaker
Definition: MenuTopicManager.h:69
BSSimpleList< Dialogue * > * selectedResponseNode
Definition: MenuTopicManager.h:62
bool isGreetingPlayer
Definition: MenuTopicManager.h:74
BSSimpleList< Dialogue * > * dialogueList
Definition: MenuTopicManager.h:63
ObjectRefHandle speaker
Definition: MenuTopicManager.h:68
~MenuTopicManager() override
bool unkB9
Definition: MenuTopicManager.h:83
WinAPI::CRITICAL_SECTION criticalSection
Definition: MenuTopicManager.h:67
bool unkB1
Definition: MenuTopicManager.h:75
TESTopicInfo * lastTopicInfo
Definition: MenuTopicManager.h:71
bool unkB7
Definition: MenuTopicManager.h:81
Definition: TESQuest.h:189
Definition: TESTopicInfo.h:42
Definition: TESTopic.h:135
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_MenuTopicManager
Definition: Offsets_RTTI.h:5156
BSEventNotifyControl
Definition: BSTEvent.h:12
Definition: BSTSingleton.h:50
Definition: MenuTopicManager.h:29
TESTopic * unk50
Definition: MenuTopicManager.h:47
std::uint8_t unk13
Definition: MenuTopicManager.h:36
bool unk12
Definition: MenuTopicManager.h:35
BSString topicText
Definition: MenuTopicManager.h:32
bool neverSaid
Definition: MenuTopicManager.h:44
TESTopic * parentTopic
Definition: MenuTopicManager.h:41
bool unk11
Definition: MenuTopicManager.h:34
std::uint32_t unk4C
Definition: MenuTopicManager.h:46
std::uint32_t unk14
Definition: MenuTopicManager.h:37
bool unk10
Definition: MenuTopicManager.h:33
std::uint16_t unk4A
Definition: MenuTopicManager.h:45
BSSimpleList< DialogueResponse * > responses
Definition: MenuTopicManager.h:38
BSSimpleList< DialogueResponse * > * unk40
Definition: MenuTopicManager.h:42
TESTopicInfo * parentTopicInfo
Definition: MenuTopicManager.h:40
TESQuest * parentQuest
Definition: MenuTopicManager.h:39
std::uint8_t unk48
Definition: MenuTopicManager.h:43
Definition: PositionPlayerEvent.h:7
Definition: WinAPI.h:14