From e122462ae8919b8d4aa53a63a5ab5fa128a0a0e8 Mon Sep 17 00:00:00 2001 From: Learath Date: Wed, 24 Jun 2020 18:50:22 +0300 Subject: [PATCH] Ugly fix for SendChatTarget(-1...). Closes #2337 --- src/game/server/gamecontext.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/game/server/gamecontext.cpp b/src/game/server/gamecontext.cpp index 46ca4a07d..9e03b5060 100644 --- a/src/game/server/gamecontext.cpp +++ b/src/game/server/gamecontext.cpp @@ -335,18 +335,31 @@ void CGameContext::CallVote(int ClientID, const char *pDesc, const char *pCmd, c void CGameContext::SendChatTarget(int To, const char *pText, int Flags) { - if(!((Server()->IsSixup(To) && (Flags & CHAT_SIXUP)) || - (!Server()->IsSixup(To) && (Flags & CHAT_SIX)))) - return; - CNetMsg_Sv_Chat Msg; Msg.m_Team = 0; Msg.m_ClientID = -1; Msg.m_pMessage = pText; - if(g_Config.m_SvDemoChat) - Server()->SendPackMsg(&Msg, MSGFLAG_VITAL, To); + + const int MsgFlags = g_Config.m_SvDemoChat ? MSGFLAG_VITAL : MSGFLAG_VITAL|MSGFLAG_NORECORD; + if(To == -1) + { + for(int i = 0; i < MAX_CLIENTS; i++) + { + if(!((Server()->IsSixup(i) && (Flags & CHAT_SIXUP)) || + (!Server()->IsSixup(i) && (Flags & CHAT_SIX)))) + continue; + + Server()->SendPackMsg(&Msg, MsgFlags, i); + } + } else - Server()->SendPackMsg(&Msg, MSGFLAG_VITAL|MSGFLAG_NORECORD, To); + { + if(!((Server()->IsSixup(To) && (Flags & CHAT_SIXUP)) || + (!Server()->IsSixup(To) && (Flags & CHAT_SIX)))) + return; + + Server()->SendPackMsg(&Msg, MsgFlags, To); + } } void CGameContext::SendChatTeam(int Team, const char *pText)