aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Chat/Hyperlinks.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Chat/Hyperlinks.h')
-rw-r--r--src/server/game/Chat/Hyperlinks.h92
1 files changed, 91 insertions, 1 deletions
diff --git a/src/server/game/Chat/Hyperlinks.h b/src/server/game/Chat/Hyperlinks.h
index 35d7db3412f..8adb96187f9 100644
--- a/src/server/game/Chat/Hyperlinks.h
+++ b/src/server/game/Chat/Hyperlinks.h
@@ -27,7 +27,9 @@
struct AchievementEntry;
struct ArtifactPowerRankEntry;
struct AzeriteEssenceEntry;
+struct BattlePetAbilityEntry;
struct BattlePetSpeciesEntry;
+struct ChrSpecializationEntry;
struct CurrencyContainerEntry;
struct CurrencyTypesEntry;
struct GarrAbilityEntry;
@@ -65,6 +67,13 @@ namespace Trinity::Hyperlinks
std::array<uint32, 4> Criteria = { };
};
+ struct ApiLinkData
+ {
+ std::string_view Type;
+ std::string_view Name;
+ std::string_view Parent;
+ };
+
struct ArtifactPowerLinkData
{
ArtifactPowerRankEntry const* ArtifactPower = nullptr;
@@ -90,6 +99,14 @@ namespace Trinity::Hyperlinks
uint32 DisplayId = 0;
};
+ struct BattlePetAbilLinkData
+ {
+ BattlePetAbilityEntry const* Ability = nullptr;
+ uint32 MaxHealth = 0;
+ uint32 Power = 0;
+ uint32 Speed = 0;
+ };
+
struct CurrencyLinkData
{
CurrencyTypesEntry const* Currency = nullptr;
@@ -98,6 +115,28 @@ namespace Trinity::Hyperlinks
CurrencyContainerEntry const* Container = nullptr;
};
+ struct DungeonScoreLinkData
+ {
+ uint32 Score = 0;
+ ObjectGuid Player;
+ std::string_view PlayerName;
+ uint8 PlayerClass = 0;
+ uint32 AvgItemLevel = 0;
+ uint8 PlayerLevel = 0;
+ uint32 RunsThisSeason = 0;
+ uint32 BestSeasonScore = 0;
+ uint32 BestSeasonNumber = 0;
+
+ struct Dungeon
+ {
+ uint32 MapChallengeModeID = 0;
+ bool CompletedInTime = false;
+ uint32 KeystoneLevel = 0;
+ };
+
+ std::vector<Dungeon> Dungeons;
+ };
+
struct GarrisonFollowerLinkData
{
GarrFollowerEntry const* Follower = nullptr;
@@ -171,6 +210,13 @@ namespace Trinity::Hyperlinks
std::array<uint32, 4> Affix = { };
};
+ struct MountLinkData
+ {
+ SpellInfo const* Spell = nullptr;
+ uint32 DisplayId = 0;
+ std::string_view Customizations;
+ };
+
struct QuestLinkData
{
::Quest const* Quest = nullptr;
@@ -183,6 +229,13 @@ namespace Trinity::Hyperlinks
GlyphPropertiesEntry const* Glyph = nullptr;
};
+ struct TalentBuildLinkData
+ {
+ ChrSpecializationEntry const* Spec = nullptr;
+ uint32 Level = 0;
+ std::string_view ImportString;
+ };
+
struct TradeskillLinkData
{
ObjectGuid Owner;
@@ -268,7 +321,9 @@ namespace Trinity::Hyperlinks
make_base_tag(title, uint32);
// client format
- make_base_tag(outfit, std::string const&); // some sort of weird base91 derived encoding
+ make_base_tag(clubFinder, ObjectGuid);
+ make_base_tag(clubTicket, std::string_view);
+ make_base_tag(outfit, std::string_view); // some sort of weird base91 derived encoding
#undef make_base_tag
struct TC_GAME_API achievement
@@ -278,6 +333,13 @@ namespace Trinity::Hyperlinks
static bool StoreTo(AchievementLinkData& val, std::string_view text);
};
+ struct TC_GAME_API api
+ {
+ using value_type = ApiLinkData const&;
+ static constexpr std::string_view tag() { return "api"; }
+ static bool StoreTo(ApiLinkData& val, std::string_view text);
+ };
+
struct TC_GAME_API apower
{
using value_type = ArtifactPowerLinkData const&;
@@ -299,6 +361,13 @@ namespace Trinity::Hyperlinks
static bool StoreTo(BattlePetLinkData& val, std::string_view text);
};
+ struct TC_GAME_API battlePetAbil
+ {
+ using value_type = BattlePetAbilLinkData const&;
+ static constexpr std::string_view tag() { return "battlePetAbil"; }
+ static bool StoreTo(BattlePetAbilLinkData& val, std::string_view text);
+ };
+
struct TC_GAME_API conduit
{
using value_type = SoulbindConduitRankEntry const*;
@@ -313,6 +382,13 @@ namespace Trinity::Hyperlinks
static bool StoreTo(CurrencyLinkData& val, std::string_view text);
};
+ struct TC_GAME_API dungeonScore
+ {
+ using value_type = DungeonScoreLinkData const&;
+ static constexpr std::string_view tag() { return "dungeonScore"; }
+ static bool StoreTo(DungeonScoreLinkData& val, std::string_view text);
+ };
+
struct TC_GAME_API enchant
{
using value_type = SpellInfo const*;
@@ -376,6 +452,13 @@ namespace Trinity::Hyperlinks
static bool StoreTo(MawPowerEntry const*& val, std::string_view text);
};
+ struct TC_GAME_API mount
+ {
+ using value_type = MountLinkData const&;
+ static constexpr std::string_view tag() { return "mount"; }
+ static bool StoreTo(MountLinkData& val, std::string_view text);
+ };
+
struct TC_GAME_API pvptal
{
using value_type = PvpTalentEntry const*;
@@ -404,6 +487,13 @@ namespace Trinity::Hyperlinks
static bool StoreTo(TalentEntry const*& val, std::string_view text);
};
+ struct TC_GAME_API talentbuild
+ {
+ using value_type = TalentBuildLinkData const&;
+ static constexpr std::string_view tag() { return "talentbuild"; }
+ static bool StoreTo(TalentBuildLinkData& val, std::string_view text);
+ };
+
struct TC_GAME_API trade
{
using value_type = TradeskillLinkData const&;