mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-01-31 05:00:35 +00:00
Changed stufftext behavior so that commands are built up until a \n is
found at the end of the string. This works around a stupidity in some servers where stufftext commands are sent in pieces and might not reach the client before execution occurs, resulting in parse errors.
This commit is contained in:
parent
e34ab5541c
commit
ea3c2f0d78
1 changed files with 10 additions and 2 deletions
|
@ -54,6 +54,7 @@ static const char rcsid[] =
|
||||||
#include "QF/teamplay.h"
|
#include "QF/teamplay.h"
|
||||||
#include "QF/va.h"
|
#include "QF/va.h"
|
||||||
#include "QF/vfile.h"
|
#include "QF/vfile.h"
|
||||||
|
#include "QF/dstring.h"
|
||||||
|
|
||||||
#include "bothdefs.h"
|
#include "bothdefs.h"
|
||||||
#include "cl_ents.h"
|
#include "cl_ents.h"
|
||||||
|
@ -1128,6 +1129,7 @@ void
|
||||||
CL_ParseServerMessage (void)
|
CL_ParseServerMessage (void)
|
||||||
{
|
{
|
||||||
const char *s;
|
const char *s;
|
||||||
|
static dstring_t *stuffbuf;
|
||||||
int cmd, i, j;
|
int cmd, i, j;
|
||||||
|
|
||||||
received_framecount = host_framecount;
|
received_framecount = host_framecount;
|
||||||
|
@ -1208,9 +1210,15 @@ CL_ParseServerMessage (void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_stufftext:
|
case svc_stufftext:
|
||||||
|
if (!stuffbuf) stuffbuf = dstring_newstr();
|
||||||
s = MSG_ReadString (net_message);
|
s = MSG_ReadString (net_message);
|
||||||
Con_DPrintf ("stufftext: %s\n", s);
|
Con_DPrintf ("partial stufftext: %s\n", s);
|
||||||
Cbuf_AddTextTo (cmd_legacybuffer, s);
|
dstring_appendstr (stuffbuf, s);
|
||||||
|
if (stuffbuf->str[strlen(stuffbuf->str)-1] == '\n') {
|
||||||
|
Con_DPrintf ("stufftext: %s\n", stuffbuf->str);
|
||||||
|
Cbuf_AddTextTo (cmd_legacybuffer, stuffbuf->str);
|
||||||
|
dstring_clearstr (stuffbuf);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_damage:
|
case svc_damage:
|
||||||
|
|
Loading…
Reference in a new issue