AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
ObjectMgr.cpp File Reference
#include "ObjectMgr.h"
#include "AchievementMgr.h"
#include "ArenaTeamMgr.h"
#include "CharacterCache.h"
#include "Chat.h"
#include "Common.h"
#include "Config.h"
#include "Containers.h"
#include "CreatureAIFactory.h"
#include "DBCStructure.h"
#include "DatabaseEnv.h"
#include "DisableMgr.h"
#include "GameEventMgr.h"
#include "GameObjectAIFactory.h"
#include "GameTime.h"
#include "GossipDef.h"
#include "GroupMgr.h"
#include "GuildMgr.h"
#include "LFGMgr.h"
#include "Log.h"
#include "MapMgr.h"
#include "Pet.h"
#include "PoolMgr.h"
#include "RaceMgr.h"
#include "ReputationMgr.h"
#include "ScriptMgr.h"
#include "Spell.h"
#include "SpellMgr.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "StringConvert.h"
#include "Tokenize.h"
#include "Transport.h"
#include "Unit.h"
#include "Util.h"
#include "Vehicle.h"
#include "World.h"
#include <boost/algorithm/string.hpp>
#include <numeric>
#include "ItemEnchantmentMgr.h"

Go to the source code of this file.

Enumerations

enum  LanguageType {
  LT_BASIC_LATIN = 0x0000 ,
  LT_EXTENDEN_LATIN = 0x0001 ,
  LT_CYRILLIC = 0x0002 ,
  LT_EAST_ASIA = 0x0004 ,
  LT_ANY = 0xFFFF
}
 

Functions

std::string GetScriptsTableNameByType (ScriptsType type)
 
ScriptMapMapGetScriptsMapByType (ScriptsType type)
 
std::string GetScriptCommandName (ScriptCommands command)
 
bool normalizePlayerName (std::string &name)
 
LanguageDesc const * GetLanguageDescByID (uint32 lang)
 
void CheckGOLockId (GameObjectTemplate const *goInfo, uint32 dataN, uint32 N)
 
void CheckGOLinkedTrapId (GameObjectTemplate const *goInfo, uint32 dataN, uint32 N)
 
void CheckGOSpellId (GameObjectTemplate const *goInfo, uint32 dataN, uint32 N)
 
void CheckAndFixGOChairHeightId (GameObjectTemplate const *goInfo, uint32 const &dataN, uint32 N)
 
void CheckGONoDamageImmuneId (GameObjectTemplate *goTemplate, uint32 dataN, uint32 N)
 
void CheckGOConsumable (GameObjectTemplate const *goInfo, uint32 dataN, uint32 N)
 
static LanguageType GetRealmLanguageType (bool create)
 
bool isValidString (std::wstring wstr, uint32 strictMask, bool numericOrSpace, bool create=false)
 
SkillRangeType GetSkillRangeType (SkillRaceClassInfoEntry const *rcEntry)
 

Variables

ScriptMapMap sSpellScripts
 
ScriptMapMap sEventScripts
 
ScriptMapMap sWaypointScripts
 
LanguageDesc lang_description [LANGUAGES_COUNT]
 
ServerConfigs const qualityToBuyValueConfig [MAX_ITEM_QUALITY]
 
ServerConfigs const qualityToSellValueConfig [MAX_ITEM_QUALITY]
 

Enumeration Type Documentation

◆ LanguageType

Enumerator
LT_BASIC_LATIN 
LT_EXTENDEN_LATIN 
LT_CYRILLIC 
LT_EAST_ASIA 
LT_ANY 
9330{
9331 LT_BASIC_LATIN = 0x0000,
9332 LT_EXTENDEN_LATIN = 0x0001,
9333 LT_CYRILLIC = 0x0002,
9334 LT_EAST_ASIA = 0x0004,
9335 LT_ANY = 0xFFFF
9336};
@ LT_ANY
Definition ObjectMgr.cpp:9335
@ LT_EXTENDEN_LATIN
Definition ObjectMgr.cpp:9332
@ LT_EAST_ASIA
Definition ObjectMgr.cpp:9334
@ LT_BASIC_LATIN
Definition ObjectMgr.cpp:9331
@ LT_CYRILLIC
Definition ObjectMgr.cpp:9333

Function Documentation

◆ CheckAndFixGOChairHeightId()

