summaryrefslogtreecommitdiff
path: root/src/client/cl_net_chan.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/cl_net_chan.c')
-rw-r--r--src/client/cl_net_chan.c32
1 files changed, 27 insertions, 5 deletions
diff --git a/src/client/cl_net_chan.c b/src/client/cl_net_chan.c
index fbfc4dc9..0d057d1d 100644
--- a/src/client/cl_net_chan.c
+++ b/src/client/cl_net_chan.c
@@ -25,6 +25,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "../qcommon/qcommon.h"
#include "client.h"
+#ifdef LEGACY_PROTOCOL
/*
==============
CL_Netchan_Encode
@@ -126,14 +127,22 @@ static void CL_Netchan_Decode( msg_t *msg ) {
*(msg->data + i) = *(msg->data + i) ^ key;
}
}
+#endif
/*
=================
CL_Netchan_TransmitNextFragment
=================
*/
-void CL_Netchan_TransmitNextFragment( netchan_t *chan ) {
- Netchan_TransmitNextFragment( chan );
+qboolean CL_Netchan_TransmitNextFragment(netchan_t *chan)
+{
+ if(chan->unsentFragments)
+ {
+ Netchan_TransmitNextFragment(chan);
+ return qtrue;
+ }
+
+ return qfalse;
}
/*
@@ -144,8 +153,18 @@ CL_Netchan_Transmit
void CL_Netchan_Transmit( netchan_t *chan, msg_t* msg ) {
MSG_WriteByte( msg, clc_EOF );
- CL_Netchan_Encode( msg );
- Netchan_Transmit( chan, msg->cursize, msg->data );
+#ifdef LEGACY_PROTOCOL
+ if(chan->compat)
+ CL_Netchan_Encode(msg);
+#endif
+
+ Netchan_Transmit(chan, msg->cursize, msg->data);
+
+ // Transmit all fragments without delay
+ while(CL_Netchan_TransmitNextFragment(chan))
+ {
+ Com_DPrintf("WARNING: #462 unsent fragments (not supposed to happen!)\n");
+ }
}
/*
@@ -160,7 +179,10 @@ qboolean CL_Netchan_Process( netchan_t *chan, msg_t *msg ) {
if (!ret)
return qfalse;
- CL_Netchan_Decode( msg );
+#ifdef LEGACY_PROTOCOL
+ if(chan->compat)
+ CL_Netchan_Decode(msg);
+#endif
return qtrue;
}