- Apply parts of Ben Millwood's target bitfield patch (#3787)
- Fix Ryan's FIXME and have voip packet buffer on the server dynamically allocated via Z_Malloc and store pointers in a circular buffer - Improve voip target parsing on top of Ben Millwood's patch - Add new "spatial" target where speaker is spatialized in 3d space and can be heard by all clients in hearing range (s_alMaxDistance) (#4467) - Decrease voip sound lengths from 240ms to 80ms per voip packet to mitigate udp packet loss and decrease latency - Protocol version incremented to 71
This commit is contained in:
parent
41ac8a232a
commit
2349148cf1
19 changed files with 403 additions and 241 deletions
|
@ -3585,3 +3585,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;
|
||||
}
|
||||
|
|
|
@ -928,6 +928,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
|
||||
|
||||
/*
|
||||
==============================================================
|
||||
|
||||
|
|
|
@ -252,7 +252,7 @@ PROTOCOL
|
|||
==============================================================
|
||||
*/
|
||||
|
||||
#define PROTOCOL_VERSION 70
|
||||
#define PROTOCOL_VERSION 71
|
||||
#define PROTOCOL_LEGACY_VERSION 68
|
||||
// 1.31 - 67
|
||||
|
||||
|
@ -834,6 +834,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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue