CommonLibVR
Loading...
Searching...
No Matches
MenuTopicManager.h
Go to the documentation of this file.
1#pragma once
2
5#include "RE/B/BSString.h"
6#include "RE/B/BSTEvent.h"
7#include "RE/B/BSTList.h"
8#include "RE/B/BSTSingleton.h"
9
10#include "REX/W32/BASE.h"
11
12namespace RE
13{
14 class BGSDialogueBranch;
15 class DialogueResponse;
16 class MenuOpenCloseEvent;
17 class TESQuest;
18 class TESTopic;
19 class TESTopicInfo;
20 struct PositionPlayerEvent;
21
23 public BSTSingletonSDM<MenuTopicManager>, // 0x10
24 public BSTEventSink<MenuOpenCloseEvent>, // 0x00
25 public BSTEventSink<PositionPlayerEvent> // 0x08
26 {
27 public:
28 inline static constexpr auto RTTI = RTTI_MenuTopicManager;
29 inline static constexpr auto VTABLE = VTABLE_MenuTopicManager;
30
31 struct Dialogue
32 {
33 public:
34 // members
36 bool unk10; // 10
37 bool unk11; // 11
38 bool unk12; // 12 - data.topic->formID == 0xFD || data.topic->formID == 0x118
39 std::uint8_t unk13; // 13
40 std::uint32_t unk14; // 14
46 std::uint8_t unk48; // 48
47 bool neverSaid; // 49
48 std::uint16_t unk4A; // 4A
49 std::uint32_t unk4C; // 4C
51 };
52 static_assert(sizeof(Dialogue) == 0x58);
53
54 ~MenuTopicManager() override; // 00
55
56 // override (BSTEventSink<MenuOpenCloseEvent>)
58
59 // override (BSTEventSink<PositionPlayerEvent>)
61
63 {
64 static REL::Relocation<MenuTopicManager**> singleton{ RELOCATION_ID(514959, 401099) };
65 return *singleton;
66 }
67
68 // members
71 std::uint64_t unk28; // 28
76 ObjectRefHandle lastSpeaker; // 6C - used if the dialogue menu was closed but the NPC is still talking
77 TESTopicInfo* currentTopicInfo; // 70 - only valid when the NPC is talking
78 TESTopicInfo* lastTopicInfo; // 78 - used if the dialogue menu was closed but the NPC is still talking
81 bool isGreetingPlayer; // B0
82 bool unkB1; // B1
83 bool isSayingGoodbye; // B2
84 bool unkB3; // B3
85 bool unkB4; // B4
86 bool unkB5; // B5
87 bool unkB6; // B6
88 bool unkB7; // B7
89 bool unkB8; // B8
90 bool unkB9; // B9
91 bool unkBA; // BA
92 bool unkBB; // BB
93 std::uint16_t padBC; // BC
95 private:
97 };
98 static_assert(sizeof(MenuTopicManager) == 0xD8);
99}
#define KEEP_FOR_RE()
Definition PCH.h:517
#define RELOCATION_ID(SE, AE)
Definition PCH.h:506
Definition Relocation.h:210
Definition BSTList.h:10
Definition BSTArray.h:378
Definition BSTEvent.h:143
Definition BSTEvent.h:19
Definition MenuOpenCloseEvent.h:8
Definition MenuTopicManager.h:26
bool unkB5
Definition MenuTopicManager.h:86
bool unkB6
Definition MenuTopicManager.h:87
TESTopicInfo * rootTopicInfo
Definition MenuTopicManager.h:72
BSTArray< BGSDialogueBranch * > topLevelBranches
Definition MenuTopicManager.h:80
BSEventNotifyControl ProcessEvent(const MenuOpenCloseEvent *a_event, BSTEventSource< MenuOpenCloseEvent > *a_eventSource) override
static constexpr auto VTABLE
Definition MenuTopicManager.h:29
bool unkB8
Definition MenuTopicManager.h:89
std::uint16_t padBC
Definition MenuTopicManager.h:93
static MenuTopicManager * GetSingleton()
Definition MenuTopicManager.h:62
BSTArray< TESTopic * > unkC0
Definition MenuTopicManager.h:94
BSEventNotifyControl ProcessEvent(const PositionPlayerEvent *a_event, BSTEventSource< PositionPlayerEvent > *a_eventSource) override
REX::W32::CRITICAL_SECTION criticalSection
Definition MenuTopicManager.h:74
Dialogue * lastSelectedDialogue
Definition MenuTopicManager.h:73
bool unkB3
Definition MenuTopicManager.h:84
bool unkBB
Definition MenuTopicManager.h:92
BSTArray< BGSDialogueBranch * > blockingBranches
Definition MenuTopicManager.h:79
BSSimpleList< Dialogue * >::Node * selectedResponseNode
Definition MenuTopicManager.h:69
std::uint64_t unk28
Definition MenuTopicManager.h:71
bool isSayingGoodbye
Definition MenuTopicManager.h:83
bool unkBA
Definition MenuTopicManager.h:91
static constexpr auto RTTI
Definition MenuTopicManager.h:28
bool unkB4
Definition MenuTopicManager.h:85
TESTopicInfo * currentTopicInfo
Definition MenuTopicManager.h:77
ObjectRefHandle lastSpeaker
Definition MenuTopicManager.h:76
bool isGreetingPlayer
Definition MenuTopicManager.h:81
BSSimpleList< Dialogue * > * dialogueList
Definition MenuTopicManager.h:70
ObjectRefHandle speaker
Definition MenuTopicManager.h:75
~MenuTopicManager() override
bool unkB9
Definition MenuTopicManager.h:90
bool unkB1
Definition MenuTopicManager.h:82
TESTopicInfo * lastTopicInfo
Definition MenuTopicManager.h:78
bool unkB7
Definition MenuTopicManager.h:88
Definition TESQuest.h:197
Definition TESTopicInfo.h:42
Definition TESTopic.h:135
Definition AbsorbEffect.h:6
constexpr REL::ID RTTI_MenuTopicManager(static_cast< std::uint64_t >(686590))
constexpr std::array< REL::ID, 2 > VTABLE_MenuTopicManager
Definition Offsets_VTABLE.h:12004
BSEventNotifyControl
Definition BSTEvent.h:12
Definition BASE.h:138
Definition BSTList.h:18
Definition BSTSingleton.h:50
Definition MenuTopicManager.h:32
BSSimpleList< DialogueResponse * >::Node * currentResponse
Definition MenuTopicManager.h:45
TESTopic * unk50
Definition MenuTopicManager.h:50
std::uint8_t unk13
Definition MenuTopicManager.h:39
bool unk12
Definition MenuTopicManager.h:38
BSString topicText
Definition MenuTopicManager.h:35
bool neverSaid
Definition MenuTopicManager.h:47
TESTopic * parentTopic
Definition MenuTopicManager.h:44
bool unk11
Definition MenuTopicManager.h:37
std::uint32_t unk4C
Definition MenuTopicManager.h:49
std::uint32_t unk14
Definition MenuTopicManager.h:40
bool unk10
Definition MenuTopicManager.h:36
std::uint16_t unk4A
Definition MenuTopicManager.h:48
BSSimpleList< DialogueResponse * > responses
Definition MenuTopicManager.h:41
TESTopicInfo * parentTopicInfo
Definition MenuTopicManager.h:43
TESQuest * parentQuest
Definition MenuTopicManager.h:42
std::uint8_t unk48
Definition MenuTopicManager.h:46
Definition PositionPlayerEvent.h:7