summaryrefslogtreecommitdiff
path: root/src/client/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/parse.c')
-rw-r--r--src/client/parse.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/client/parse.c b/src/client/parse.c
index bbff5c7..29bc8d2 100644
--- a/src/client/parse.c
+++ b/src/client/parse.c
@@ -545,6 +545,9 @@ static void CL_ParseServerData(void)
cl.framediv = 1;
#endif
+ // setup default server state
+ cl.serverstate = ss_game;
+
if (cls.serverProtocol == PROTOCOL_VERSION_R1Q2) {
i = MSG_ReadByte();
if (i) {
@@ -583,7 +586,11 @@ static void CL_ParseServerData(void)
}
Com_DPrintf("Using minor Q2PRO protocol version %d\n", i);
cls.protocolVersion = i;
- MSG_ReadByte(); // used to be gametype
+ i = MSG_ReadByte();
+ if (cls.protocolVersion >= PROTOCOL_VERSION_Q2PRO_SERVER_STATE) {
+ Com_DPrintf("Q2PRO server state %d\n", i);
+ cl.serverstate = i;
+ }
i = MSG_ReadByte();
if (i) {
Com_DPrintf("Q2PRO strafejump hack enabled\n");
@@ -931,7 +938,7 @@ static void CL_ParsePrint(void)
if (level != PRINT_CHAT) {
Com_Printf("%s", s);
- if (!cls.demo.playback) {
+ if (!cls.demo.playback && cl.serverstate != ss_broadcast) {
COM_strclr(s);
Cmd_ExecTrigger(s);
}
@@ -943,7 +950,7 @@ static void CL_ParsePrint(void)
}
#if USE_AUTOREPLY
- if (!cls.demo.playback) {
+ if (!cls.demo.playback && cl.serverstate != ss_broadcast) {
CL_CheckForVersion(s);
}
#endif
@@ -971,6 +978,10 @@ static void CL_ParsePrint(void)
SCR_AddToChatHUD(s);
#endif
+ // silence MVD spectator chat
+ if (cl.serverstate == ss_broadcast && !strncmp(s, "[MVD] ", 6))
+ return;
+
// play sound
if (cl_chat_sound->integer > 1)
S_StartLocalSound_("misc/talk1.wav");
@@ -986,7 +997,7 @@ static void CL_ParseCenterPrint(void)
SHOWNET(2, " \"%s\"\n", s);
SCR_CenterPrint(s);
- if (!cls.demo.playback) {
+ if (!cls.demo.playback && cl.serverstate != ss_broadcast) {
COM_strclr(s);
Cmd_ExecTrigger(s);
}