diff options
Diffstat (limited to 'src/game/Level2.cpp')
-rw-r--r-- | src/game/Level2.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index 70baff4f42e..31834fce8ea 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -3971,6 +3971,7 @@ bool ChatHandler::HandleLearnAllRecipesCommand(const char* args) wstrToLower( wnamepart ); uint32 classmask = m_session->GetPlayer()->getClassMask(); + std::string name; SkillLineEntry const *targetSkillInfo = NULL; @@ -3987,8 +3988,27 @@ bool ChatHandler::HandleLearnAllRecipesCommand(const char* args) int loc = GetSessionDbcLocale(); name = skillInfo->name[loc]; + if(name.empty()) + continue; + + if (!Utf8FitTo(name, wnamepart)) + { + loc = 0; + for(; loc < MAX_LOCALE; ++loc) + { + if(loc==GetSessionDbcLocale()) + continue; + + name = skillInfo->name[loc]; + if(name.empty()) + continue; + + if (Utf8FitTo(name, wnamepart)) + break; + } + } - if(Utf8FitTo(name, wnamepart)) + if(loc < MAX_LOCALE) { targetSkillInfo = skillInfo; break; |