6#ifndef SKYFIRE_CREATURE_TEXT_MGR_H
7#define SKYFIRE_CREATURE_TEXT_MGR_H
90 template<
class Builder>
104#define sCreatureTextMgr Skyfire::Singleton<CreatureTextMgr, Skyfire::NullMutex>::instance()
106template<
class Builder>
129 size_t whisperGUIDpos;
135 whisperGUIDpos =
_builder(messageTemplate, loc_idx);
137 _packetCache[loc_idx] =
new std::pair<WorldPacket*, size_t>(messageTemplate, whisperGUIDpos);
165template<
class Builder>
199 if (itr->GetSource()->GetAreaId() == areaId && (!team ||
Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
200 localizer(itr->GetSource());
208 if (itr->GetSource()->GetZoneId() == zoneId && (!team ||
Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
209 localizer(itr->GetSource());
216 if ((!team ||
Team(itr->GetSource()->GetTeam()) == team) && (!gmOnly || itr->GetSource()->IsGameMaster()))
217 localizer(itr->GetSource());
223 for (SessionMap::const_iterator iter = smap.begin(); iter != smap.end(); ++iter)
225 if (player->GetSession() && (!team ||
Team(player->GetTeam()) == team) && (!gmOnly || player->IsGameMaster()))
const uint8 TOTAL_LOCALES
std::vector< std::string > StringVector
UNORDERED_MAP< uint32, CreatureTextHolder > CreatureTextMap
UNORDERED_MAP< uint8, CreatureTextRepeatIds > CreatureTextRepeatGroup
std::vector< uint8 > CreatureTextRepeatIds
UNORDERED_MAP< uint64, CreatureTextRepeatGroup > CreatureTextRepeatMap
UNORDERED_MAP< uint8, CreatureTextGroup > CreatureTextHolder
std::vector< CreatureTextEntry > CreatureTextGroup
std::map< CreatureTextId, CreatureTextLocale > LocaleCreatureTextMap
@ CHAT_MSG_RAID_BOSS_WHISPER
@ CHAT_MSG_MONSTER_WHISPER
void put(size_t pos, T value)
CreatureTextLocalizer(Builder const &builder, ChatMsg msgType)
void operator()(Player *player)
std::vector< std::pair< WorldPacket *, size_t > * > _packetCache
LocaleCreatureTextMap mLocaleTextMap
std::string GetLocalizedChatString(uint32 entry, uint8 textGroup, uint32 id, LocaleConstant locale) const
uint32 SendChat(Creature *source, uint8 textGroup, WorldObject const *whisperTarget=NULL, ChatMsg msgType=ChatMsg::CHAT_MSG_ADDON, Language language=Language::LANG_ADDON, CreatureTextRange range=TEXT_RANGE_NORMAL, uint32 sound=0, Team team=TEAM_OTHER, bool gmOnly=false, Player *srcPlr=NULL)
void SetRepeatId(Creature *source, uint8 textGroup, uint8 id)
CreatureTextMap const & GetTextMap() const
void LoadCreatureTextLocales()
CreatureTextRepeatMap mTextRepeatMap
void SendEmote(Unit *source, uint32 emote)
bool TextExist(uint32 sourceEntry, uint8 textGroup)
CreatureTextRepeatIds GetRepeatGroup(Creature *source, uint8 textGroup)
void SendNonChatPacket(WorldObject *source, WorldPacket *data, ChatMsg msgType, WorldObject const *whisperTarget, CreatureTextRange range, Team team, bool gmOnly) const
void SendSound(Creature *source, uint32 sound, ChatMsg msgType, WorldObject const *whisperTarget, CreatureTextRange range, Team team, bool gmOnly)
float GetRangeForChatType(ChatMsg msgType) const
void SendChatPacket(WorldObject *source, Builder const &builder, ChatMsg msgType, WorldObject const *whisperTarget=NULL, CreatureTextRange range=TEXT_RANGE_NORMAL, Team team=TEAM_OTHER, bool gmOnly=false) const
PlayerList const & GetPlayers() const
LinkedListHead::Iterator< MapReference const > const_iterator
void SendDirectMessage(WorldPacket *data)
WorldSession * GetSession() const
static Player * GetPlayer(WorldObject &object, uint64 guid)
void VisitNearbyWorldObject(float const &radius, NOTIFIER ¬ifier) const
LocaleConstant GetSessionDbLocaleIndex() const
UNORDERED_MAP< uint32, WorldSession * > SessionMap
bool operator<(CreatureTextId const &right) const
CreatureTextId(uint32 e, uint32 g, uint32 i)