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
361{
362 std::decay_t<typename TAG::value_type> t;
363 if (!TAG::StoreTo(t, info.data))
364 return false;
365
366 int32 const severity = static_cast<int32>(sWorld->getIntConfig(CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY));
367 if (severity >= 0)
368 {
369 if (!LinkValidator<TAG>::IsColorValid(t, info.color))
370 return false;
371
372 if (severity >= 1)
373 {
374 if (!LinkValidator<TAG>::IsTextValid(t, info.text))
375 return false;
376 }
377 }
378 return true;
379}
std::int32_t int32
Definition Define.h:103
@ CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY
Definition WorldConfig.h:248
#define sWorld
Definition World.h:337
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
384{
385 using namespace LinkTags;
386 TryValidateAs(achievement);
387 TryValidateAs(area);
388 TryValidateAs(areatrigger);
389 TryValidateAs(creature);
390 TryValidateAs(creature_entry);
391 TryValidateAs(enchant);
392 TryValidateAs(found);
393 TryValidateAs(gameevent);
394 TryValidateAs(gameobject);
395 TryValidateAs(gameobject_entry);
396 TryValidateAs(glyph);
397 TryValidateAs(item);
398 TryValidateAs(itemset);
399 TryValidateAs(player);
400 TryValidateAs(quest);
401 TryValidateAs(skill);
402 TryValidateAs(spell);
403 TryValidateAs(talent);
404 TryValidateAs(taxinode);
405 TryValidateAs(tele);
406 TryValidateAs(title);
407 TryValidateAs(trade);
408 return false;
409}

References TryValidateAs.

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