void CheckAndFixGOChairHeightId ( GameObjectTemplate const *  goInfo,
uint32 const &  dataN,
uint32  N 
)
inline
7856{
7858 return;
7859
7860 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but correct chair height in range 0..{}.",
7861 goInfo->entry, goInfo->type, N, dataN, UNIT_STAND_STATE_SIT_HIGH_CHAIR - UNIT_STAND_STATE_SIT_LOW_CHAIR);
7862
7863 // prevent client and server unexpected work
7864 const_cast<uint32&>(dataN) = 0;
7865}
std::uint32_t uint32
Definition Define.h:107
#define LOG_ERROR(filterType__,...)
Definition Log.h:145
@ UNIT_STAND_STATE_SIT_HIGH_CHAIR
Definition UnitDefines.h:41
@ UNIT_STAND_STATE_SIT_LOW_CHAIR
Definition UnitDefines.h:39

References GameObjectTemplate::entry, LOG_ERROR, GameObjectTemplate::type, UNIT_STAND_STATE_SIT_HIGH_CHAIR, and UNIT_STAND_STATE_SIT_LOW_CHAIR.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ CheckGOConsumable()

void CheckGOConsumable ( GameObjectTemplate const *  goInfo,
uint32  dataN,
uint32  N 
)
inline
7877{
7878 // 0/1 correct values
7879 if (dataN <= 1)
7880 return;
7881
7882 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but expected boolean (0/1) consumable field value.",
7883 goInfo->entry, goInfo->type, N, dataN);
7884}

References GameObjectTemplate::entry, LOG_ERROR, and GameObjectTemplate::type.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ CheckGOLinkedTrapId()

void CheckGOLinkedTrapId ( GameObjectTemplate const *  goInfo,
uint32  dataN,
uint32  N 
)
inline
7837{
7838 if (GameObjectTemplate const* trapInfo = sObjectMgr->GetGameObjectTemplate(dataN))
7839 {
7840 if (trapInfo->type != GAMEOBJECT_TYPE_TRAP)
7841 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but GO (Entry {}) have not GAMEOBJECT_TYPE_TRAP ({}) type.",
7842 goInfo->entry, goInfo->type, N, dataN, dataN, GAMEOBJECT_TYPE_TRAP);
7843 }
7844}
#define sObjectMgr
Definition ObjectMgr.h:1732
@ GAMEOBJECT_TYPE_TRAP
Definition SharedDefines.h:1570
Definition GameObjectData.h:32

References GameObjectTemplate::entry, GAMEOBJECT_TYPE_TRAP, LOG_ERROR, sObjectMgr, and GameObjectTemplate::type.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ CheckGOLockId()

void CheckGOLockId ( GameObjectTemplate const *  goInfo,
uint32  dataN,
uint32  N 
)
inline
7828{
7829 if (sLockStore.LookupEntry(dataN))
7830 return;
7831
7832 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but lock (Id: {}) not found.",
7833 goInfo->entry, goInfo->type, N, goInfo->door.lockId, goInfo->door.lockId);
7834}
DBCStorage< LockEntry > sLockStore(LockEntryfmt)

References GameObjectTemplate::door, GameObjectTemplate::entry, GameObjectTemplate::lockId, LOG_ERROR, sLockStore, and GameObjectTemplate::type.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ CheckGONoDamageImmuneId()

void CheckGONoDamageImmuneId ( GameObjectTemplate goTemplate,
uint32  dataN,
uint32  N 
)
inline
7868{
7869 // 0/1 correct values
7870 if (dataN <= 1)
7871 return;
7872
7873 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but expected boolean (0/1) noDamageImmune field value.", goTemplate->entry, goTemplate->type, N, dataN);
7874}
uint32 type
Definition GameObjectData.h:34
uint32 entry
Definition GameObjectData.h:33

References GameObjectTemplate::entry, LOG_ERROR, and GameObjectTemplate::type.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ CheckGOSpellId()

void CheckGOSpellId ( GameObjectTemplate const *  goInfo,
uint32  dataN,
uint32  N 
)
inline
7847{
7848 if (sSpellMgr->GetSpellInfo(dataN))
7849 return;
7850
7851 LOG_ERROR("sql.sql", "Gameobject (Entry: {} GoType: {}) have data{}={} but Spell (Entry {}) not exist.",
7852 goInfo->entry, goInfo->type, N, dataN, dataN);
7853}
#define sSpellMgr
Definition SpellMgr.h:847

References GameObjectTemplate::entry, LOG_ERROR, sSpellMgr, and GameObjectTemplate::type.

Referenced by ObjectMgr::LoadGameObjectTemplate().

◆ GetLanguageDescByID()

LanguageDesc const * GetLanguageDescByID ( uint32  lang)
255{
256 for (uint8 i = 0; i < LANGUAGES_COUNT; ++i)
257 {
258 if (uint32(lang_description[i].lang_id) == lang)
259 return &lang_description[i];
260 }
261
262 return nullptr;
263}
std::uint8_t uint8
Definition Define.h:109
LanguageDesc lang_description[LANGUAGES_COUNT]
Definition ObjectMgr.cpp:231
#define LANGUAGES_COUNT
Definition SharedDefines.h:744

