diff options
author | Andrey Nazarov <skuller@skuller.net> | 2012-12-29 19:07:38 +0400 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2012-12-29 21:36:20 +0400 |
commit | 374033c5c75725218f04390859ccf73d120d5c2c (patch) | |
tree | 6c7f400e43b45f26ed2e894d36afb7c3f30b577d /src/client/parse.c | |
parent | 1e065662be8f46ffdd21ab2499f91921f4f0e9d1 (diff) |
Communicate ss_broadcast state to Q2PRO clients.
Disable message triggers when playing back MVD streams. Process MVD
spectator chat normally on the client so that ignore filters work.
Add new minor Q2PRO protocol version 1019.
Diffstat (limited to 'src/client/parse.c')
-rw-r--r-- | src/client/parse.c | 19 |
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); } |