aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Texts/ChatTextBuilder.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-05-01 20:16:10 +0200
committerShauren <shauren.trinity@gmail.com>2021-05-01 20:16:10 +0200
commitfb66575d38d2ba7ffc24c29824fa75d7019de549 (patch)
tree9b263e8914862f92d5e6f2fc23450a2f973df461 /src/server/game/Texts/ChatTextBuilder.h
parentd6dfb6c54c3296461ec73ea5d969f7a5a704541b (diff)
Core/Grids: Move packet sending functionality out of MessageDistDeliverer and into separate, customizable class and unify LocalizedPacketDo, LocalizedPacketListDo as generic localizable action
Diffstat (limited to 'src/server/game/Texts/ChatTextBuilder.h')
-rw-r--r--src/server/game/Texts/ChatTextBuilder.h38
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