References lang_description, and LANGUAGES_COUNT.

Referenced by WorldSession::HandleMessagechatOpcode(), ObjectMgr::LoadBroadcastTexts(), and CreatureTextMgr::LoadCreatureTexts().

◆ GetRealmLanguageType()

static LanguageType GetRealmLanguageType ( bool  create)
static
9339{
9340 switch (sWorld->getIntConfig(CONFIG_REALM_ZONE))
9341 {
9342 case REALM_ZONE_UNKNOWN: // any language
9346 return LT_ANY;
9347 case REALM_ZONE_UNITED_STATES: // extended-Latin
9348 case REALM_ZONE_OCEANIC:
9350 case REALM_ZONE_ENGLISH:
9351 case REALM_ZONE_GERMAN:
9352 case REALM_ZONE_FRENCH:
9353 case REALM_ZONE_SPANISH:
9354 return LT_EXTENDEN_LATIN;
9355 case REALM_ZONE_KOREA: // East-Asian
9356 case REALM_ZONE_TAIWAN:
9357 case REALM_ZONE_CHINA:
9358 return LT_EAST_ASIA;
9359 case REALM_ZONE_RUSSIAN: // Cyrillic
9360 return LT_CYRILLIC;
9361 default:
9362 return create ? LT_BASIC_LATIN : LT_ANY; // basic-Latin at create, any at login
9363 }
9364}
@ CONFIG_REALM_ZONE
Definition WorldConfig.h:176
#define sWorld
Definition World.h:317
@ REALM_ZONE_TEST_SERVER
Definition World.h:114
@ REALM_ZONE_LATIN_AMERICA
Definition World.h:92
@ REALM_ZONE_SPANISH
Definition World.h:99
@ REALM_ZONE_OCEANIC
Definition World.h:91
@ REALM_ZONE_KOREA
Definition World.h:94
@ REALM_ZONE_UNKNOWN
Definition World.h:88
@ REALM_ZONE_UNITED_STATES
Definition World.h:90
@ REALM_ZONE_ENGLISH
Definition World.h:96
@ REALM_ZONE_FRENCH
Definition World.h:98
@ REALM_ZONE_QA_SERVER
Definition World.h:116
@ REALM_ZONE_CHINA
Definition World.h:104
@ REALM_ZONE_RUSSIAN
Definition World.h:100
@ REALM_ZONE_DEVELOPMENT
Definition World.h:89
@ REALM_ZONE_TAIWAN
Definition World.h:102
@ REALM_ZONE_GERMAN
Definition World.h:97

References CONFIG_REALM_ZONE, LT_ANY, LT_BASIC_LATIN, LT_CYRILLIC, LT_EAST_ASIA, LT_EXTENDEN_LATIN, REALM_ZONE_CHINA, REALM_ZONE_DEVELOPMENT, REALM_ZONE_ENGLISH, REALM_ZONE_FRENCH, REALM_ZONE_GERMAN, REALM_ZONE_KOREA, REALM_ZONE_LATIN_AMERICA, REALM_ZONE_OCEANIC, REALM_ZONE_QA_SERVER, REALM_ZONE_RUSSIAN, REALM_ZONE_SPANISH, REALM_ZONE_TAIWAN, REALM_ZONE_TEST_SERVER, REALM_ZONE_UNITED_STATES, REALM_ZONE_UNKNOWN, and sWorld.

Referenced by isValidString().

◆ GetScriptCommandName()

