diff options
Diffstat (limited to 'src/server/game/Chat/Hyperlinks.h')
-rw-r--r-- | src/server/game/Chat/Hyperlinks.h | 92 |
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&; |