TrinityCore
Loading...
Searching...
No Matches
ConversationDataStore.h
Go to the documentation of this file.
1
/*
2
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3
*
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License as published by the
6
* Free Software Foundation; either version 2 of the License, or (at your
7
* option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
* more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#ifndef ConversationDataStore_h__
19
#define ConversationDataStore_h__
20
21
#include "
Define.h
"
22
#include "
EnumFlag.h
"
23
#include "
ObjectGuid.h
"
24
#include <variant>
25
#include <vector>
26
27
enum class
ConversationActorType
:
uint32
28
{
29
WorldObject
= 0,
30
TalkingHead
= 1
31
};
32
33
struct
ConversationActorWorldObjectTemplate
34
{
35
ObjectGuid::LowType
SpawnId
= 0;
36
};
37
38
struct
ConversationActorNoObjectTemplate
39
{
40
uint32
CreatureId
= 0;
41
uint32
CreatureDisplayInfoId
= 0;
42
};
43
44
struct
ConversationActorActivePlayerTemplate
45
{
46
};
47
48
struct
ConversationActorTalkingHeadTemplate
49
{
50
uint32
CreatureId
= 0;
51
uint32
CreatureDisplayInfoId
= 0;
52
};
53
54
struct
ConversationActorTemplate
55
{
56
int32
Id
= 0;
57
uint32
Index
= 0;
58
std::variant<
ConversationActorWorldObjectTemplate
,
59
ConversationActorNoObjectTemplate
,
60
ConversationActorActivePlayerTemplate
,
61
ConversationActorTalkingHeadTemplate
>
Data
;
62
};
63
64
enum
ConversationLineFlags
65
{
66
CONVERSATION_LINE_FLAG_NOTIFY_STARTED
= 0x1
// Client will send CMSG_CONVERSATION_LINE_STARTED when it runs this line
67
};
68
69
struct
ConversationLineTemplate
70
{
71
uint32
Id
;
// Link to ConversationLine.db2
72
uint32
UiCameraID
;
// Link to UiCamera.db2
73
uint8
ActorIdx
;
// Index from conversation_actors
74
uint8
Flags
;
75
uint8
ChatType
;
76
};
77
78
enum class
ConversationFlags
:
uint8
79
{
80
None
= 0x00,
81
MultipleConversationType
= 0x01,
// NYI purpose unknown
82
IsTalkingHeadConversation
= 0x02,
// implicitly implemented when conversation_actors.ActivePlayerObject == 0 && conversation_actors.NoActorObject == 0 && conversation_actors.ConversationActorGuid == 0
83
AllowWithoutSpawnedActor
= 0x04,
84
};
85
86
DEFINE_ENUM_FLAG
(
ConversationFlags
);
87
88
struct
ConversationTemplate
89
{
90
uint32
Id
;
91
uint32
FirstLineId
;
// Link to ConversationLine.db2
92
uint32
TextureKitId
;
// Background texture
93
EnumFlag<ConversationFlags>
Flags
=
ConversationFlags::None
;
94
95
std::vector<ConversationActorTemplate>
Actors
;
96
std::vector<ConversationLineTemplate const*>
Lines
;
97
98
uint32
ScriptId
;
99
};
100
101
class
TC_GAME_API
ConversationDataStore
102
{
103
public
:
104
void
LoadConversationTemplates();
105
106
ConversationTemplate
const
* GetConversationTemplate(
uint32
conversationId)
const
;
107
ConversationLineTemplate
const
* GetConversationLineTemplate(
uint32
conversationLineId)
const
;
108
109
static
ConversationDataStore
* Instance();
110
};
111
112
#define sConversationDataStore ConversationDataStore::Instance()
113
114
#endif
// ConversationDataStore_h__
ConversationActorType
ConversationActorType
Definition
ConversationDataStore.h:28
ConversationActorType::TalkingHead
@ TalkingHead
ConversationLineFlags
ConversationLineFlags
Definition
ConversationDataStore.h:65
CONVERSATION_LINE_FLAG_NOTIFY_STARTED
@ CONVERSATION_LINE_FLAG_NOTIFY_STARTED
Definition
ConversationDataStore.h:66
ConversationFlags
ConversationFlags
Definition
ConversationDataStore.h:79
ConversationFlags::IsTalkingHeadConversation
@ IsTalkingHeadConversation
ConversationFlags::None
@ None
ConversationFlags::MultipleConversationType
@ MultipleConversationType
ConversationFlags::AllowWithoutSpawnedActor
@ AllowWithoutSpawnedActor
Define.h
TC_GAME_API
#define TC_GAME_API
Definition
Define.h:129
uint8
uint8_t uint8
Definition
Define.h:156
int32
int32_t int32
Definition
Define.h:150
uint32
uint32_t uint32
Definition
Define.h:154
EnumFlag.h
DEFINE_ENUM_FLAG
#define DEFINE_ENUM_FLAG(enumType)
Definition
EnumFlag.h:26
ObjectGuid.h
CreatureId
CreatureId
Definition
boss_ramstein_the_gorger.cpp:37
ConversationDataStore
Definition
ConversationDataStore.h:102
EnumFlag
Definition
EnumFlag.h:66
ObjectGuid::LowType
uint64 LowType
Definition
ObjectGuid.h:321
WorldObject
Definition
Object.h:281
ConversationActorActivePlayerTemplate
Definition
ConversationDataStore.h:45
ConversationActorNoObjectTemplate
Definition
ConversationDataStore.h:39
ConversationActorNoObjectTemplate::CreatureDisplayInfoId
uint32 CreatureDisplayInfoId
Definition
ConversationDataStore.h:41
ConversationActorTalkingHeadTemplate
Definition
ConversationDataStore.h:49
ConversationActorTalkingHeadTemplate::CreatureDisplayInfoId
uint32 CreatureDisplayInfoId
Definition
ConversationDataStore.h:51
ConversationActorTemplate
Definition
ConversationDataStore.h:55
ConversationActorTemplate::Data
std::variant< ConversationActorWorldObjectTemplate, ConversationActorNoObjectTemplate, ConversationActorActivePlayerTemplate, ConversationActorTalkingHeadTemplate > Data
Definition
ConversationDataStore.h:61
ConversationActorTemplate::Index
uint32 Index
Definition
ConversationDataStore.h:57
ConversationActorTemplate::Id
int32 Id
Definition
ConversationDataStore.h:56
ConversationActorWorldObjectTemplate
Definition
ConversationDataStore.h:34
ConversationActorWorldObjectTemplate::SpawnId
ObjectGuid::LowType SpawnId
Definition
ConversationDataStore.h:35
ConversationLineTemplate
Definition
ConversationDataStore.h:70
ConversationLineTemplate::Flags
uint8 Flags
Definition
ConversationDataStore.h:74
ConversationLineTemplate::ActorIdx
uint8 ActorIdx
Definition
ConversationDataStore.h:73
ConversationLineTemplate::Id
uint32 Id
Definition
ConversationDataStore.h:71
ConversationLineTemplate::ChatType
uint8 ChatType
Definition
ConversationDataStore.h:75
ConversationLineTemplate::UiCameraID
uint32 UiCameraID
Definition
ConversationDataStore.h:72
ConversationTemplate
Definition
ConversationDataStore.h:89
ConversationTemplate::Flags
EnumFlag< ConversationFlags > Flags
Definition
ConversationDataStore.h:93
ConversationTemplate::Lines
std::vector< ConversationLineTemplate const * > Lines
Definition
ConversationDataStore.h:96
ConversationTemplate::ScriptId
uint32 ScriptId
Definition
ConversationDataStore.h:98
ConversationTemplate::FirstLineId
uint32 FirstLineId
Definition
ConversationDataStore.h:91
ConversationTemplate::Id
uint32 Id
Definition
ConversationDataStore.h:90
ConversationTemplate::Actors
std::vector< ConversationActorTemplate > Actors
Definition
ConversationDataStore.h:95
ConversationTemplate::TextureKitId
uint32 TextureKitId
Definition
ConversationDataStore.h:92
server
game
Globals
ConversationDataStore.h
Generated on Sun May 10 2026 02:08:59 for TrinityCore by
1.9.8