std::string GetScriptCommandName ( ScriptCommands  command)
105{
106 std::string res = "";
107 switch (command)
108 {
110 res = "SCRIPT_COMMAND_TALK";
111 break;
113 res = "SCRIPT_COMMAND_EMOTE";
114 break;
116 res = "SCRIPT_COMMAND_FIELD_SET";
117 break;
119 res = "SCRIPT_COMMAND_MOVE_TO";
120 break;
122 res = "SCRIPT_COMMAND_FLAG_SET";
123 break;
125 res = "SCRIPT_COMMAND_FLAG_REMOVE";
126 break;
128 res = "SCRIPT_COMMAND_TELEPORT_TO";
129 break;
131 res = "SCRIPT_COMMAND_QUEST_EXPLORED";
132 break;
134 res = "SCRIPT_COMMAND_KILL_CREDIT";
135 break;
137 res = "SCRIPT_COMMAND_RESPAWN_GAMEOBJECT";
138 break;
140 res = "SCRIPT_COMMAND_TEMP_SUMMON_CREATURE";
141 break;
143 res = "SCRIPT_COMMAND_OPEN_DOOR";
144 break;
146 res = "SCRIPT_COMMAND_CLOSE_DOOR";
147 break;
149 res = "SCRIPT_COMMAND_ACTIVATE_OBJECT";
150 break;
152 res = "SCRIPT_COMMAND_REMOVE_AURA";
153 break;
155 res = "SCRIPT_COMMAND_CAST_SPELL";
156 break;
158 res = "SCRIPT_COMMAND_PLAY_SOUND";
159 break;
161 res = "SCRIPT_COMMAND_CREATE_ITEM";
162 break;
164 res = "SCRIPT_COMMAND_DESPAWN_SELF";
165 break;
167 res = "SCRIPT_COMMAND_LOAD_PATH";
168 break;
170 res = "SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT";
171 break;
173 res = "SCRIPT_COMMAND_KILL";
174 break;
175 // AzerothCore only
177 res = "SCRIPT_COMMAND_ORIENTATION";
178 break;
180 res = "SCRIPT_COMMAND_EQUIP";
181 break;
183 res = "SCRIPT_COMMAND_MODEL";
184 break;
186 res = "SCRIPT_COMMAND_CLOSE_GOSSIP";
187 break;
189 res = "SCRIPT_COMMAND_PLAYMOVIE";
190 break;
191 default:
192 {
193 char sz[32];
194 snprintf(sz, sizeof(sz), "Unknown command: %d", command);
195 res = sz;
196 break;
197 }
198 }
199 return res;
200}
@ SCRIPT_COMMAND_EMOTE
Definition ObjectMgr.h:96
@ SCRIPT_COMMAND_CREATE_ITEM
Definition ObjectMgr.h:112
@ SCRIPT_COMMAND_DESPAWN_SELF
Definition ObjectMgr.h:113
@ SCRIPT_COMMAND_CLOSE_DOOR
Definition ObjectMgr.h:107
@ SCRIPT_COMMAND_CAST_SPELL
Definition ObjectMgr.h:110
@ SCRIPT_COMMAND_RESPAWN_GAMEOBJECT
Definition ObjectMgr.h:104
@ SCRIPT_COMMAND_QUEST_EXPLORED
Definition ObjectMgr.h:102
@ SCRIPT_COMMAND_ACTIVATE_OBJECT
Definition ObjectMgr.h:108
@ SCRIPT_COMMAND_TALK
Definition ObjectMgr.h:95
@ SCRIPT_COMMAND_OPEN_DOOR
Definition ObjectMgr.h:106
@ SCRIPT_COMMAND_EQUIP
Definition ObjectMgr.h:121
@ SCRIPT_COMMAND_FIELD_SET
Definition ObjectMgr.h:97
@ SCRIPT_COMMAND_PLAYMOVIE
Definition ObjectMgr.h:124
@ SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT
Definition ObjectMgr.h:116
@ SCRIPT_COMMAND_TELEPORT_TO
Definition ObjectMgr.h:101
@ SCRIPT_COMMAND_MOVE_TO
Definition ObjectMgr.h:98
@ SCRIPT_COMMAND_FLAG_SET
Definition ObjectMgr.h:99
@ SCRIPT_COMMAND_TEMP_SUMMON_CREATURE
Definition ObjectMgr.h:105
@ SCRIPT_COMMAND_KILL_CREDIT
Definition ObjectMgr.h:103
@ SCRIPT_COMMAND_KILL
Definition ObjectMgr.h:117
@ SCRIPT_COMMAND_LOAD_PATH
Definition ObjectMgr.h:115
@ SCRIPT_COMMAND_ORIENTATION
Definition ObjectMgr.h:120
@ SCRIPT_COMMAND_PLAY_SOUND
Definition ObjectMgr.h:111
@ SCRIPT_COMMAND_MODEL
Definition ObjectMgr.h:122
@ SCRIPT_COMMAND_CLOSE_GOSSIP
Definition ObjectMgr.h:123
@ SCRIPT_COMMAND_REMOVE_AURA
Definition ObjectMgr.h:109
@ SCRIPT_COMMAND_FLAG_REMOVE
Definition ObjectMgr.h:100

