diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2015-07-19 01:24:45 +0100 | 
|---|---|---|
| committer | DDuarte <dnpd.dd@gmail.com> | 2015-07-19 01:25:16 +0100 | 
| commit | 9245bad755a54f695e29dd4cc389c8577a488587 (patch) | |
| tree | c4d678e3ce8b88b3445c9860e7b422cd8ae1fcfe /src | |
| parent | f880f2e778f5db6ecebf3321d48404c89f5b277f (diff) | |
Core/Misc: Update game object template locale in simple system
(cherry picked from commit f4536f38123c536d90733d047e1072b4dd88e910)
Conflicts:
	src/server/game/Globals/ObjectMgr.cpp
	src/server/game/Handlers/QueryHandler.cpp
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 28 | ||||
| -rw-r--r-- | src/server/game/Handlers/QueryHandler.cpp | 13 | 
2 files changed, 20 insertions, 21 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index acf7dcb79e9..c65e52c8de7 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -6527,13 +6527,10 @@ void ObjectMgr::LoadGameObjectLocales()  {      uint32 oldMSTime = getMSTime(); -    _gameObjectLocaleStore.clear();                           // need for reload case - -    QueryResult result = WorldDatabase.Query("SELECT entry, " -        "name_loc1, name_loc2, name_loc3, name_loc4, name_loc5, name_loc6, name_loc7, name_loc8, " -        "castbarcaption_loc1, castbarcaption_loc2, castbarcaption_loc3, castbarcaption_loc4, " -        "castbarcaption_loc5, castbarcaption_loc6, castbarcaption_loc7, castbarcaption_loc8 FROM locales_gameobject"); +    _gameObjectLocaleStore.clear(); // need for reload case +    //                                               0      1       2     3 +    QueryResult result = WorldDatabase.Query("SELECT entry, locale, name, castBarCaption FROM gameobject_template_locale");      if (!result)          return; @@ -6541,18 +6538,21 @@ void ObjectMgr::LoadGameObjectLocales()      {          Field* fields = result->Fetch(); -        uint32 entry = fields[0].GetUInt32(); +        uint32 id                   = fields[0].GetUInt32(); +        std::string localeName      = fields[1].GetString(); -        GameObjectLocale& data = _gameObjectLocaleStore[entry]; +        std::string name            = fields[2].GetString(); +        std::string castBarCaption  = fields[3].GetString(); + +        GameObjectLocale& data = _gameObjectLocaleStore[id]; +        LocaleConstant locale = GetLocaleByName(localeName); + +        AddLocaleString(name, locale, data.Name); +        AddLocaleString(castBarCaption, locale, data.CastBarCaption); -        for (uint8 i = TOTAL_LOCALES - 1; i > 0; --i) -        { -            AddLocaleString(fields[i].GetString(), LocaleConstant(i), data.Name); -            AddLocaleString(fields[i + (TOTAL_LOCALES - 1)].GetString(), LocaleConstant(i), data.CastBarCaption); -        }      } while (result->NextRow()); -    TC_LOG_INFO("server.loading", ">> Loaded %u gameobject locale strings in %u ms", uint32(_gameObjectLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime)); +    TC_LOG_INFO("server.loading", ">> Loaded %u gameobject_template_locale strings in %u ms", uint32(_gameObjectLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime));  }  inline void CheckGOLockId(GameObjectTemplate const* goInfo, uint32 dataN, uint32 N) diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp index 03782481ef7..fda3551bf2b 100644 --- a/src/server/game/Handlers/QueryHandler.cpp +++ b/src/server/game/Handlers/QueryHandler.cpp @@ -174,15 +174,14 @@ void WorldSession::HandleGameObjectQueryOpcode(WorldPacket& recvData)          IconName = info->IconName;          CastBarCaption = info->castBarCaption; -        int loc_idx = GetSessionDbLocaleIndex(); -        if (loc_idx >= 0) -        { -            if (GameObjectLocale const* gl = sObjectMgr->GetGameObjectLocale(entry)) +        LocaleConstant localeConstant = GetSessionDbLocaleIndex(); +        if (localeConstant >= LOCALE_enUS) +            if (GameObjectLocale const* gameObjectLocale = sObjectMgr->GetGameObjectLocale(entry))              { -                ObjectMgr::GetLocaleString(gl->Name, loc_idx, Name); -                ObjectMgr::GetLocaleString(gl->CastBarCaption, loc_idx, CastBarCaption); +                ObjectMgr::GetLocaleString(gameObjectLocale->Name, localeConstant, Name); +                ObjectMgr::GetLocaleString(gameObjectLocale->CastBarCaption, localeConstant, CastBarCaption);              } -        } +          TC_LOG_DEBUG("network", "WORLD: CMSG_GAMEOBJECT_QUERY '%s' - Entry: %u. ", info->name.c_str(), entry);          WorldPacket data (SMSG_GAMEOBJECT_QUERY_RESPONSE, 150);          data << uint32(entry);  | 
