AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Hyperlinks.cpp File Reference
#include "Hyperlinks.h"
#include "Common.h"
#include "DBCStores.h"
#include "ObjectMgr.h"
#include "QuestDef.h"
#include "SharedDefines.h"
#include "SpellInfo.h"
#include "SpellMgr.h"
#include "World.h"

Go to the source code of this file.

Classes

struct  LinkValidator< T >
 
struct  LinkValidator< LinkTags::achievement >
 
struct  LinkValidator< LinkTags::item >
 
struct  LinkValidator< LinkTags::quest >
 
struct  LinkValidator< LinkTags::spell >
 
struct  LinkValidator< LinkTags::enchant >
 
struct  LinkValidator< LinkTags::glyph >
 
struct  LinkValidator< LinkTags::talent >
 
struct  LinkValidator< LinkTags::trade >
 
struct  LinkValidator< LinkTags::found >
 

Macros

#define TryValidateAs(T)   do { if (info.tag == T::tag()) return ValidateAs<T>(info); } while (0);
 

Functions

uint8 toHex (char c)
 
template<typename TAG >
static bool ValidateAs (HyperlinkInfo const &info)
 
static bool ValidateLinkInfo (HyperlinkInfo const &info)
 

Macro Definition Documentation

◆ TryValidateAs

#define TryValidateAs (   T)    do { if (info.tag == T::tag()) return ValidateAs<T>(info); } while (0);

Function Documentation

◆ toHex()

uint8 toHex ( char  c)
inline
31{
32 if (c >= '0' && c <= '9')
33 return c - '0' + 0x10;
34
35 if (c >= 'a' && c <= 'f')
36 return c - 'a' + 0x1a;
37
38 if (c >= 'A' && c <= 'F')
39 return c - 'A' + 0x1a;
40
41 return 0x00;
42}

Referenced by Acore::Hyperlinks::ParseSingleHyperlink().

◆ ValidateAs()

template<typename TAG >
static bool ValidateAs ( HyperlinkInfo const &  info)
static
354{
355 std::decay_t<typename TAG::value_type> t;
356 if (!TAG::StoreTo(t, info.data))
357 return false;
358
359 int32 const severity = static_cast<int32>(sWorld->getIntConfig(CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY));
360 if (severity >= 0)
361 {
362 if (!LinkValidator<TAG>::IsColorValid(t, info.color))
363 return false;
364
365 if (severity >= 1)
366 {
367 if (!LinkValidator<TAG>::IsTextValid(t, info.text))
368 return false;
369 }
370 }
371 return true;
372}
std::int32_t int32
Definition Define.h:103
@ CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY
Definition WorldConfig.h:247
#define sWorld
Definition World.h:318
Definition Hyperlinks.cpp:118

References Acore::Hyperlinks::HyperlinkInfo::color, CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY, Acore::Hyperlinks::HyperlinkInfo::data, sWorld, and Acore::Hyperlinks::HyperlinkInfo::text.

◆ ValidateLinkInfo()

static bool ValidateLinkInfo ( HyperlinkInfo const &  info)
static
377{
378 using namespace LinkTags;
379 TryValidateAs(achievement);
380 TryValidateAs(area);
381 TryValidateAs(areatrigger);
382 TryValidateAs(creature);
383 TryValidateAs(creature_entry);
384 TryValidateAs(enchant);
385 TryValidateAs(found);
386 TryValidateAs(gameevent);
387 TryValidateAs(gameobject);
388 TryValidateAs(gameobject_entry);
389 TryValidateAs(glyph);
390 TryValidateAs(item);
391 TryValidateAs(itemset);
392 TryValidateAs(player);
393 TryValidateAs(quest);
394 TryValidateAs(skill);
395 TryValidateAs(spell);
396 TryValidateAs(talent);
397 TryValidateAs(taxinode);
398 TryValidateAs(tele);
399 TryValidateAs(title);
400 TryValidateAs(trade);
401 return false;
402}

References TryValidateAs.

Referenced by Acore::Hyperlinks::CheckAllLinks().