diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-05-02 00:44:31 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-05-03 23:53:24 +0200 |
commit | 14098b28b39bc9d1ea17d18a7ecd3dd610f29cdc (patch) | |
tree | 187ff67ad06e196880bf89cf1eb749eaa3a79d37 /src/server/game/Chat/LanguageMgr.h | |
parent | ede3e415ab4dab39d2f88f588a7f0f79d6c4187b (diff) |
Core/Chat: Allow incorrect spell/skill language assignments to mirror client behavior
Diffstat (limited to 'src/server/game/Chat/LanguageMgr.h')
-rw-r--r-- | src/server/game/Chat/LanguageMgr.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/server/game/Chat/LanguageMgr.h b/src/server/game/Chat/LanguageMgr.h index 57e5a6428eb..26010bfbcf8 100644 --- a/src/server/game/Chat/LanguageMgr.h +++ b/src/server/game/Chat/LanguageMgr.h @@ -20,6 +20,7 @@ #include "Define.h" #include "Hash.h" +#include "IteratorPair.h" #include "SharedDefines.h" #include <string> #include <vector> @@ -27,11 +28,15 @@ struct LanguageDesc { - uint32 SpellId; - uint32 SkillId; + uint32 SpellId = 0; + uint32 SkillId = 0; + + friend bool operator==(LanguageDesc const& left, LanguageDesc const& right) + { + return left.SpellId == right.SpellId && left.SkillId == right.SkillId; + } }; -struct SkillLineEntry; struct SpellEffectEntry; class TC_GAME_API LanguageMgr @@ -43,7 +48,7 @@ class TC_GAME_API LanguageMgr typedef std::vector<char const*> WordList; typedef std::unordered_map<WordKey, WordList> WordsMap; - typedef std::unordered_map<uint32, LanguageDesc> LanguagesMap; + typedef std::unordered_multimap<uint32, LanguageDesc> LanguagesMap; // Constructors private: @@ -60,7 +65,7 @@ class TC_GAME_API LanguageMgr uint32 SStrHash(char const* string, bool caseInsensitive, uint32 seed = 0x7FED7FED) const; bool IsLanguageExist(uint32 languageId) const; - LanguageDesc const* GetLanguageDescById(uint32 languageId) const; + Trinity::IteratorPair<LanguagesMap::const_iterator> GetLanguageDescById(Language languageId) const; /* Calls a callback for each available language. * Callback signature: bool callback(uint32 lang, LanguageDesc const& languageDesc) @@ -83,11 +88,6 @@ class TC_GAME_API LanguageMgr void LoadLanguagesWords(); void LoadLanguages(); - void LoadLanguagesSkills(); - - bool IsRelevantLanguageSkill(SkillLineEntry const* skillLineEntry) const; - - uint32 GetSpellLanguage(uint32 spellId) const; WordList const* FindWordGroup(uint32 language, uint32 wordLen) const; |