aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Chat
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2020-09-01 00:38:46 +0200
committerShauren <shauren.trinity@gmail.com>2022-02-04 23:37:29 +0100
commitc4b287c7bfb2bb2dcb5efacf238e29413ebe77ec (patch)
tree5a12a24a3a9fbe17f9bac3e6d3ab9f60c8201598 /src/server/game/Chat
parentf7e1b5338de02649fd43dc9c952b8d4b5feb20aa (diff)
Core/Misc: DBC std::array refactors, and |Hachievement unit tests
(cherry picked from commit 3fbbe7cfbe1bc51db12bdc1ec7b21c16d1716366)
Diffstat (limited to 'src/server/game/Chat')
-rw-r--r--src/server/game/Chat/HyperlinkTags.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/server/game/Chat/HyperlinkTags.cpp b/src/server/game/Chat/HyperlinkTags.cpp
index b72dcfddb91..83c037d23cc 100644
--- a/src/server/game/Chat/HyperlinkTags.cpp
+++ b/src/server/game/Chat/HyperlinkTags.cpp
@@ -71,13 +71,17 @@ class HyperlinkDataTokenizer
bool Trinity::Hyperlinks::LinkTags::achievement::StoreTo(AchievementLinkData& val, std::string_view text)
{
HyperlinkDataTokenizer t(text);
+
uint32 achievementId;
if (!t.TryConsumeTo(achievementId))
return false;
val.Achievement = sAchievementStore.LookupEntry(achievementId);
- if (!(val.Achievement && t.TryConsumeTo(val.CharacterId) && t.TryConsumeTo(val.IsFinished) &&
- t.TryConsumeTo(val.Month) && t.TryConsumeTo(val.Day)))
+
+ if (!(val.Achievement && t.TryConsumeTo(val.CharacterId) && t.TryConsumeTo(val.IsFinished) && t.TryConsumeTo(val.Month) && t.TryConsumeTo(val.Day)))
return false;
+ if ((12 < val.Month) || (31 < val.Day))
+ return false;
+
int32 year;
if (!t.TryConsumeTo(year))
return false;
@@ -90,8 +94,7 @@ bool Trinity::Hyperlinks::LinkTags::achievement::StoreTo(AchievementLinkData& va
else
val.Year = 0;
- return (t.TryConsumeTo(val.Criteria[0]) &&
- t.TryConsumeTo(val.Criteria[1]) && t.TryConsumeTo(val.Criteria[2]) && t.TryConsumeTo(val.Criteria[3]) && t.IsEmpty());
+ return (t.TryConsumeTo(val.Criteria[0]) && t.TryConsumeTo(val.Criteria[1]) && t.TryConsumeTo(val.Criteria[2]) && t.TryConsumeTo(val.Criteria[3]) && t.IsEmpty());
}
bool Trinity::Hyperlinks::LinkTags::apower::StoreTo(ArtifactPowerLinkData& val, std::string_view text)