diff options
| -rw-r--r-- | src/server/game/Achievements/AchievementMgr.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Battlegrounds/Battleground.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.h | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.h | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.h | 2 | ||||
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 26 | ||||
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 9 | ||||
| -rw-r--r-- | src/server/game/Grids/Notifiers/GridNotifiersImpl.h | 4 | ||||
| -rw-r--r-- | src/server/game/Guilds/Guild.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Guilds/Guild.h | 2 | ||||
| -rw-r--r-- | src/server/game/Maps/Map.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Handlers/ChatHandler.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 4 | ||||
| -rw-r--r-- | src/server/game/World/World.cpp | 2 | ||||
| -rw-r--r-- | src/server/scripts/Kalimdor/azshara.cpp | 2 | ||||
| -rw-r--r-- | src/server/shared/Common.h | 1 |
19 files changed, 39 insertions, 45 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index fc518189326..d0a5145f4fa 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -48,7 +48,7 @@ namespace Trinity public: AchievementChatBuilder(Player const& pl, ChatMsg msgtype, int32 textId, uint32 ach_id) : i_player(pl), i_msgtype(msgtype), i_textId(textId), i_achievementId(ach_id) {} - void operator()(WorldPacket& data, int32 loc_idx) + void operator()(WorldPacket& data, LocaleConstant loc_idx) { char const* text = sObjectMgr.GetTrinityString(i_textId,loc_idx); diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 173feac394f..9acca669e48 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -44,7 +44,7 @@ namespace Trinity public: BattlegroundChatBuilder(ChatMsg msgtype, int32 textId, Player const* source, va_list* args = NULL) : i_msgtype(msgtype), i_textId(textId), i_source(source), i_args(args) {} - void operator()(WorldPacket& data, int32 loc_idx) + void operator()(WorldPacket& data, LocaleConstant loc_idx) { char const* text = sObjectMgr.GetTrinityString(i_textId,loc_idx); @@ -89,7 +89,7 @@ namespace Trinity public: Battleground2ChatBuilder(ChatMsg msgtype, int32 textId, Player const* source, int32 arg1, int32 arg2) : i_msgtype(msgtype), i_textId(textId), i_source(source), i_arg1(arg1), i_arg2(arg2) {} - void operator()(WorldPacket& data, int32 loc_idx) + void operator()(WorldPacket& data, LocaleConstant loc_idx) { char const* text = sObjectMgr.GetTrinityString(i_textId,loc_idx); char const* arg1str = i_arg1 ? sObjectMgr.GetTrinityString(i_arg1,loc_idx) : ""; diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index e6d9fb21361..92d87cec8f4 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2385,9 +2385,9 @@ TrainerSpellData const* Creature::GetTrainerSpells() const } // overwrite WorldObject function for proper name localization -const char* Creature::GetNameForLocaleIdx(int32 loc_idx) const +const char* Creature::GetNameForLocaleIdx(LocaleConstant loc_idx) const { - if (loc_idx >= 0) + if (loc_idx != DEFAULT_LOCALE) { uint8 uloc_idx = uint8(loc_idx); CreatureLocale const *cl = sObjectMgr.GetCreatureLocale(GetEntry()); diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 13c9639687c..2c997cd8df7 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -526,7 +526,7 @@ class Creature : public Unit, public GridObject<Creature> void YellToZone(int32 textId, uint32 language, uint64 TargetGuid) { MonsterYellToZone(textId,language,TargetGuid); } // overwrite WorldObject function for proper name localization - const char* GetNameForLocaleIdx(int32 locale_idx) const; + const char* GetNameForLocaleIdx(LocaleConstant locale_idx) const; void setDeathState(DeathState s); // overwrite virtual Unit::setDeathState bool FallGround(); diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 459b7ccd289..4b65fc7aabf 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1710,9 +1710,9 @@ void GameObject::EventInform(uint32 eventId) } // overwrite WorldObject function for proper name localization -const char* GameObject::GetNameForLocaleIdx(int32 loc_idx) const +const char* GameObject::GetNameForLocaleIdx(LocaleConstant loc_idx) const { - if (loc_idx >= 0) + if (loc_idx != DEFAULT_LOCALE) { uint8 uloc_idx = uint8(loc_idx); if (GameObjectLocale const *cl = sObjectMgr.GetGameObjectLocale(GetEntry())) diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index 4dd93e24519..6ae7aebd2f0 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -622,7 +622,7 @@ class GameObject : public WorldObject, public GridObject<GameObject> void YellToZone(int32 textId, uint32 language, uint64 TargetGuid) { MonsterYellToZone(textId,language,TargetGuid); } // overwrite WorldObject function for proper name localization - const char* GetNameForLocaleIdx(int32 locale_idx) const; + const char* GetNameForLocaleIdx(LocaleConstant locale_idx) const; void SaveToDB(); void SaveToDB(uint32 mapid, uint8 spawnMask, uint32 phaseMask); diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index d0de42351b0..fc9032bc448 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1634,7 +1634,7 @@ namespace Trinity public: MonsterChatBuilder(WorldObject const& obj, ChatMsg msgtype, int32 textId, uint32 language, uint64 targetGUID) : i_object(obj), i_msgtype(msgtype), i_textId(textId), i_language(language), i_targetGUID(targetGUID) {} - void operator()(WorldPacket& data, int32 loc_idx) + void operator()(WorldPacket& data, LocaleConstant loc_idx) { char const* text = sObjectMgr.GetTrinityString(i_textId,loc_idx); @@ -1715,7 +1715,7 @@ void WorldObject::MonsterWhisper(int32 textId, uint64 receiver, bool IsBossWhisp if (!player || !player->GetSession()) return; - uint32 loc_idx = player->GetSession()->GetSessionDbLocaleIndex(); + LocaleConstant loc_idx = player->GetSession()->GetSessionDbLocaleIndex(); char const* text = sObjectMgr.GetTrinityString(textId, loc_idx); WorldPacket data(SMSG_MESSAGECHAT, 200); diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index efa953d378c..c6f54e47a60 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -612,7 +612,7 @@ class WorldObject : public Object, public WorldLocation const char* GetName() const { return m_name.c_str(); } void SetName(const std::string& newname) { m_name=newname; } - virtual const char* GetNameForLocaleIdx(int32 /*locale_idx*/) const { return GetName(); } + virtual const char* GetNameForLocaleIdx(LocaleConstant /*locale_idx*/) const { return GetName(); } float GetDistance(const WorldObject *obj) const { diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 63be505a3d0..14a1eb4d4d1 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -7640,31 +7640,25 @@ PetNameInvalidReason ObjectMgr::CheckPetName(const std::string& name) return PET_NAME_SUCCESS; } -int ObjectMgr::GetIndexForLocale(LocaleConstant loc) +LocaleConstant ObjectMgr::GetIndexForLocale(LocaleConstant loc) { - if (loc == LOCALE_enUS) - return -1; - for (size_t i=0; i < m_LocalForIndex.size(); ++i) if (m_LocalForIndex[i] == loc) - return i; + return loc; - return -1; + return DEFAULT_LOCALE; } LocaleConstant ObjectMgr::GetLocaleForIndex(int i) { if (i < 0 || i >= int(m_LocalForIndex.size())) - return LOCALE_enUS; + return DEFAULT_LOCALE; return m_LocalForIndex[i]; } int ObjectMgr::GetOrNewIndexForLocale(LocaleConstant loc) { - if (loc == LOCALE_enUS) - return -1; - for (size_t i = 0; i < m_LocalForIndex.size(); ++i) if (m_LocalForIndex[i] == loc) return i; @@ -7815,8 +7809,7 @@ bool ObjectMgr::LoadTrinityStrings(char const* table, int32 min_value, int32 max data.Content.resize(1); ++count; - data.Default = fields[1].GetCppString(); - for (uint8 i = 1; i < MAX_LOCALE; ++i) + for (uint8 i = 0; i < MAX_LOCALE; ++i) { std::string str = fields[i + 1].GetCppString(); AddLocaleString(str, LocaleConstant(i), data.Content); @@ -7832,13 +7825,14 @@ bool ObjectMgr::LoadTrinityStrings(char const* table, int32 min_value, int32 max return true; } -const char *ObjectMgr::GetTrinityString(int32 entry, int locale_idx) const +const char *ObjectMgr::GetTrinityString(int32 entry, LocaleConstant locale_idx) const { if (TrinityStringLocale const *msl = GetTrinityStringLocale(entry)) { - std::string s = msl->Default; - GetLocaleString(msl->Content, locale_idx, s); - return s.c_str(); + if (msl->Content.size() > size_t(locale_idx) && !msl->Content[locale_idx].empty()) + return msl->Content[locale_idx].c_str(); + + return msl->Content[DEFAULT_LOCALE].c_str(); } if (entry > 0) diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 12f8b2b4a63..7025211e989 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -174,7 +174,6 @@ typedef UNORDERED_MAP<uint64/*(instance,guid) pair*/,time_t> RespawnTimes; struct TrinityStringLocale { - std::string Default; StringVector Content; }; @@ -864,9 +863,9 @@ class ObjectMgr if (itr == mTrinityStringLocaleMap.end()) return NULL; return &itr->second; } - const char *GetTrinityString(int32 entry, int locale_idx) const; + const char *GetTrinityString(int32 entry, LocaleConstant locale_idx) const; const char *GetTrinityStringForDBCLocale(int32 entry) const { return GetTrinityString(entry,DBCLocaleIndex); } - int32 GetDBCLocaleIndex() const { return DBCLocaleIndex; } + LocaleConstant GetDBCLocaleIndex() const { return DBCLocaleIndex; } void SetDBCLocaleIndex(uint32 lang) { DBCLocaleIndex = GetIndexForLocale(LocaleConstant(lang)); } void AddCorpseCellData(uint32 mapid, uint32 cellid, uint32 player_guid, uint32 instance); @@ -906,7 +905,7 @@ class ObjectMgr static bool CheckDeclinedNames(std::wstring mainpart, DeclinedName const& names); - int GetIndexForLocale(LocaleConstant loc); + LocaleConstant GetIndexForLocale(LocaleConstant loc); LocaleConstant GetLocaleForIndex(int i); GameTele const* GetGameTele(uint32 id) const @@ -1080,7 +1079,7 @@ class ObjectMgr typedef std::vector<LocaleConstant> LocalForIndex; LocalForIndex m_LocalForIndex; - int DBCLocaleIndex; + LocaleConstant DBCLocaleIndex; private: void LoadScripts(ScriptsType type); diff --git a/src/server/game/Grids/Notifiers/GridNotifiersImpl.h b/src/server/game/Grids/Notifiers/GridNotifiersImpl.h index 26a9c0bd328..989deb8b318 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiersImpl.h +++ b/src/server/game/Grids/Notifiers/GridNotifiersImpl.h @@ -404,7 +404,7 @@ void Trinity::PlayerSearcher<Check>::Visit(PlayerMapType &m) template<class Builder> void Trinity::LocalizedPacketDo<Builder>::operator()(Player* p) { - int32 loc_idx = p->GetSession()->GetSessionDbLocaleIndex(); + LocaleConstant loc_idx = p->GetSession()->GetSessionDbLocaleIndex(); uint32 cache_idx = loc_idx+1; WorldPacket* data; @@ -429,7 +429,7 @@ void Trinity::LocalizedPacketDo<Builder>::operator()(Player* p) template<class Builder> void Trinity::LocalizedPacketListDo<Builder>::operator()(Player* p) { - int32 loc_idx = p->GetSession()->GetSessionDbLocaleIndex(); + LocaleConstant loc_idx = p->GetSession()->GetSessionDbLocaleIndex(); uint32 cache_idx = loc_idx+1; WorldPacketList* data_list; diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 48dc3ce6437..54a4e7b537a 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -102,7 +102,7 @@ bool Guild::Create(Player* leader, std::string gname) return AddMember(m_LeaderGuid, (uint32)GR_GUILDMASTER); } -void Guild::CreateDefaultGuildRanks(int locale_idx) +void Guild::CreateDefaultGuildRanks(LocaleConstant locale_idx) { CharacterDatabase.PExecute("DELETE FROM guild_rank WHERE guildid='%u'", m_Id); CharacterDatabase.PExecute("DELETE FROM guild_bank_right WHERE guildid = '%u'", m_Id); @@ -279,7 +279,7 @@ bool Guild::LoadRanksFromDB(QueryResult guildRanksResult) if (!guildRanksResult) { sLog.outError("Guild %u has broken `guild_rank` data, creating new...",m_Id); - CreateDefaultGuildRanks(0); + CreateDefaultGuildRanks(DEFAULT_LOCALE); return true; } @@ -329,7 +329,7 @@ bool Guild::LoadRanksFromDB(QueryResult guildRanksResult) { m_Ranks.clear(); sLog.outError("Guild %u has broken `guild_rank` data, creating new...", m_Id); - CreateDefaultGuildRanks(0); // 0 is default locale_idx + CreateDefaultGuildRanks(DEFAULT_LOCALE); broken_ranks = false; } // guild_rank have wrong numbered ranks, repair diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h index 3b3eb987e0a..7cc3e4b8b79 100644 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -291,7 +291,7 @@ class Guild ~Guild(); bool Create(Player* leader, std::string gname); - void CreateDefaultGuildRanks(int locale_idx); + void CreateDefaultGuildRanks(LocaleConstant locale_idx); void Disband(); void DeleteGuildBankItems(SQLTransaction& trans, bool alsoInDB = false); diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 71b97f59bf8..1bb697bc5a8 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -3040,7 +3040,7 @@ void Map::ScriptsProcess() if (Player *pSource = _GetScriptPlayerSourceOrTarget(source, target, step.script)) { uint64 targetGUID = target ? target->GetGUID() : 0; - int loc_idx = pSource->GetSession()->GetSessionDbLocaleIndex(); + LocaleConstant loc_idx = pSource->GetSession()->GetSessionDbLocaleIndex(); const std::string text(sObjectMgr.GetTrinityString(step.script->dataint, loc_idx)); switch (step.script->datalong) diff --git a/src/server/game/Server/Protocol/Handlers/ChatHandler.cpp b/src/server/game/Server/Protocol/Handlers/ChatHandler.cpp index bacfa93916e..f0531efb60e 100644 --- a/src/server/game/Server/Protocol/Handlers/ChatHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/ChatHandler.cpp @@ -598,7 +598,7 @@ namespace Trinity EmoteChatBuilder(Player const& pl, uint32 text_emote, uint32 emote_num, Unit const* target) : i_player(pl), i_text_emote(text_emote), i_emote_num(emote_num), i_target(target) {} - void operator()(WorldPacket& data, int32 loc_idx) + void operator()(WorldPacket& data, LocaleConstant loc_idx) { char const* nam = i_target ? i_target->GetNameForLocaleIdx(loc_idx) : NULL; uint32 namlen = (nam ? strlen(nam) : 0) + 1; diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index dab19620832..14ab8585796 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -286,7 +286,7 @@ class WorldSession // Locales LocaleConstant GetSessionDbcLocale() const { return m_sessionDbcLocale; } - int GetSessionDbLocaleIndex() const { return m_sessionDbLocaleIndex; } + LocaleConstant GetSessionDbLocaleIndex() const { return m_sessionDbLocaleIndex; } const char *GetTrinityString(int32 entry) const; uint32 GetLatency() const { return m_latency; } @@ -853,7 +853,7 @@ class WorldSession bool m_playerRecentlyLogout; bool m_playerSave; LocaleConstant m_sessionDbcLocale; - int m_sessionDbLocaleIndex; + LocaleConstant m_sessionDbLocaleIndex; uint32 m_latency; AccountData m_accountData[NUM_ACCOUNT_DATA_TYPES]; uint32 m_Tutorials[8]; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index f621fc921cc..04683f56f0f 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2061,7 +2061,7 @@ namespace Trinity public: typedef std::vector<WorldPacket*> WorldPacketList; explicit WorldWorldTextBuilder(int32 textId, va_list* args = NULL) : i_textId(textId), i_args(args) {} - void operator()(WorldPacketList& data_list, int32 loc_idx) + void operator()(WorldPacketList& data_list, LocaleConstant loc_idx) { char const* text = sObjectMgr.GetTrinityString(i_textId,loc_idx); diff --git a/src/server/scripts/Kalimdor/azshara.cpp b/src/server/scripts/Kalimdor/azshara.cpp index d476b790a4a..8b9eef64f93 100644 --- a/src/server/scripts/Kalimdor/azshara.cpp +++ b/src/server/scripts/Kalimdor/azshara.cpp @@ -417,7 +417,7 @@ public: void SendText(int32 iTextEntry, Player* pPlayer) { - int loc_idx = pPlayer->GetSession()->GetSessionDbLocaleIndex(); + LocaleConstant loc_idx = pPlayer->GetSession()->GetSessionDbLocaleIndex(); const char* text = sObjectMgr.GetTrinityString(iTextEntry, loc_idx); sWorld.SendServerMessage(SERVER_MSG_STRING, text, pPlayer); } diff --git a/src/server/shared/Common.h b/src/server/shared/Common.h index e73e0d37073..d08ccaca86b 100644 --- a/src/server/shared/Common.h +++ b/src/server/shared/Common.h @@ -179,6 +179,7 @@ enum LocaleConstant }; const uint8 MAX_LOCALE = 9; +const LocaleConstant DEFAULT_LOCALE = LOCALE_enUS; extern char const* localeNames[MAX_LOCALE]; |