References SCRIPT_COMMAND_ACTIVATE_OBJECT, SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT, SCRIPT_COMMAND_CAST_SPELL, SCRIPT_COMMAND_CLOSE_DOOR, SCRIPT_COMMAND_CLOSE_GOSSIP, SCRIPT_COMMAND_CREATE_ITEM, SCRIPT_COMMAND_DESPAWN_SELF, SCRIPT_COMMAND_EMOTE, SCRIPT_COMMAND_EQUIP, SCRIPT_COMMAND_FIELD_SET, SCRIPT_COMMAND_FLAG_REMOVE, SCRIPT_COMMAND_FLAG_SET, SCRIPT_COMMAND_KILL, SCRIPT_COMMAND_KILL_CREDIT, SCRIPT_COMMAND_LOAD_PATH, SCRIPT_COMMAND_MODEL, SCRIPT_COMMAND_MOVE_TO, SCRIPT_COMMAND_OPEN_DOOR, SCRIPT_COMMAND_ORIENTATION, SCRIPT_COMMAND_PLAY_SOUND, SCRIPT_COMMAND_PLAYMOVIE, SCRIPT_COMMAND_QUEST_EXPLORED, SCRIPT_COMMAND_REMOVE_AURA, SCRIPT_COMMAND_RESPAWN_GAMEOBJECT, SCRIPT_COMMAND_TALK, SCRIPT_COMMAND_TELEPORT_TO, and SCRIPT_COMMAND_TEMP_SUMMON_CREATURE.

Referenced by ScriptInfo::GetDebugInfo(), and ObjectMgr::LoadScripts().

◆ GetScriptsMapByType()

ScriptMapMap * GetScriptsMapByType ( ScriptsType  type)
85{
86 ScriptMapMap* res = nullptr;
87 switch (type)
88 {
89 case SCRIPTS_SPELL:
90 res = &sSpellScripts;
91 break;
92 case SCRIPTS_EVENT:
93 res = &sEventScripts;
94 break;
96 res = &sWaypointScripts;
97 break;
98 default:
99 break;
100 }
101 return res;
102}
ScriptMapMap sSpellScripts
Definition ObjectMgr.cpp:60
ScriptMapMap sEventScripts
Definition ObjectMgr.cpp:61
ScriptMapMap sWaypointScripts
Definition ObjectMgr.cpp:62
std::map< uint32, ScriptMap > ScriptMapMap
Definition ObjectMgr.h:389
@ SCRIPTS_WAYPOINT
Definition ObjectMgr.h:153
@ SCRIPTS_EVENT
Definition ObjectMgr.h:152
@ SCRIPTS_SPELL
Definition ObjectMgr.h:151

References SCRIPTS_EVENT, SCRIPTS_SPELL, SCRIPTS_WAYPOINT, sEventScripts, sSpellScripts, and sWaypointScripts.

Referenced by ObjectMgr::LoadScripts(), and Map::ScriptsProcess().

◆ GetScriptsTableNameByType()

std::string GetScriptsTableNameByType ( ScriptsType  type)
65{
66 std::string res = "";
67 switch (type)
68 {
69 case SCRIPTS_SPELL:
70 res = "spell_scripts";
71 break;
72 case SCRIPTS_EVENT:
73 res = "event_scripts";
74 break;
76 res = "waypoint_scripts";
77 break;
78 default:
79 break;
80 }
81 return res;
82}

References SCRIPTS_EVENT, SCRIPTS_SPELL, and SCRIPTS_WAYPOINT.

Referenced by ScriptInfo::GetDebugInfo(), and ObjectMgr::LoadScripts().

◆ GetSkillRangeType()

SkillRangeType GetSkillRangeType ( SkillRaceClassInfoEntry const *  rcEntry)
9835{
9836 SkillLineEntry const* skill = sSkillLineStore.LookupEntry(rcEntry->SkillID);
9837 if (!skill)
9838 {
9839 return SKILL_RANGE_NONE;
9840 }
9841
9842 if (sSkillTiersStore.LookupEntry(rcEntry->SkillTierID))
9843 {
9844 return SKILL_RANGE_RANK;
9845 }
9846
9847 if (rcEntry->SkillID == SKILL_RUNEFORGING)
9848 {
9849 return SKILL_RANGE_MONO;
9850 }
9851
9852 switch (skill->categoryId)
9853 {
9855 return SKILL_RANGE_MONO;
9857 return SKILL_RANGE_LANGUAGE;
9858 }
9859
9860 return SKILL_RANGE_LEVEL;
9861}
DBCStorage< SkillTiersEntry > sSkillTiersStore(SkillTiersfmt)
DBCStorage< SkillLineEntry > sSkillLineStore(SkillLinefmt)
@ SKILL_RANGE_MONO
Definition ObjectMgr.h:680
@ SKILL_RANGE_NONE
Definition ObjectMgr.h:682
@ SKILL_RANGE_LANGUAGE
Definition ObjectMgr.h:678
@ SKILL_RANGE_RANK
Definition ObjectMgr.h:681
@ SKILL_RANGE_LEVEL
Definition ObjectMgr.h:679
@ SKILL_CATEGORY_ARMOR
Definition SharedDefines.h:3308
@ SKILL_CATEGORY_LANGUAGES
Definition SharedDefines.h:3310
@ SKILL_RUNEFORGING
Definition SharedDefines.h:3237
Definition DBCStructure.h:1583
int32 categoryId
Definition DBCStructure.h:1585

