diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index db543368c72..b658243eac0 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -6315,11 +6315,18 @@ void ObjectMgr::LoadReservedPlayersNames() bar.step(); fields = result->Fetch(); std::string name= fields[0].GetCppString(); - if(normalizePlayerName(name)) + + std::wstring wstr; + if(!Utf8toWStr (name,wstr)) { - m_ReservedNames.insert(name); - ++count; + sLog.outError("Table `reserved_name` have invalid name: %s", name.c_str() ); + continue; } + + wstrToLower(wstr); + + m_ReservedNames.insert(wstr); + ++count; } while ( result->NextRow() ); delete result; @@ -6328,6 +6335,17 @@ void ObjectMgr::LoadReservedPlayersNames() sLog.outString( ">> Loaded %u reserved player names", count ); } +bool ObjectMgr::IsReservedName( const std::string& name ) const +{ + std::wstring wstr; + if(!Utf8toWStr (name,wstr)) + return false; + + wstrToLower(wstr); + + return m_ReservedNames.find(wstr) != m_ReservedNames.end(); +} + enum LanguageType { LT_BASIC_LATIN = 0x0000, diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h index 355d8e5ef9f..ec1a0c5c98a 100644 --- a/src/game/ObjectMgr.h +++ b/src/game/ObjectMgr.h @@ -702,10 +702,7 @@ class ObjectMgr // reserved names void LoadReservedPlayersNames(); - bool IsReservedName(const std::string& name) const - { - return m_ReservedNames.find(name) != m_ReservedNames.end(); - } + bool IsReservedName(const std::string& name) const; // name with valid structure and symbols static bool IsValidName( const std::string& name, bool create = false ); @@ -834,7 +831,7 @@ class ObjectMgr PetCreateSpellMap mPetCreateSpell; //character reserved names - typedef std::set ReservedNamesMap; + typedef std::set ReservedNamesMap; ReservedNamesMap m_ReservedNames; GraveYardMap mGraveYardMap; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 6fb2f69c8d3..444b7663332 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7165" + #define REVISION_NR "7166" #endif // __REVISION_NR_H__