diff --git a/src/common/header/shared.h b/src/common/header/shared.h index 2528bd58..bfd958b3 100644 --- a/src/common/header/shared.h +++ b/src/common/header/shared.h @@ -80,9 +80,9 @@ typedef unsigned char byte; #define YAW 1 /* left / right */ #define ROLL 2 /* fall over */ -#define MAX_STRING_CHARS 1024 /* max length of a string passed to Cmd_TokenizeString */ +#define MAX_STRING_CHARS 2048 /* max length of a string passed to Cmd_TokenizeString */ #define MAX_STRING_TOKENS 80 /* max tokens resulting from Cmd_TokenizeString */ -#define MAX_TOKEN_CHARS 128 /* max length of an individual token */ +#define MAX_TOKEN_CHARS 1024 /* max length of an individual token */ #define MAX_QPATH 64 /* max length of a quake game pathname */ diff --git a/src/server/header/server.h b/src/server/header/server.h index fd802e5c..4a5ae67e 100644 --- a/src/server/header/server.h +++ b/src/server/header/server.h @@ -39,6 +39,13 @@ out before legitimate users connected */ #define MAX_CHALLENGES 1024 +/* MAX_TOKEN_CHARS was 128. YQ2 bumped it to 1024, since we + * need to support some very long cvars like gl_nolerp_list. + * Keep structs used in savegames at 128, otherwise older + * savegames would be broken. */ +#define MAX_SAVE_TOKEN_CHARS 128 + + #define SV_OUTPUTBUF_LENGTH (MAX_MSGLEN - 16) #define EDICT_NUM(n) ((edict_t *)((byte *)ge->edicts + ge->edict_size * (n))) #define NUM_FOR_EDICT(e) (((byte *)(e) - (byte *)ge->edicts) / ge->edict_size) @@ -152,7 +159,7 @@ typedef struct qboolean initialized; /* sv_init has completed */ int realtime; /* always increasing, no clamping, etc */ - char mapcmd[MAX_TOKEN_CHARS]; /* ie: *intro.cin+base */ + char mapcmd[MAX_SAVE_TOKEN_CHARS]; /* ie: *intro.cin+base */ int spawncount; /* incremented each server start */ /* used to check late spawns */ diff --git a/src/server/sv_save.c b/src/server/sv_save.c index 70abb879..776a3aef 100644 --- a/src/server/sv_save.c +++ b/src/server/sv_save.c @@ -334,7 +334,7 @@ SV_ReadServerFile(void) char name[MAX_OSPATH], string[128]; char workdir[MAX_OSPATH]; char comment[32]; - char mapcmd[MAX_TOKEN_CHARS]; + char mapcmd[MAX_SAVE_TOKEN_CHARS]; Com_DPrintf("SV_ReadServerFile()\n");