References SkillLineEntry::categoryId, SKILL_CATEGORY_ARMOR, SKILL_CATEGORY_LANGUAGES, SKILL_RANGE_LANGUAGE, SKILL_RANGE_LEVEL, SKILL_RANGE_MONO, SKILL_RANGE_NONE, SKILL_RANGE_RANK, SKILL_RUNEFORGING, SkillRaceClassInfoEntry::SkillID, SkillRaceClassInfoEntry::SkillTierID, sSkillLineStore, and sSkillTiersStore.

Referenced by Player::_LoadSkills(), Player::LearnDefaultSkill(), and Player::UpdateSkillsForLevel().

◆ isValidString()

bool isValidString ( std::wstring  wstr,
uint32  strictMask,
bool  numericOrSpace,
bool  create = false 
)
9367{
9368 if (strictMask == 0) // any language, ignore realm
9369 {
9370 if (isExtendedLatinString(wstr, numericOrSpace))
9371 return true;
9372 if (isCyrillicString(wstr, numericOrSpace))
9373 return true;
9374 if (isEastAsianString(wstr, numericOrSpace))
9375 return true;
9376 return false;
9377 }
9378
9379 if (strictMask & 0x2) // realm zone specific
9380 {
9382 if (lt & LT_EXTENDEN_LATIN)
9383 if (isExtendedLatinString(wstr, numericOrSpace))
9384 return true;
9385 if (lt & LT_CYRILLIC)
9386 if (isCyrillicString(wstr, numericOrSpace))
9387 return true;
9388 if (lt & LT_EAST_ASIA)
9389 if (isEastAsianString(wstr, numericOrSpace))
9390 return true;
9391 }
9392
9393 if (strictMask & 0x1) // basic Latin
9394 {
9395 if (isBasicLatinString(wstr, numericOrSpace))
9396 return true;
9397 }
9398
9399 return false;
9400}
static LanguageType GetRealmLanguageType(bool create)
Definition ObjectMgr.cpp:9338
LanguageType
Definition ObjectMgr.cpp:9330
bool isCyrillicString(std::wstring_view wstr, bool numericOrSpace)
Definition Util.h:246
bool isBasicLatinString(std::wstring_view wstr, bool numericOrSpace)
Definition Util.h:226
bool isEastAsianString(std::wstring_view wstr, bool numericOrSpace)
Definition Util.h:256
bool isExtendedLatinString(std::wstring_view wstr, bool numericOrSpace)
Definition Util.h:236

References GetRealmLanguageType(), isBasicLatinString(), isCyrillicString(), isEastAsianString(), isExtendedLatinString(), LT_CYRILLIC, LT_EAST_ASIA, and LT_EXTENDEN_LATIN.

Referenced by ObjectMgr::CheckPetName(), ObjectMgr::CheckPlayerName(), ObjectMgr::IsValidChannelName(), and ObjectMgr::IsValidCharterName().

◆ normalizePlayerName()

bool normalizePlayerName ( std::string &  name)
210{
211 if (name.empty())
212 return false;
213
214 if (name.find(" ") != std::string::npos)
215 return false;
216
217 std::wstring tmp;
218 if (!Utf8toWStr(name, tmp))
219 return false;
220
221 wstrToLower(tmp);
222 if (!tmp.empty())
223 tmp[0] = wcharToUpper(tmp[0]);
224
225 if (!WStrToUtf8(tmp, name))
226 return false;
227
228 return true;
229}
bool Utf8toWStr(char const *utf8str, std::size_t csize, wchar_t *wstr, std::size_t &wsize)
Definition Util.cpp:281
bool WStrToUtf8(wchar_t const *wstr, std::size_t size, std::string &utf8str)
Definition Util.cpp:333
void wstrToLower(std::wstring &str)
Definition Util.cpp:382
wchar_t wcharToUpper(wchar_t wchar)
Definition Util.h:269

References Utf8toWStr(), wcharToUpper(), wstrToLower(), and WStrToUtf8().

