r1374 - trunk/code/client

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Jun 7 10:40:30 EDT 2008


Author: icculus
Date: 2008-06-07 10:40:30 -0400 (Sat, 07 Jun 2008)
New Revision: 1374

Modified:
   trunk/code/client/cl_input.c
Log:
VoIP: Only update from cl_voipSendTarget if sending data.


Modified: trunk/code/client/cl_input.c
===================================================================
--- trunk/code/client/cl_input.c	2008-06-07 14:39:49 UTC (rev 1373)
+++ trunk/code/client/cl_input.c	2008-06-07 14:40:30 UTC (rev 1374)
@@ -759,34 +759,35 @@
 	}
 
 	#if USE_VOIP
-	// Move cl_voipSendTarget from a string to a
-	if (cl_voipSendTarget->modified) {
-		const char *target = cl_voipSendTarget->string;
-		if ((*target == '\0') || (Q_stricmp(target, "all") == 0)) {
-			clc.voipTarget1 = clc.voipTarget2 = clc.voipTarget3 = 0x7FFFFFFF;
-		} else if (Q_stricmp(target, "none") == 0) {
-			clc.voipTarget1 = clc.voipTarget2 = clc.voipTarget3 = 0;
-		} else {
-			clc.voipTarget1 = clc.voipTarget2 = clc.voipTarget3 = 0;
-			const char *ptr = target;
-			do {
-				if ((*ptr == ',') || (*ptr == '\0')) {
-					const int val = atoi(target);
-					target = ptr + 1;
-					if ((val >= 0) && (val < 31)) {
-						clc.voipTarget1 |= (1 << (val-0));
-					} else if ((val >= 31) && (val < 62)) {
-						clc.voipTarget2 |= (1 << (val-31));
-					} else if ((val >= 62) && (val < 93)) {
-						clc.voipTarget3 |= (1 << (val-62));
+	if (clc.voipOutgoingDataSize > 0) {  // only send if data.
+		// Move cl_voipSendTarget from a string to the bitmasks if needed.
+		if (cl_voipSendTarget->modified) {
+			const char *target = cl_voipSendTarget->string;
+			if ((*target == '\0') || (Q_stricmp(target, "all") == 0)) {
+				const int all = 0x7FFFFFFF;
+				clc.voipTarget1 = clc.voipTarget2 = clc.voipTarget3 = all;
+			} else if (Q_stricmp(target, "none") == 0) {
+				clc.voipTarget1 = clc.voipTarget2 = clc.voipTarget3 = 0;
+			} else {
+				clc.voipTarget1 = clc.voipTarget2 = clc.voipTarget3 = 0;
+				const char *ptr = target;
+				do {
+					if ((*ptr == ',') || (*ptr == '\0')) {
+						const int val = atoi(target);
+						target = ptr + 1;
+						if ((val >= 0) && (val < 31)) {
+							clc.voipTarget1 |= (1 << (val-0));
+						} else if ((val >= 31) && (val < 62)) {
+							clc.voipTarget2 |= (1 << (val-31));
+						} else if ((val >= 62) && (val < 93)) {
+							clc.voipTarget3 |= (1 << (val-62));
+						}
 					}
-				}
-			} while (*(ptr++));
+				} while (*(ptr++));
+			}
+			cl_voipSendTarget->modified = qfalse;
 		}
-		cl_voipSendTarget->modified = qfalse;
-	}
 
-	if (clc.voipOutgoingDataSize > 0) {  // only send if data.
 		MSG_WriteByte (&buf, clc_EOF);  // placate legacy servers.
 		MSG_WriteByte (&buf, clc_extension);
 		MSG_WriteByte (&buf, clc_voip);




More information about the quake3-commits mailing list