Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
ChatLink.h
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#ifndef SKYFIRESERVER_CHATLINK_H
7
#define SKYFIRESERVER_CHATLINK_H
8
9
#include "
SharedDefines.h
"
10
#include <list>
11
#include <sstream>
12
13
struct
ItemLocale
;
14
struct
ItemTemplate
;
15
struct
ItemRandomSuffixEntry
;
16
struct
ItemRandomPropertiesEntry
;
17
class
SpellInfo
;
18
struct
AchievementEntry
;
19
struct
GlyphPropertiesEntry
;
20
class
Quest
;
21
23
// ChatLink - abstract base class for various links
24
class
ChatLink
25
{
26
public
:
27
ChatLink
() :
_color
(0),
_startPos
(0),
_endPos
(0) { }
28
virtual
~ChatLink
() { }
29
void
SetColor
(
uint32
color) {
_color
= color; }
30
// This will allow to extract the whole link string from the message, if necessary.
31
void
SetBounds
(std::istringstream::pos_type startPos, std::istringstream::pos_type endPos) {
_startPos
= startPos;
_endPos
= endPos; }
32
33
virtual
bool
Initialize
(std::istringstream& iss) = 0;
34
virtual
bool
ValidateName
(
char
* buffer,
const
char
* context) = 0;
35
36
protected
:
37
uint32
_color
;
38
std::string
_name
;
39
std::istringstream::pos_type
_startPos
;
40
std::istringstream::pos_type
_endPos
;
41
};
42
43
// ItemChatLink - link to item
44
class
ItemChatLink
:
public
ChatLink
45
{
46
public
:
47
ItemChatLink
() :
ChatLink
(),
_item
(NULL),
_suffix
(NULL),
_property
(NULL) { memset(
_data
, 0,
sizeof
(
_data
)); }
48
virtual
bool
Initialize
(std::istringstream& iss);
49
virtual
bool
ValidateName
(
char
* buffer,
const
char
* context);
50
51
protected
:
52
std::string
FormatName
(
uint8
index,
ItemLocale
const
* locale,
char
* suffixStrings)
const
;
53
54
ItemTemplate
const
*
_item
;
55
int32
_data
[8];
56
ItemRandomSuffixEntry
const
*
_suffix
;
57
ItemRandomPropertiesEntry
const
*
_property
;
58
};
59
60
// QuestChatLink - link to quest
61
class
QuestChatLink
:
public
ChatLink
62
{
63
public
:
64
QuestChatLink
() :
ChatLink
(),
_quest
(NULL),
_questLevel
(0) { }
65
virtual
bool
Initialize
(std::istringstream& iss);
66
virtual
bool
ValidateName
(
char
* buffer,
const
char
* context);
67
68
protected
:
69
Quest
const
*
_quest
;
70
int32
_questLevel
;
71
};
72
73
// SpellChatLink - link to quest
74
class
SpellChatLink
:
public
ChatLink
75
{
76
public
:
77
SpellChatLink
() :
ChatLink
(),
_spell
(NULL) { }
78
virtual
bool
Initialize
(std::istringstream& iss);
79
virtual
bool
ValidateName
(
char
* buffer,
const
char
* context);
80
81
protected
:
82
SpellInfo
const
*
_spell
;
83
};
84
85
// AchievementChatLink - link to quest
86
class
AchievementChatLink
:
public
ChatLink
87
{
88
public
:
89
AchievementChatLink
() :
ChatLink
(),
_guid
(0),
_achievement
(NULL) { memset(
_data
, 0,
sizeof
(
_data
)); }
90
virtual
bool
Initialize
(std::istringstream& iss);
91
virtual
bool
ValidateName
(
char
* buffer,
const
char
* context);
92
93
protected
:
94
uint32
_guid
;
95
AchievementEntry
const
*
_achievement
;
96
uint32
_data
[8];
97
};
98
99
// TradeChatLink - link to trade info
100
class
TradeChatLink
:
public
SpellChatLink
101
{
102
public
:
103
TradeChatLink
() :
SpellChatLink
(),
_minSkillLevel
(0),
_maxSkillLevel
(0),
_guid
(0) { }
104
virtual
bool
Initialize
(std::istringstream& iss);
105
private
:
106
int32
_minSkillLevel
;
107
int32
_maxSkillLevel
;
108
uint32
_guid
;
109
std::string
_base64
;
110
};
111
112
// TalentChatLink - link to talent
113
class
TalentChatLink
:
public
SpellChatLink
114
{
115
public
:
116
TalentChatLink
() :
SpellChatLink
(),
_talentId
(0),
_rankId
(0) { }
117
virtual
bool
Initialize
(std::istringstream& iss);
118
119
private
:
120
uint32
_talentId
;
121
int32
_rankId
;
122
};
123
124
// EnchantmentChatLink - link to enchantment
125
class
EnchantmentChatLink
:
public
SpellChatLink
126
{
127
public
:
128
EnchantmentChatLink
() :
SpellChatLink
() { }
129
virtual
bool
Initialize
(std::istringstream& iss);
130
};
131
132
// GlyphChatLink - link to glyph
133
class
GlyphChatLink
:
public
SpellChatLink
134
{
135
public
:
136
GlyphChatLink
() :
SpellChatLink
(),
_slotId
(0),
_glyph
(NULL) { }
137
virtual
bool
Initialize
(std::istringstream& iss);
138
private
:
139
uint32
_slotId
;
140
GlyphPropertiesEntry
const
*
_glyph
;
141
};
142
143
class
LinkExtractor
144
{
145
public
:
146
explicit
LinkExtractor
(
const
char
* msg);
147
~LinkExtractor
();
148
149
bool
IsValidMessage
();
150
151
private
:
152
typedef
std::list<ChatLink*>
Links
;
153
Links
_links
;
154
std::istringstream
_iss
;
155
};
156
157
158
#endif
// SKYFIRESERVER_CHATLINK_H
int32
std::int32_t int32
Definition
Define.h:73
uint8
std::uint8_t uint8
Definition
Define.h:79
uint32
std::uint32_t uint32
Definition
Define.h:77
SharedDefines.h
AchievementChatLink::_data
uint32 _data[8]
Definition
ChatLink.h:96
AchievementChatLink::_achievement
AchievementEntry const * _achievement
Definition
ChatLink.h:95
AchievementChatLink::Initialize
virtual bool Initialize(std::istringstream &iss)
Definition
ChatLink.cpp:316
AchievementChatLink::AchievementChatLink
AchievementChatLink()
Definition
ChatLink.h:89
AchievementChatLink::ValidateName
virtual bool ValidateName(char *buffer, const char *context)
Definition
ChatLink.cpp:359
AchievementChatLink::_guid
uint32 _guid
Definition
ChatLink.h:94
ChatLink::SetBounds
void SetBounds(std::istringstream::pos_type startPos, std::istringstream::pos_type endPos)
Definition
ChatLink.h:31
ChatLink::_name
std::string _name
Definition
ChatLink.h:38
ChatLink::_startPos
std::istringstream::pos_type _startPos
Definition
ChatLink.h:39
ChatLink::SetColor
void SetColor(uint32 color)
Definition
ChatLink.h:29
ChatLink::ChatLink
ChatLink()
Definition
ChatLink.h:27
ChatLink::~ChatLink
virtual ~ChatLink()
Definition
ChatLink.h:28
ChatLink::_color
uint32 _color
Definition
ChatLink.h:37
ChatLink::_endPos
std::istringstream::pos_type _endPos
Definition
ChatLink.h:40
ChatLink::Initialize
virtual bool Initialize(std::istringstream &iss)=0
ChatLink::ValidateName
virtual bool ValidateName(char *buffer, const char *context)=0
Definition
ChatLink.cpp:87
EnchantmentChatLink::Initialize
virtual bool Initialize(std::istringstream &iss)
Definition
ChatLink.cpp:462
EnchantmentChatLink::EnchantmentChatLink
EnchantmentChatLink()
Definition
ChatLink.h:128
GlyphChatLink::_glyph
GlyphPropertiesEntry const * _glyph
Definition
ChatLink.h:140
GlyphChatLink::Initialize
virtual bool Initialize(std::istringstream &iss)
Definition
ChatLink.cpp:485
GlyphChatLink::_slotId
uint32 _slotId
Definition
ChatLink.h:139
GlyphChatLink::GlyphChatLink
GlyphChatLink()
Definition
ChatLink.h:136
ItemChatLink::_item
ItemTemplate const * _item
Definition
ChatLink.h:54
ItemChatLink::_property
ItemRandomPropertiesEntry const * _property
Definition
ChatLink.h:57
ItemChatLink::ValidateName
virtual bool ValidateName(char *buffer, const char *context)
Definition
ChatLink.cpp:170
ItemChatLink::_data
int32 _data[8]
Definition
ChatLink.h:55
ItemChatLink::Initialize
virtual bool Initialize(std::istringstream &iss)
Definition
ChatLink.cpp:95
ItemChatLink::FormatName
std::string FormatName(uint8 index, ItemLocale const *locale, char *suffixStrings) const
Definition
ChatLink.cpp:158
ItemChatLink::_suffix
ItemRandomSuffixEntry const * _suffix
Definition
ChatLink.h:56
ItemChatLink::ItemChatLink
ItemChatLink()
Definition
ChatLink.h:47
LinkExtractor::IsValidMessage
bool IsValidMessage()
Definition
ChatLink.cpp:531
LinkExtractor::_links
Links _links
Definition
ChatLink.h:153
LinkExtractor::_iss
std::istringstream _iss
Definition
ChatLink.h:154
LinkExtractor::~LinkExtractor
~LinkExtractor()
Definition
ChatLink.cpp:524
LinkExtractor::Links
std::list< ChatLink * > Links
Definition
ChatLink.h:152
LinkExtractor::LinkExtractor
LinkExtractor(const char *msg)
Definition
ChatLink.cpp:522
QuestChatLink::_quest
Quest const * _quest
Definition
ChatLink.h:69
QuestChatLink::Initialize
virtual bool Initialize(std::istringstream &iss)
Definition
ChatLink.cpp:196
QuestChatLink::QuestChatLink
QuestChatLink()
Definition
ChatLink.h:64
QuestChatLink::_questLevel
int32 _questLevel
Definition
ChatLink.h:70
QuestChatLink::ValidateName
virtual bool ValidateName(char *buffer, const char *context)
Definition
ChatLink.cpp:230
Quest
Definition
QuestDef.h:255
SpellChatLink::Initialize
virtual bool Initialize(std::istringstream &iss)
Definition
ChatLink.cpp:250
SpellChatLink::_spell
SpellInfo const * _spell
Definition
ChatLink.h:82
SpellChatLink::ValidateName
virtual bool ValidateName(char *buffer, const char *context)
Definition
ChatLink.cpp:271
SpellChatLink::SpellChatLink
SpellChatLink()
Definition
ChatLink.h:77
SpellInfo
Definition
SpellInfo.h:158
TalentChatLink::_talentId
uint32 _talentId
Definition
ChatLink.h:120
TalentChatLink::_rankId
int32 _rankId
Definition
ChatLink.h:121
TalentChatLink::Initialize
virtual bool Initialize(std::istringstream &iss)
Definition
ChatLink.cpp:424
TalentChatLink::TalentChatLink
TalentChatLink()
Definition
ChatLink.h:116
TradeChatLink::_guid
uint32 _guid
Definition
ChatLink.h:108
TradeChatLink::TradeChatLink
TradeChatLink()
Definition
ChatLink.h:103
TradeChatLink::_base64
std::string _base64
Definition
ChatLink.h:109
TradeChatLink::_maxSkillLevel
int32 _maxSkillLevel
Definition
ChatLink.h:107
TradeChatLink::_minSkillLevel
int32 _minSkillLevel
Definition
ChatLink.h:106
TradeChatLink::Initialize
virtual bool Initialize(std::istringstream &iss)
Definition
ChatLink.cpp:372
AchievementEntry
Definition
DBCStructure.h:30
GlyphPropertiesEntry
Definition
DBCStructure.h:1569
ItemLocale
Definition
ItemPrototype.h:850
ItemRandomPropertiesEntry
Definition
DBCStructure.h:1852
ItemRandomSuffixEntry
Definition
DBCStructure.h:1861
ItemTemplate
Definition
ItemPrototype.h:628
src
server
game
Chat
ChatLink.h
Generated on
for Project SkyFire Core by
1.17.0