Referenced by ChatHandler::extractLowGuidFromLink(), ChatHandler::extractPlayerNameFromLink(), PlayerNameMapHolder::Find(), character_commandscript::GetDeletedCharacterInfoList(), ChatHandler::GetPlayerGroupAndGUIDByName(), WorldSession::HandleAddFriendOpcode(), WorldSession::HandleAddIgnoreOpcode(), WorldSession::HandleArenaTeamInviteOpcode(), WorldSession::HandleArenaTeamLeaderOpcode(), WorldSession::HandleArenaTeamRemoveOpcode(), ban_commandscript::HandleBanCharacterCommand(), ban_commandscript::HandleBanHelper(), WorldSession::HandleChannelBan(), WorldSession::HandleChannelInvite(), WorldSession::HandleChannelKick(), WorldSession::HandleChannelModerator(), WorldSession::HandleChannelMute(), WorldSession::HandleChannelSetOwner(), WorldSession::HandleChannelUnban(), WorldSession::HandleChannelUnmoderator(), WorldSession::HandleChannelUnmute(), character_commandscript::HandleCharacterRenameCommand(), WorldSession::HandleCharCreateOpcode(), WorldSession::HandleCharCustomizeCallback(), WorldSession::HandleCharFactionOrRaceChangeCallback(), WorldSession::HandleCharRenameOpcode(), deserter_commandscript::HandleDeserterAdd(), ticket_commandscript::HandleGMTicketAssignToCommand(), ticket_commandscript::HandleGMTicketGetByNameCommand(), WorldSession::HandleGroupInviteOpcode(), WorldSession::HandleGroupSwapSubGroupOpcode(), WorldSession::HandleGroupUninviteOpcode(), WorldSession::HandleGuildDemoteOpcode(), WorldSession::HandleGuildInviteOpcode(), WorldSession::HandleGuildLeaderOpcode(), WorldSession::HandleGuildPromoteOpcode(), WorldSession::HandleGuildRemoveOpcode(), WorldSession::HandleGuildSetOfficerNoteOpcode(), WorldSession::HandleGuildSetPublicNoteOpcode(), WorldSession::HandleMessagechatOpcode(), WorldSession::HandleSendMail(), WorldSession::HandleSetPlayerDeclinedNames(), ban_commandscript::HandleUnBanCharacterCommand(), ban_commandscript::HandleUnBanHelper(), message_commandscript::HandleWhispersCommand(), WorldSession::HandleWhoisOpcode(), PlayerDumpReader::LoadDump(), Acore::ChatCommands::PlayerIdentifier::TryConsume(), and character_commandscript::ValidatePDumpTarget().

Variable Documentation

◆ lang_description

LanguageDesc lang_description[LANGUAGES_COUNT]
Initial value:
=
{
{ LANG_ADDON, 0, 0 },
{ LANG_UNIVERSAL, 0, 0 },
{ LANG_ZOMBIE, 0, 0 },
}
@ LANG_TITAN
Definition SharedDefines.h:730
@ LANG_GNOMISH_BINARY
Definition SharedDefines.h:739
@ LANG_UNIVERSAL
Definition SharedDefines.h:723
@ LANG_GNOMISH
Definition SharedDefines.h:734
@ LANG_GOBLIN_BINARY
Definition SharedDefines.h:740
@ LANG_DEMONIC
Definition SharedDefines.h:729
@ LANG_DRAENEI
Definition SharedDefines.h:737
@ LANG_THALASSIAN
Definition SharedDefines.h:731
@ LANG_DRACONIC
Definition SharedDefines.h:732
@ LANG_TROLL
Definition SharedDefines.h:735
@ LANG_TAURAHE
Definition SharedDefines.h:726
@ LANG_KALIMAG
Definition SharedDefines.h:733
@ LANG_ZOMBIE
Definition SharedDefines.h:738
@ LANG_ADDON
Definition SharedDefines.h:741
@ LANG_DWARVISH
Definition SharedDefines.h:727
@ LANG_GUTTERSPEAK
Definition SharedDefines.h:736
@ LANG_COMMON
Definition SharedDefines.h:728
@ LANG_ORCISH
Definition SharedDefines.h:724
@ LANG_DARNASSIAN
Definition SharedDefines.h:725
@ SKILL_LANG_GNOMISH
Definition SharedDefines.h:3185
@ SKILL_LANG_COMMON
Definition SharedDefines.h:3115
@ SKILL_LANG_DRAENEI
Definition SharedDefines.h:3221
@ SKILL_LANG_ORCISH
Definition SharedDefines.h:3117
@ SKILL_LANG_TROLL
Definition SharedDefines.h:3186
@ SKILL_LANG_GUTTERSPEAK
Definition SharedDefines.h:3213
@ SKILL_LANG_OLD_TONGUE
Definition SharedDefines.h:3132
@ SKILL_LANG_TAURAHE
Definition SharedDefines.h:3120
@ SKILL_LANG_TITAN
Definition SharedDefines.h:3131
@ SKILL_LANG_DARNASSIAN
Definition SharedDefines.h:3119
@ SKILL_LANG_DEMON_TONGUE
Definition SharedDefines.h:3130
@ SKILL_LANG_DWARVEN
Definition SharedDefines.h:3118
@ SKILL_LANG_THALASSIAN
Definition SharedDefines.h:3128
@ SKILL_LANG_DRACONIC
Definition SharedDefines.h:3129

