From 23af5dcaf1609dad6a757df87c25b46cceddec43 Mon Sep 17 00:00:00 2001 From: mittorn Date: Wed, 30 Jan 2019 13:56:08 +0700 Subject: [PATCH] In-game fragment size setting --- engine/server/sv_client.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/engine/server/sv_client.c b/engine/server/sv_client.c index ea4366d9..4773f044 100644 --- a/engine/server/sv_client.c +++ b/engine/server/sv_client.c @@ -97,6 +97,7 @@ int SV_GetFragmentSize( void *pcl, fragsize_t mode ) if( mode == FRAGSIZE_UNRELIABLE ) { + // allow setting unreliable limit with "setinfo cl_urmax" cl_frag_size = Q_atoi( Info_ValueForKey( cl->userinfo, "cl_urmax" )); if( cl_frag_size == 0 ) return NET_MAX_MESSAGE; @@ -109,9 +110,17 @@ int SV_GetFragmentSize( void *pcl, fragsize_t mode ) if( mode != FRAGSIZE_FRAG ) return cl_frag_size; - // add window for unreliable + // get in-game fragmentation size if( cl->state == cs_spawned ) - cl_frag_size /= 2; + { + // allow setting in-game fragsize with "setinfo cl_frmax" + int frmax = Q_atoi( Info_ValueForKey( cl->userinfo, "cl_frmax" )); + + if( frmax < FRAGMENT_MIN_SIZE || frmax > FRAGMENT_MAX_SIZE ) + cl_frag_size = frmax; + else + cl_frag_size /= 2;// add window for unreliable + } return cl_frag_size - HEADER_BYTES; }