diff options
Diffstat (limited to 'src/server/game/Texts/ChatTextBuilder.h')
-rw-r--r-- | src/server/game/Texts/ChatTextBuilder.h | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/src/server/game/Texts/ChatTextBuilder.h b/src/server/game/Texts/ChatTextBuilder.h index aeec413a245..df24bbed18e 100644 --- a/src/server/game/Texts/ChatTextBuilder.h +++ b/src/server/game/Texts/ChatTextBuilder.h @@ -19,14 +19,27 @@ #define __CHATTEXT_BUILDER_H #include "Common.h" +#include "ChatPackets.h" #include "SharedDefines.h" #include <string> +class Player; class WorldObject; +namespace Trinity +{ + template<typename Packet> + struct PacketSenderOwning; +} + namespace WorldPackets { class Packet; + + namespace Chat + { + class Chat; + } } namespace Trinity @@ -37,7 +50,7 @@ namespace Trinity BroadcastTextBuilder(WorldObject const* obj, ChatMsg msgType, uint32 textId, uint8 gender, WorldObject const* target = nullptr, uint32 achievementId = 0) : _source(obj), _msgType(msgType), _textId(textId), _gender(gender), _target(target), _achievementId(achievementId) { } - WorldPackets::Packet* operator()(LocaleConstant locale) const; + PacketSenderOwning<WorldPackets::Chat::Chat>* operator()(LocaleConstant locale) const; private: WorldObject const* _source; @@ -54,7 +67,7 @@ namespace Trinity CustomChatTextBuilder(WorldObject const* obj, ChatMsg msgType, std::string const& text, Language language = LANG_UNIVERSAL, WorldObject const* target = nullptr) : _source(obj), _msgType(msgType), _text(text), _language(language), _target(target) { } - WorldPackets::Packet* operator()(LocaleConstant locale) const; + PacketSenderOwning<WorldPackets::Chat::Chat>* operator()(LocaleConstant locale) const; private: WorldObject const* _source; @@ -70,7 +83,7 @@ namespace Trinity TrinityStringChatBuilder(WorldObject const* obj, ChatMsg msgType, uint32 textId, WorldObject const* target = nullptr, va_list* args = nullptr) : _source(obj), _msgType(msgType), _textId(textId), _target(target), _args(args) { } - WorldPackets::Packet* operator()(LocaleConstant locale) const; + PacketSenderOwning<WorldPackets::Chat::Chat>* operator()(LocaleConstant locale) const; private: WorldObject const* _source; @@ -79,6 +92,25 @@ namespace Trinity WorldObject const* _target; va_list* _args; }; + + class CreatureTextTextBuilder + { + public: + CreatureTextTextBuilder(WorldObject const* obj, WorldObject const* speaker, uint8 gender, ChatMsg msgtype, uint8 textGroup, uint32 id, Language language, WorldObject const* target) + : _source(obj), _talker(speaker), _gender(gender), _msgType(msgtype), _textGroup(textGroup), _textId(id), _language(language), _target(target) { } + + PacketSenderOwning<WorldPackets::Chat::Chat>* operator()(LocaleConstant locale) const; + + private: + WorldObject const* _source; + WorldObject const* _talker; + uint8 _gender; + ChatMsg _msgType; + uint8 _textGroup; + uint32 _textId; + Language _language; + WorldObject const* _target; + }; } // namespace Trinity |