aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/3.3.5/2017_04_24_02_world.sql86
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp32
2 files changed, 104 insertions, 14 deletions
diff --git a/sql/updates/world/3.3.5/2017_04_24_02_world.sql b/sql/updates/world/3.3.5/2017_04_24_02_world.sql
new file mode 100644
index 00000000000..cd8b301ffe1
--- /dev/null
+++ b/sql/updates/world/3.3.5/2017_04_24_02_world.sql
@@ -0,0 +1,86 @@
+DROP TABLE IF EXISTS `item_template_locale`;
+CREATE TABLE IF NOT EXISTS `item_template_locale` (
+ `ID` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
+ `locale` VARCHAR(4) NOT NULL,
+ `Name` TEXT,
+ `Description` TEXT,
+ `VerifiedBuild` SMALLINT(5) DEFAULT '0',
+ PRIMARY KEY (`ID`, `locale`)
+) ENGINE=MYISAM DEFAULT CHARSET=utf8;
+
+-- koKR
+INSERT INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `VerifiedBuild`)
+ (SELECT `entry`, "koKR", `name_loc1`, `description_loc1`, `VerifiedBuild` FROM `locales_item` WHERE LENGTH(name_loc1) > 0 OR LENGTH(description_loc1) > 0);
+
+-- frFR
+INSERT INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `VerifiedBuild`)
+ (SELECT `entry`, "frFR", `name_loc2`, `description_loc2`, `VerifiedBuild` FROM `locales_item` WHERE LENGTH(name_loc2) > 0 OR LENGTH(description_loc2) > 0);
+
+-- deDE
+INSERT INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `VerifiedBuild`)
+ (SELECT `entry`, "deDE", `name_loc3`, `description_loc3`, `VerifiedBuild` FROM `locales_item` WHERE LENGTH(name_loc3) > 0 OR LENGTH(description_loc3) > 0);
+
+-- zhCN
+INSERT INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `VerifiedBuild`)
+ (SELECT `entry`, "zhCN", `name_loc4`, `description_loc4`, `VerifiedBuild` FROM `locales_item` WHERE LENGTH(name_loc4) > 0 OR LENGTH(description_loc4) > 0);
+
+-- zhTW
+INSERT INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `VerifiedBuild`)
+ (SELECT `entry`, "zhTW", `name_loc5`, `description_loc5`, `VerifiedBuild` FROM `locales_item` WHERE LENGTH(name_loc5) > 0 OR LENGTH(description_loc5) > 0);
+
+-- esES
+INSERT INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `VerifiedBuild`)
+ (SELECT `entry`, "esES", `name_loc6`, `description_loc6`, `VerifiedBuild` FROM `locales_item` WHERE LENGTH(name_loc6) > 0 OR LENGTH(description_loc6) > 0);
+
+-- esMX
+INSERT INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `VerifiedBuild`)
+ (SELECT `entry`, "esMX", `name_loc7`, `description_loc7`, `VerifiedBuild` FROM `locales_item` WHERE LENGTH(name_loc7) > 0 OR LENGTH(description_loc7) > 0);
+
+-- ruRU
+INSERT INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `VerifiedBuild`)
+ (SELECT `entry`, "ruRU", `name_loc8`, `description_loc8`, `VerifiedBuild` FROM `locales_item` WHERE LENGTH(name_loc8) > 0 OR LENGTH(description_loc8) > 0);
+
+DROP TABLE IF EXISTS `locales_item`;
+
+DROP TABLE IF EXISTS `item_set_names_locale`;
+CREATE TABLE IF NOT EXISTS `item_set_names_locale` (
+ `ID` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
+ `locale` VARCHAR(4) NOT NULL,
+ `Name` TEXT,
+ `VerifiedBuild` SMALLINT(5) DEFAULT '0',
+ PRIMARY KEY (`ID`, `locale`)
+) ENGINE=MYISAM DEFAULT CHARSET=utf8;
+
+-- koKR
+INSERT INTO `item_set_names_locale` (`ID`, `locale`, `Name`, `VerifiedBuild`)
+ (SELECT `entry`, "koKR", `name_loc1`, `VerifiedBuild` FROM `locales_item_set_names` WHERE LENGTH(name_loc1) > 0);
+
+-- frFR
+INSERT INTO `item_set_names_locale` (`ID`, `locale`, `Name`, `VerifiedBuild`)
+ (SELECT `entry`, "frFR", `name_loc2`, `VerifiedBuild` FROM `locales_item_set_names` WHERE LENGTH(name_loc2) > 0);
+
+-- deDE
+INSERT INTO `item_set_names_locale` (`ID`, `locale`, `Name`, `VerifiedBuild`)
+ (SELECT `entry`, "deDE", `name_loc3`, `VerifiedBuild` FROM `locales_item_set_names` WHERE LENGTH(name_loc3) > 0);
+
+-- zhCN
+INSERT INTO `item_set_names_locale` (`ID`, `locale`, `Name`, `VerifiedBuild`)
+ (SELECT `entry`, "zhCN", `name_loc4`, `VerifiedBuild` FROM `locales_item_set_names` WHERE LENGTH(name_loc4) > 0);
+
+-- zhTW
+INSERT INTO `item_set_names_locale` (`ID`, `locale`, `Name`, `VerifiedBuild`)
+ (SELECT `entry`, "zhTW", `name_loc5`, `VerifiedBuild` FROM `locales_item_set_names` WHERE LENGTH(name_loc5) > 0);
+
+-- esES
+INSERT INTO `item_set_names_locale` (`ID`, `locale`, `Name`, `VerifiedBuild`)
+ (SELECT `entry`, "esES", `name_loc6`, `VerifiedBuild` FROM `locales_item_set_names` WHERE LENGTH(name_loc6) > 0);
+
+-- esMX
+INSERT INTO `item_set_names_locale` (`ID`, `locale`, `Name`, `VerifiedBuild`)
+ (SELECT `entry`, "esMX", `name_loc7`, `VerifiedBuild` FROM `locales_item_set_names` WHERE LENGTH(name_loc7) > 0);
+
+-- ruRU
+INSERT INTO `item_set_names_locale` (`ID`, `locale`, `Name`, `VerifiedBuild`)
+ (SELECT `entry`, "ruRU", `name_loc8`, `VerifiedBuild` FROM `locales_item_set_names` WHERE LENGTH(name_loc8) > 0);
+
+DROP TABLE IF EXISTS `locales_item_set_names`;
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 89521fda4a9..15ee1f7e5cd 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -2239,7 +2239,8 @@ void ObjectMgr::LoadItemLocales()
_itemLocaleStore.clear(); // need for reload case
- QueryResult result = WorldDatabase.Query("SELECT entry, name_loc1, description_loc1, name_loc2, description_loc2, name_loc3, description_loc3, name_loc4, description_loc4, name_loc5, description_loc5, name_loc6, description_loc6, name_loc7, description_loc7, name_loc8, description_loc8 FROM locales_item");
+ // 0 1 2 3
+ QueryResult result = WorldDatabase.Query("SELECT ID, locale, Name, Description FROM item_template_locale");
if (!result)
return;
@@ -2248,16 +2249,16 @@ void ObjectMgr::LoadItemLocales()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 id = fields[0].GetUInt32();
+ std::string localeName = fields[1].GetString();
+ std::string Name = fields[2].GetString();
+ std::string Description = fields[3].GetString();
- ItemLocale& data = _itemLocaleStore[entry];
+ ItemLocale& data = _itemLocaleStore[id];
+ LocaleConstant locale = GetLocaleByName(localeName);
- for (uint8 i = TOTAL_LOCALES - 1; i > 0; --i)
- {
- LocaleConstant locale = (LocaleConstant) i;
- AddLocaleString(fields[1 + 2 * (i - 1)].GetString(), locale, data.Name);
- AddLocaleString(fields[1 + 2 * (i - 1) + 1].GetString(), locale, data.Description);
- }
+ AddLocaleString(Name, locale, data.Name);
+ AddLocaleString(Description, locale, data.Description);
} while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u Item locale strings in %u ms", uint32(_itemLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime));
@@ -2884,7 +2885,8 @@ void ObjectMgr::LoadItemSetNameLocales()
_itemSetNameLocaleStore.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` FROM `locales_item_set_names`");
+ // 0 1 2
+ QueryResult result = WorldDatabase.Query("SELECT ID, locale, Name FROM item_set_names_locale");
if (!result)
return;
@@ -2893,12 +2895,14 @@ void ObjectMgr::LoadItemSetNameLocales()
{
Field* fields = result->Fetch();
- uint32 entry = fields[0].GetUInt32();
+ uint32 id = fields[0].GetUInt32();
+ std::string localeName = fields[1].GetString();
+ std::string Name = fields[2].GetString();
- ItemSetNameLocale& data = _itemSetNameLocaleStore[entry];
+ ItemSetNameLocale& data = _itemSetNameLocaleStore[id];
+ LocaleConstant locale = GetLocaleByName(localeName);
- for (uint8 i = TOTAL_LOCALES - 1; i > 0; --i)
- AddLocaleString(fields[i].GetString(), LocaleConstant(i), data.Name);
+ AddLocaleString(Name, locale, data.Name);
} while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded " UI64FMTD " Item set name locale strings in %u ms", uint64(_itemSetNameLocaleStore.size()), GetMSTimeDiffToNow(oldMSTime));