Referenced by GetLanguageDescByID(), and learn_commandscript::HandleLearnAllLangCommand().

◆ qualityToBuyValueConfig

ServerConfigs const qualityToBuyValueConfig[MAX_ITEM_QUALITY]
Initial value:
=
{
}
@ RATE_BUYVALUE_ITEM_ARTIFACT
Definition WorldConfig.h:431
@ RATE_BUYVALUE_ITEM_POOR
Definition WorldConfig.h:425
@ RATE_BUYVALUE_ITEM_UNCOMMON
Definition WorldConfig.h:427
@ RATE_BUYVALUE_ITEM_LEGENDARY
Definition WorldConfig.h:430
@ RATE_BUYVALUE_ITEM_NORMAL
Definition WorldConfig.h:426
@ RATE_BUYVALUE_ITEM_HEIRLOOM
Definition WorldConfig.h:432
@ RATE_BUYVALUE_ITEM_EPIC
Definition WorldConfig.h:429
@ RATE_BUYVALUE_ITEM_RARE
Definition WorldConfig.h:428
3291{
3292 RATE_BUYVALUE_ITEM_POOR, // ITEM_QUALITY_POOR
3293 RATE_BUYVALUE_ITEM_NORMAL, // ITEM_QUALITY_NORMAL
3294 RATE_BUYVALUE_ITEM_UNCOMMON, // ITEM_QUALITY_UNCOMMON
3295 RATE_BUYVALUE_ITEM_RARE, // ITEM_QUALITY_RARE
3296 RATE_BUYVALUE_ITEM_EPIC, // ITEM_QUALITY_EPIC
3297 RATE_BUYVALUE_ITEM_LEGENDARY, // ITEM_QUALITY_LEGENDARY
3298 RATE_BUYVALUE_ITEM_ARTIFACT, // ITEM_QUALITY_ARTIFACT
3299 RATE_BUYVALUE_ITEM_HEIRLOOM, // ITEM_QUALITY_HEIRLOOM
3300};

Referenced by ObjectMgr::LoadItemTemplates().

◆ qualityToSellValueConfig

ServerConfigs const qualityToSellValueConfig[MAX_ITEM_QUALITY]
Initial value:
=
{
}
@ RATE_SELLVALUE_ITEM_ARTIFACT
Definition WorldConfig.h:423
@ RATE_SELLVALUE_ITEM_EPIC
Definition WorldConfig.h:421
@ RATE_SELLVALUE_ITEM_NORMAL
Definition WorldConfig.h:418
@ RATE_SELLVALUE_ITEM_HEIRLOOM
Definition WorldConfig.h:424
@ RATE_SELLVALUE_ITEM_UNCOMMON
Definition WorldConfig.h:419
@ RATE_SELLVALUE_ITEM_POOR
Definition WorldConfig.h:417
@ RATE_SELLVALUE_ITEM_RARE
Definition WorldConfig.h:420
@ RATE_SELLVALUE_ITEM_LEGENDARY
Definition WorldConfig.h:422
3303{
3304 RATE_SELLVALUE_ITEM_POOR, // ITEM_QUALITY_POOR
3305 RATE_SELLVALUE_ITEM_NORMAL, // ITEM_QUALITY_NORMAL
3306 RATE_SELLVALUE_ITEM_UNCOMMON, // ITEM_QUALITY_UNCOMMON
3307 RATE_SELLVALUE_ITEM_RARE, // ITEM_QUALITY_RARE
3308 RATE_SELLVALUE_ITEM_EPIC, // ITEM_QUALITY_EPIC
3309 RATE_SELLVALUE_ITEM_LEGENDARY, // ITEM_QUALITY_LEGENDARY
3310 RATE_SELLVALUE_ITEM_ARTIFACT, // ITEM_QUALITY_ARTIFACT
3311 RATE_SELLVALUE_ITEM_HEIRLOOM, // ITEM_QUALITY_HEIRLOOM
3312};

Referenced by ObjectMgr::LoadItemTemplates().

◆ sEventScripts

◆ sSpellScripts

◆ sWaypointScripts