aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2014_04_22_03_world_trinity_string.sql (renamed from sql/updates/world/2014_04_23_03_world_trinity_string.sql)0
-rw-r--r--sql/updates/world/2014_04_23_00_world_trinity_string.sql1
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.h6
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp42
-rw-r--r--src/server/game/Miscellaneous/Language.h9
-rw-r--r--src/server/game/Texts/CreatureTextMgr.cpp10
6 files changed, 33 insertions, 35 deletions
diff --git a/sql/updates/world/2014_04_23_03_world_trinity_string.sql b/sql/updates/world/2014_04_22_03_world_trinity_string.sql
index dae7fa90935..dae7fa90935 100644
--- a/sql/updates/world/2014_04_23_03_world_trinity_string.sql
+++ b/sql/updates/world/2014_04_22_03_world_trinity_string.sql
diff --git a/sql/updates/world/2014_04_23_00_world_trinity_string.sql b/sql/updates/world/2014_04_23_00_world_trinity_string.sql
new file mode 100644
index 00000000000..1cc88e53aae
--- /dev/null
+++ b/sql/updates/world/2014_04_23_00_world_trinity_string.sql
@@ -0,0 +1 @@
+DELETE FROM `trinity_string` WHERE `entry`=810;
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
index 1b35bcb229f..ac67fac0bfd 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
@@ -1312,12 +1312,6 @@ enum SmartCastFlags
SMARTCAST_COMBAT_MOVE = 0x40 //Prevents combat movement if cast successful. Allows movement on range, OOM, LOS
};
-enum BroadcastTextIds
-{
- BROADCAST_TEXT_CALL_FOR_HELP = 2541,
- BROADCAST_TEXT_FLEE_FOR_ASSIST = 1150
-};
-
// one line in DB is one event
struct SmartScriptHolder
{
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index a99da4050f6..5c7a4eb77b7 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -47,20 +47,24 @@ namespace Trinity
class AchievementChatBuilder
{
public:
- AchievementChatBuilder(Player const& player, ChatMsg msgtype, int32 textId, uint32 ach_id)
- : i_player(player), i_msgtype(msgtype), i_textId(textId), i_achievementId(ach_id) { }
+ AchievementChatBuilder(Player const* player, ChatMsg msgType, uint32 textId, uint32 achievementId)
+ : _player(player), _msgType(msgType), _textId(textId), _achievementId(achievementId) { }
- void operator()(WorldPacket& data, LocaleConstant loc_idx)
+ void operator()(WorldPacket& data, LocaleConstant locale)
{
- std::string text = sObjectMgr->GetTrinityString(i_textId, loc_idx);
- ChatHandler::BuildChatPacket(data, i_msgtype, LANG_UNIVERSAL, &i_player, &i_player, text, i_achievementId);
+ std::string text = "";
+ BroadcastText const* bct = sObjectMgr->GetBroadcastText(_textId);
+ if (bct)
+ ObjectMgr::GetLocaleString(_player->getGender() == GENDER_MALE ? bct->MaleText : bct->FemaleText, locale, text);
+
+ ChatHandler::BuildChatPacket(data, _msgType, LANG_UNIVERSAL, _player, _player, text, _achievementId);
}
private:
- Player const& i_player;
- ChatMsg i_msgtype;
- int32 i_textId;
- uint32 i_achievementId;
+ Player const* _player;
+ ChatMsg _msgType;
+ int32 _textId;
+ uint32 _achievementId;
};
} // namespace Trinity
@@ -660,9 +664,9 @@ void AchievementMgr::SendAchievementEarned(AchievementEntry const* achievement)
if (Guild* guild = sGuildMgr->GetGuildById(GetPlayer()->GetGuildId()))
{
- Trinity::AchievementChatBuilder say_builder(*GetPlayer(), CHAT_MSG_GUILD_ACHIEVEMENT, LANG_ACHIEVEMENT_EARNED, achievement->ID);
- Trinity::LocalizedPacketDo<Trinity::AchievementChatBuilder> say_do(say_builder);
- guild->BroadcastWorker(say_do, GetPlayer());
+ Trinity::AchievementChatBuilder _builder(GetPlayer(), CHAT_MSG_GUILD_ACHIEVEMENT, BROADCAST_TEXT_ACHIEVEMENT_EARNED, achievement->ID);
+ Trinity::LocalizedPacketDo<Trinity::AchievementChatBuilder> _localizer(_builder);
+ guild->BroadcastWorker(_localizer, GetPlayer());
}
if (achievement->flags & (ACHIEVEMENT_FLAG_REALM_FIRST_KILL | ACHIEVEMENT_FLAG_REALM_FIRST_REACH))
@@ -678,16 +682,10 @@ void AchievementMgr::SendAchievementEarned(AchievementEntry const* achievement)
// if player is in world he can tell his friends about new achievement
else if (GetPlayer()->IsInWorld())
{
- CellCoord p = Trinity::ComputeCellCoord(GetPlayer()->GetPositionX(), GetPlayer()->GetPositionY());
-
- Cell cell(p);
- cell.SetNoCreate();
-
- Trinity::AchievementChatBuilder say_builder(*GetPlayer(), CHAT_MSG_ACHIEVEMENT, LANG_ACHIEVEMENT_EARNED, achievement->ID);
- Trinity::LocalizedPacketDo<Trinity::AchievementChatBuilder> say_do(say_builder);
- Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::AchievementChatBuilder> > say_worker(GetPlayer(), sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY), say_do);
- TypeContainerVisitor<Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::AchievementChatBuilder> >, WorldTypeMapContainer > message(say_worker);
- cell.Visit(p, message, *GetPlayer()->GetMap(), *GetPlayer(), sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY));
+ Trinity::AchievementChatBuilder _builder(GetPlayer(), CHAT_MSG_ACHIEVEMENT, BROADCAST_TEXT_ACHIEVEMENT_EARNED, achievement->ID);
+ Trinity::LocalizedPacketDo<Trinity::AchievementChatBuilder> _localizer(_builder);
+ Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::AchievementChatBuilder> > _worker(GetPlayer(), sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY), _localizer);
+ GetPlayer()->VisitNearbyWorldObject(sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY), _worker);
}
WorldPacket data(SMSG_ACHIEVEMENT_EARNED, 8+4+8);
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index eaa89c17a4f..51ce8250f89 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -19,6 +19,13 @@
#ifndef __TRINITY_LANGUAGE_H
#define __TRINITY_LANGUAGE_H
+enum BroadcastTextIds
+{
+ BROADCAST_TEXT_ACHIEVEMENT_EARNED = 29245,
+ BROADCAST_TEXT_CALL_FOR_HELP = 2541,
+ BROADCAST_TEXT_FLEE_FOR_ASSIST = 1150
+};
+
enum TrinityStrings
{
// for chat commands
@@ -753,7 +760,7 @@ enum TrinityStrings
LANG_NEED_CHARACTER_NAME = 807,
LANG_PLAYER_NOT_EXIST_OR_OFFLINE = 808,
LANG_ACCOUNT_FOR_PLAYER_NOT_FOUND = 809,
- LANG_ACHIEVEMENT_EARNED = 810,
+ // unused = 810,
LANG_GUILD_MASTER = 811,
LANG_GUILD_OFFICER = 812,
LANG_GUILD_VETERAN = 813,
diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp
index b7cc47642c0..dd790cf9072 100644
--- a/src/server/game/Texts/CreatureTextMgr.cpp
+++ b/src/server/game/Texts/CreatureTextMgr.cpp
@@ -29,9 +29,7 @@ class CreatureTextBuilder
{
public:
CreatureTextBuilder(WorldObject const* obj, ChatMsg msgtype, uint8 textGroup, uint32 id, uint32 language, WorldObject const* target)
- : _source(obj), _msgType(msgtype), _textGroup(textGroup), _textId(id), _language(language), _target(target)
- {
- }
+ : _source(obj), _msgType(msgtype), _textGroup(textGroup), _textId(id), _language(language), _target(target) { }
size_t operator()(WorldPacket* data, LocaleConstant locale) const
{
@@ -40,6 +38,7 @@ class CreatureTextBuilder
return ChatHandler::BuildChatPacket(*data, _msgType, Language(_language), _source, _target, text, 0, "", locale);
}
+ private:
WorldObject const* _source;
ChatMsg _msgType;
uint8 _textGroup;
@@ -52,9 +51,7 @@ class PlayerTextBuilder
{
public:
PlayerTextBuilder(WorldObject const* obj, WorldObject const* speaker, ChatMsg msgtype, uint8 textGroup, uint32 id, uint32 language, WorldObject const* target)
- : _source(obj), _talker(speaker), _msgType(msgtype), _textGroup(textGroup), _textId(id), _language(language), _target(target)
- {
- }
+ : _source(obj), _talker(speaker), _msgType(msgtype), _textGroup(textGroup), _textId(id), _language(language), _target(target) { }
size_t operator()(WorldPacket* data, LocaleConstant locale) const
{
@@ -63,6 +60,7 @@ class PlayerTextBuilder
return ChatHandler::BuildChatPacket(*data, _msgType, Language(_language), _talker, _target, text, 0, "", locale);
}
+ private:
WorldObject const* _source;
WorldObject const* _talker;
ChatMsg _msgType;