aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Chat/HyperlinkTags.cpp8
-rw-r--r--src/server/game/Chat/Hyperlinks.h7
2 files changed, 9 insertions, 6 deletions
diff --git a/src/server/game/Chat/HyperlinkTags.cpp b/src/server/game/Chat/HyperlinkTags.cpp
index 4fa14dc7b1b..a13a3348dd4 100644
--- a/src/server/game/Chat/HyperlinkTags.cpp
+++ b/src/server/game/Chat/HyperlinkTags.cpp
@@ -135,13 +135,9 @@ bool Trinity::Hyperlinks::LinkTags::trade::StoreTo(TradeskillLinkData& val, char
{
HyperlinkDataTokenizer t(pos, len);
uint32 spellId;
- uint64 guid;
if (!t.TryConsumeTo(spellId))
return false;
val.Spell = sSpellMgr->GetSpellInfo(spellId);
- if (!(val.Spell && val.Spell->Effects[0].Effect == SPELL_EFFECT_TRADE_SKILL && t.TryConsumeTo(val.CurValue) &&
- t.TryConsumeTo(val.MaxValue) && t.TryConsumeTo(guid) && t.TryConsumeTo(val.KnownRecipes) && t.IsEmpty()))
- return false;
- val.Owner.Set(guid);
- return true;
+ return (val.Spell && val.Spell->Effects[0].Effect == SPELL_EFFECT_TRADE_SKILL && t.TryConsumeTo(val.CurValue) &&
+ t.TryConsumeTo(val.MaxValue) && t.TryConsumeTo(val.Owner) && t.TryConsumeTo(val.KnownRecipes) && t.IsEmpty());
}
diff --git a/src/server/game/Chat/Hyperlinks.h b/src/server/game/Chat/Hyperlinks.h
index 6b5aa4b0d86..5808cbe9447 100644
--- a/src/server/game/Chat/Hyperlinks.h
+++ b/src/server/game/Chat/Hyperlinks.h
@@ -121,6 +121,13 @@ namespace LinkTags {
catch (...) { return false; }
return true;
}
+
+ static bool StoreTo(ObjectGuid& val, char const* pos, size_t len)
+ {
+ try { val.Set(std::stoul(std::string(pos, len), nullptr, 16)); }
+ catch (...) { return false; }
+ return true;
+ }
};
#define make_base_tag(ltag, type) struct ltag : public base_tag { using value_type = type; static constexpr char const* tag() { return #ltag; } }