aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorDDuarte <dnpd.dd@gmail.com>2014-09-13 13:55:17 +0100
committerDDuarte <dnpd.dd@gmail.com>2014-09-13 13:55:17 +0100
commitb9b2a87d42740e97dd047369d98c74bd18e11773 (patch)
tree20b1efa3ca05f7dfaceb8b5405ff167b482d24ff /src/server/game/Entities/Object
parent08bbe41dedc39b913a154a4eb4d0954a8731b2dd (diff)
parentdbbc5bfb506b9b7091664e2c8efb9b92bf41c6cf (diff)
Merge remote-tracking branch 'origin/master' into 4.3.4
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 7e7aacd942a..290895de217 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -2081,8 +2081,17 @@ namespace Trinity
: i_object(obj), i_msgtype(msgtype), i_textId(textId), i_language(Language(language)), i_target(target) { }
void operator()(WorldPacket& data, LocaleConstant loc_idx)
{
- char const* text = sObjectMgr->GetTrinityString(i_textId, loc_idx);
- ChatHandler::BuildChatPacket(data, i_msgtype, i_language, i_object, i_target, text, 0, "", loc_idx);
+ if (BroadcastText const* broadcastText = sObjectMgr->GetBroadcastText(i_textId))
+ {
+ uint8 gender = GENDER_MALE;
+ if (Unit const* unit = i_object->ToUnit())
+ gender = unit->getGender();
+
+ std::string text = broadcastText->GetText(loc_idx, gender);
+ ChatHandler::BuildChatPacket(data, i_msgtype, i_language, i_object, i_target, text, 0, "", loc_idx);
+ }
+ else
+ TC_LOG_ERROR("entities.unit", "MonsterChatBuilder: `broadcast_text` id %i missing", i_textId);
}
private:
@@ -2207,10 +2216,15 @@ void WorldObject::MonsterWhisper(int32 textId, Player const* target, bool IsBoss
if (!target)
return;
+ uint8 gender = GENDER_MALE;
+ if (Unit const* unit = ToUnit())
+ gender = unit->getGender();
+
LocaleConstant loc_idx = target->GetSession()->GetSessionDbLocaleIndex();
- char const* text = sObjectMgr->GetTrinityString(textId, loc_idx);
+ BroadcastText const* broadcastText = sObjectMgr->GetBroadcastText(textId);
+ std::string text = broadcastText->GetText(loc_idx, gender);
WorldPacket data;
- ChatHandler::BuildChatPacket(data, IsBossWhisper ? CHAT_MSG_RAID_BOSS_WHISPER : CHAT_MSG_MONSTER_WHISPER, LANG_UNIVERSAL, this, target, text, 0, "", loc_idx);
+ ChatHandler::BuildChatPacket(data, IsBossWhisper ? CHAT_MSG_RAID_BOSS_WHISPER : CHAT_MSG_MONSTER_WHISPER, LANG_UNIVERSAL, this, target, text.c_str(), 0, "", loc_idx);
target->GetSession()->SendPacket(&data);
}