engine: client: implement GoldSrc fragment size limits
This commit is contained in:
parent
12edd782c6
commit
9f6372b305
1 changed files with 22 additions and 4 deletions
|
@ -204,15 +204,33 @@ static void CL_CheckClientState( void )
|
||||||
|
|
||||||
int CL_GetFragmentSize( void *unused, fragsize_t mode )
|
int CL_GetFragmentSize( void *unused, fragsize_t mode )
|
||||||
{
|
{
|
||||||
if( mode == FRAGSIZE_SPLIT )
|
if( cls.legacymode == PROTO_GOLDSRC )
|
||||||
return 0;
|
{
|
||||||
|
switch( mode )
|
||||||
|
{
|
||||||
|
case FRAGSIZE_SPLIT:
|
||||||
|
return 1200; // MAX_RELIABLE_PAYLOAD
|
||||||
|
case FRAGSIZE_UNRELIABLE:
|
||||||
|
return 1400; // MAX_ROUTABLE_PACKET
|
||||||
|
case FRAGSIZE_FRAG:
|
||||||
|
if( cls.state == ca_active )
|
||||||
|
return bound( 16, cl_dlmax.value, 1024 );
|
||||||
|
return 128;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if( mode == FRAGSIZE_UNRELIABLE )
|
switch( mode )
|
||||||
|
{
|
||||||
|
case FRAGSIZE_SPLIT:
|
||||||
|
return 0;
|
||||||
|
case FRAGSIZE_UNRELIABLE:
|
||||||
return NET_MAX_MESSAGE;
|
return NET_MAX_MESSAGE;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if( Netchan_IsLocal( &cls.netchan ))
|
if( Netchan_IsLocal( &cls.netchan ))
|
||||||
return FRAGMENT_LOCAL_SIZE;
|
return FRAGMENT_LOCAL_SIZE;
|
||||||
|
|
||||||
return cl_upmax.value;
|
return cl_upmax.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue