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"

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 >
 

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
29{ return (c >= '0' && c <= '9') ? c - '0' + 0x10 : (c >= 'a' && c <= 'f') ? c - 'a' + 0x1a : 0x00; }

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

◆ ValidateAs()

template<typename TAG >
static bool ValidateAs ( HyperlinkInfo const &  info)
static
327{
328 std::decay_t<typename TAG::value_type> t;
329 if (!TAG::StoreTo(t, info.data))
330 return false;
331
332 int32 const severity = static_cast<int32>(sWorld->getIntConfig(CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY));
333 if (severity >= 0)
334 {
335 if (!LinkValidator<TAG>::IsColorValid(t, info.color))
336 return false;
337
338 if (severity >= 1)
339 {
340 if (!LinkValidator<TAG>::IsTextValid(t, info.text))
341 return false;
342 }
343 }
344 return true;
345}
std::int32_t int32
Definition: Define.h:104
@ CONFIG_CHAT_STRICT_LINK_CHECKING_SEVERITY
Definition: IWorld.h:289
#define sWorld
Definition: World.h:447
Definition: Hyperlinks.cpp:105

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
350{
351 using namespace LinkTags;
352 TryValidateAs(achievement);
353 TryValidateAs(area);
354 TryValidateAs(areatrigger);
355 TryValidateAs(creature);
356 TryValidateAs(creature_entry);
357 TryValidateAs(enchant);
358 TryValidateAs(gameevent);
359 TryValidateAs(gameobject);
360 TryValidateAs(gameobject_entry);
361 TryValidateAs(glyph);
362 TryValidateAs(item);
363 TryValidateAs(itemset);
364 TryValidateAs(player);
365 TryValidateAs(quest);
366 TryValidateAs(skill);
367 TryValidateAs(spell);
368 TryValidateAs(talent);
369 TryValidateAs(taxinode);
370 TryValidateAs(tele);
371 TryValidateAs(title);
372 TryValidateAs(trade);
373 return false;
374}
#define TryValidateAs(T)
Definition: Hyperlinks.cpp:347

References TryValidateAs.

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