struct FuncShout
{
const char * m_str;
BYTE m_bEmpire;
FuncShout(const char * str, BYTE bEmpire) : m_str(str), m_bEmpire(bEmpire)
{
}
void operator () (LPDESC d)
{
// ADDED GLOBAL SHOUT OPTION
if (!d->GetCharacter())
return;
if(!g_bGlobalShoutEnable && (d->GetCharacter()->GetGMLevel() == GM_PLAYER && d->GetEmpire() != m_bEmpire))
return;
d->GetCharacter()->ChatPacket(CHAT_TYPE_SHOUT, "%s", m_str);
}
};
void SendShout(const char * szText, BYTE bEmpire)
{
const DESC_MANAGER::DESC_SET & c_ref_set = DESC_MANAGER::instance().GetClientSet();
std::for_each(c_ref_set.begin(), c_ref_set.end(), FuncShout(szText, bEmpire));
}
void CInputP2P::Shout(const char * c_pData)
{
TPacketGGShout * p = (TPacketGGShout *) c_pData;
SendShout(p->szText, p->bEmpire);
}