diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-09-13 22:38:25 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-09-13 22:38:25 +0200 |
| commit | ca3961f9875608bd02ba42445f165a02002444f8 (patch) | |
| tree | 419c54ec37303a5639f33180e507230d8cb50f1b /src/server/game/Texts | |
| parent | 524788712a879d26428b3c7f2b56765e4099f5ff (diff) | |
| parent | d9fdbb06e48dd5b384cf9a8b58289c3ccf7b8731 (diff) | |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/game/Achievements/AchievementMgr.cpp
src/server/game/Entities/Object/Object.cpp
src/server/game/Entities/Player/Player.cpp
src/server/game/Entities/Player/Player.h
src/server/game/Entities/Unit/Unit.h
src/server/game/Handlers/ChatHandler.cpp
src/server/game/Spells/SpellEffects.cpp
src/server/scripts/Commands/cs_wp.cpp
src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp
src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
Diffstat (limited to 'src/server/game/Texts')
| -rw-r--r-- | src/server/game/Texts/ChatTextBuilder.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/server/game/Texts/ChatTextBuilder.h b/src/server/game/Texts/ChatTextBuilder.h new file mode 100644 index 00000000000..72f80bb07a3 --- /dev/null +++ b/src/server/game/Texts/ChatTextBuilder.h @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __CHATTEXT_BUILDER_H +#define __CHATTEXT_BUILDER_H + +#include "Chat.h" +#include "ObjectMgr.h" + +namespace Trinity +{ + class BroadcastTextBuilder + { + public: + BroadcastTextBuilder(Unit const* obj, ChatMsg msgType, uint32 textId, WorldObject const* target = nullptr, uint32 achievementId = 0) + : _source(obj), _msgType(msgType), _textId(textId), _target(target), _achievementId(achievementId) { } + + void operator()(WorldPacket& data, LocaleConstant locale) + { + BroadcastText const* bct = sObjectMgr->GetBroadcastText(_textId); + ChatHandler::BuildChatPacket(data, _msgType, bct ? Language(bct->Language) : LANG_UNIVERSAL, _source, _target, bct ? bct->GetText(locale, _source->getGender()) : "", _achievementId, "", locale); + } + + size_t operator()(WorldPacket* data, LocaleConstant locale) const + { + BroadcastText const* bct = sObjectMgr->GetBroadcastText(_textId); + return ChatHandler::BuildChatPacket(*data, _msgType, bct ? Language(bct->Language) : LANG_UNIVERSAL, _source, _target, bct ? bct->GetText(locale, _source->getGender()) : "", _achievementId, "", locale); + } + + private: + Unit const* _source; + ChatMsg _msgType; + uint32 _textId; + WorldObject const* _target; + uint32 _achievementId; + }; + + class CustomChatTextBuilder + { + public: + 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) { } + + void operator()(WorldPacket& data, LocaleConstant locale) + { + ChatHandler::BuildChatPacket(data, _msgType, _language, _source, _target, _text, 0, "", locale); + } + + private: + WorldObject const* _source; + ChatMsg _msgType; + std::string _text; + Language _language; + WorldObject const* _target; + }; +} +// namespace Trinity + +#endif // __CHATTEXT_BUILDER_H |
