summaryrefslogtreecommitdiff
path: root/src/qcommon
diff options
context:
space:
mode:
Diffstat (limited to 'src/qcommon')
-rw-r--r--src/qcommon/common.c30
-rw-r--r--src/qcommon/q_shared.h17
-rw-r--r--src/qcommon/qcommon.h2
3 files changed, 49 insertions, 0 deletions
diff --git a/src/qcommon/common.c b/src/qcommon/common.c
index 0a4e7eba..c6feee42 100644
--- a/src/qcommon/common.c
+++ b/src/qcommon/common.c
@@ -3422,3 +3422,33 @@ void Com_RandomBytes( byte *string, int len )
string[i] = (unsigned char)( rand() % 255 );
}
+
+/*
+==================
+Com_IsVoipTarget
+
+Returns non-zero if given clientNum is enabled in voipTargets, zero otherwise.
+If clientNum is negative return if any bit is set.
+==================
+*/
+qboolean Com_IsVoipTarget(uint8_t *voipTargets, int voipTargetsSize, int clientNum)
+{
+ int index;
+ if(clientNum < 0)
+ {
+ for(index = 0; index < voipTargetsSize; index++)
+ {
+ if(voipTargets[index])
+ return qtrue;
+ }
+
+ return qfalse;
+ }
+
+ index = clientNum >> 3;
+
+ if(index < voipTargetsSize)
+ return (voipTargets[index] & (1 << (clientNum & 0x07)));
+
+ return qfalse;
+}
diff --git a/src/qcommon/q_shared.h b/src/qcommon/q_shared.h
index d0977d99..189d1751 100644
--- a/src/qcommon/q_shared.h
+++ b/src/qcommon/q_shared.h
@@ -989,6 +989,23 @@ typedef struct {
char string[MAX_CVAR_VALUE_STRING];
} vmCvar_t;
+
+/*
+==============================================================
+
+VoIP
+
+==============================================================
+*/
+
+// if you change the count of flags be sure to also change VOIP_FLAGNUM
+#define VOIP_SPATIAL 0x01 // spatialized voip message
+#define VOIP_DIRECT 0x02 // non-spatialized voip message
+
+// number of flags voip knows. You will have to bump protocol version number if you
+// change this.
+#define VOIP_FLAGCNT 2
+
/*
==============================================================
diff --git a/src/qcommon/qcommon.h b/src/qcommon/qcommon.h
index 035d98b1..f761b134 100644
--- a/src/qcommon/qcommon.h
+++ b/src/qcommon/qcommon.h
@@ -812,6 +812,8 @@ int Com_RealTime(qtime_t *qtime);
qboolean Com_SafeMode( void );
void Com_RunAndTimeServerPacket(netadr_t *evFrom, msg_t *buf);
+qboolean Com_IsVoipTarget(uint8_t *voipTargets, int voipTargetsSize, int clientNum);
+
void Com_StartupVariable( const char *match );
// checks for and removes command line "+set var arg" constructs
// if match is NULL, all set commands will be executed, otherwise