mirror of https://git.code.sf.net/p/quake/newtree
"another one bites the dust, DN Dn dn" (SERVERONLY)
This commit is contained in:
parent
a236fa53e6
commit
9611170a38
|
@ -28,6 +28,7 @@ EXE_sources=\
|
||||||
pr_exec.c \
|
pr_exec.c \
|
||||||
sv_init.c \
|
sv_init.c \
|
||||||
sv_main.c \
|
sv_main.c \
|
||||||
|
sv_misc.c \
|
||||||
sv_nchan.c \
|
sv_nchan.c \
|
||||||
sv_ents.c \
|
sv_ents.c \
|
||||||
sv_send.c \
|
sv_send.c \
|
||||||
|
|
|
@ -21,11 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
#ifdef SERVERONLY
|
|
||||||
#include "qwsvdef.h"
|
|
||||||
#else
|
|
||||||
#include "quakedef.h"
|
#include "quakedef.h"
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MAX_NUM_ARGVS 50
|
#define MAX_NUM_ARGVS 50
|
||||||
#define NUM_SAFE_ARGVS 6
|
#define NUM_SAFE_ARGVS 6
|
||||||
|
@ -58,27 +54,6 @@ qboolean standard_quake = true, rogue, hipnotic;
|
||||||
|
|
||||||
char gamedirfile[MAX_OSPATH];
|
char gamedirfile[MAX_OSPATH];
|
||||||
|
|
||||||
// this graphic needs to be in the pak file to use registered features
|
|
||||||
unsigned short pop[] =
|
|
||||||
{
|
|
||||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
|
|
||||||
,0x0000,0x0000,0x6600,0x0000,0x0000,0x0000,0x6600,0x0000
|
|
||||||
,0x0000,0x0066,0x0000,0x0000,0x0000,0x0000,0x0067,0x0000
|
|
||||||
,0x0000,0x6665,0x0000,0x0000,0x0000,0x0000,0x0065,0x6600
|
|
||||||
,0x0063,0x6561,0x0000,0x0000,0x0000,0x0000,0x0061,0x6563
|
|
||||||
,0x0064,0x6561,0x0000,0x0000,0x0000,0x0000,0x0061,0x6564
|
|
||||||
,0x0064,0x6564,0x0000,0x6469,0x6969,0x6400,0x0064,0x6564
|
|
||||||
,0x0063,0x6568,0x6200,0x0064,0x6864,0x0000,0x6268,0x6563
|
|
||||||
,0x0000,0x6567,0x6963,0x0064,0x6764,0x0063,0x6967,0x6500
|
|
||||||
,0x0000,0x6266,0x6769,0x6a68,0x6768,0x6a69,0x6766,0x6200
|
|
||||||
,0x0000,0x0062,0x6566,0x6666,0x6666,0x6666,0x6562,0x0000
|
|
||||||
,0x0000,0x0000,0x0062,0x6364,0x6664,0x6362,0x0000,0x0000
|
|
||||||
,0x0000,0x0000,0x0000,0x0062,0x6662,0x0000,0x0000,0x0000
|
|
||||||
,0x0000,0x0000,0x0000,0x0061,0x6661,0x0000,0x0000,0x0000
|
|
||||||
,0x0000,0x0000,0x0000,0x0000,0x6500,0x0000,0x0000,0x0000
|
|
||||||
,0x0000,0x0000,0x0000,0x0000,0x6400,0x0000,0x0000,0x0000
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
|
||||||
|
@ -1112,32 +1087,20 @@ void COM_CheckRegistered (void)
|
||||||
{
|
{
|
||||||
FILE *h;
|
FILE *h;
|
||||||
unsigned short check[128];
|
unsigned short check[128];
|
||||||
int i;
|
|
||||||
|
|
||||||
COM_FOpenFile("gfx/pop.lmp", &h);
|
COM_FOpenFile("gfx/pop.lmp", &h);
|
||||||
static_registered = 0;
|
static_registered = 0;
|
||||||
|
|
||||||
if (!h)
|
if (h) {
|
||||||
{
|
static_registered = 1;
|
||||||
Con_Printf ("Playing shareware version.\n");
|
fread (check, 1, sizeof(check), h);
|
||||||
#ifndef SERVERONLY
|
fclose (h);
|
||||||
// FIXME DEBUG -- only temporary
|
|
||||||
if (com_modified)
|
|
||||||
Sys_Error ("You must have the registered version to play QuakeWorld");
|
|
||||||
#endif
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fread (check, 1, sizeof(check), h);
|
if (static_registered) {
|
||||||
fclose (h);
|
Cvar_Set ("registered", "1");
|
||||||
|
Con_Printf ("Playing registered version.\n");
|
||||||
for (i=0 ; i<128 ; i++)
|
}
|
||||||
if (pop[i] != (unsigned short)BigShort (check[i]))
|
|
||||||
Sys_Error ("Corrupted data file.");
|
|
||||||
|
|
||||||
Cvar_Set ("registered", "1");
|
|
||||||
static_registered = 1;
|
|
||||||
Con_Printf ("Playing registered version.\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1587,14 +1550,10 @@ byte *COM_LoadFile (char *path, int usehunk)
|
||||||
Sys_Error ("COM_LoadFile: not enough space for %s", path);
|
Sys_Error ("COM_LoadFile: not enough space for %s", path);
|
||||||
|
|
||||||
((byte *)buf)[len] = 0;
|
((byte *)buf)[len] = 0;
|
||||||
#ifndef SERVERONLY
|
|
||||||
Draw_BeginDisc ();
|
Draw_BeginDisc ();
|
||||||
#endif
|
|
||||||
fread (buf, 1, len, h);
|
fread (buf, 1, len, h);
|
||||||
fclose (h);
|
fclose (h);
|
||||||
#ifndef SERVERONLY
|
|
||||||
Draw_EndDisc ();
|
Draw_EndDisc ();
|
||||||
#endif
|
|
||||||
|
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
@ -2007,10 +1966,7 @@ void Info_RemovePrefixedKeys (char *start, char prefix)
|
||||||
void Info_SetValueForStarKey (char *s, char *key, char *value, int maxsize)
|
void Info_SetValueForStarKey (char *s, char *key, char *value, int maxsize)
|
||||||
{
|
{
|
||||||
char new[1024], *v;
|
char new[1024], *v;
|
||||||
int c;
|
int c, is_name, is_team;
|
||||||
#ifdef SERVERONLY
|
|
||||||
extern cvar_t sv_highchars;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (strstr (key, "\\") || strstr (value, "\\") )
|
if (strstr (key, "\\") || strstr (value, "\\") )
|
||||||
{
|
{
|
||||||
|
@ -2054,28 +2010,21 @@ void Info_SetValueForStarKey (char *s, char *key, char *value, int maxsize)
|
||||||
// only copy ascii values
|
// only copy ascii values
|
||||||
s += strlen(s);
|
s += strlen(s);
|
||||||
v = new;
|
v = new;
|
||||||
|
is_name = stricmp(key, "name") == 0;
|
||||||
|
is_team = stricmp(key, "team") == 0;
|
||||||
while (*v)
|
while (*v)
|
||||||
{
|
{
|
||||||
c = (unsigned char)*v++;
|
c = (unsigned char)*v++;
|
||||||
#ifndef SERVERONLY
|
|
||||||
// client only allows highbits on name
|
// client only allows highbits on name
|
||||||
if (stricmp(key, "name") != 0) {
|
if (!is_name) {
|
||||||
c &= 127;
|
c &= 127;
|
||||||
if (c < 32 || c > 127)
|
if (c < 32 || c > 127)
|
||||||
continue;
|
continue;
|
||||||
// auto lowercase team
|
// auto lowercase team
|
||||||
if (stricmp(key, "team") == 0)
|
if (is_team)
|
||||||
c = tolower(c);
|
c = tolower(c);
|
||||||
}
|
}
|
||||||
#else
|
if (c > 13)
|
||||||
if (!sv_highchars.value) {
|
|
||||||
c &= 127;
|
|
||||||
if (c < 32 || c > 127)
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
// c &= 127; // strip high bits
|
|
||||||
if (c > 13) // && c < 127)
|
|
||||||
*s++ = c;
|
*s++ = c;
|
||||||
}
|
}
|
||||||
*s = 0;
|
*s = 0;
|
||||||
|
|
|
@ -21,13 +21,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "qwsvdef.h"
|
#include "qwsvdef.h"
|
||||||
|
|
||||||
void SV_SendServerInfoChange(char *key, char *value);
|
void SV_SendServerInfoChange(char *key, char *value);
|
||||||
|
extern cvar_t sv_highchars;
|
||||||
|
|
||||||
void
|
void
|
||||||
Cvar_Info(cvar_t *var)
|
Cvar_Info(cvar_t *var)
|
||||||
{
|
{
|
||||||
if (var->info)
|
if (var->info)
|
||||||
{
|
{
|
||||||
Info_SetValueForKey (svs.info, var->name, var->string, MAX_SERVERINFO_STRING);
|
unsigned char info[1024],*p, *c;
|
||||||
|
|
||||||
|
for (p=info, c=var->string; *c && (p-info<sizeof(info)-1); c++, p++) {
|
||||||
|
if (!sv_highchars.value) {
|
||||||
|
*c &= 127;
|
||||||
|
if (*c < 32 || *c > 127)
|
||||||
|
continue;
|
||||||
|
*p = *c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*p=0;
|
||||||
|
|
||||||
|
Info_SetValueForKey (svs.info, var->name, info, MAX_SERVERINFO_STRING);
|
||||||
SV_SendServerInfoChange(var->name, var->string);
|
SV_SendServerInfoChange(var->name, var->string);
|
||||||
// SV_BroadcastCommand ("fullserverinfo \"%s\"\n", svs.info);
|
// SV_BroadcastCommand ("fullserverinfo \"%s\"\n", svs.info);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
void
|
||||||
|
Draw_BeginDisc(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Draw_EndDisc(void)
|
||||||
|
{
|
||||||
|
}
|
Loading…
Reference in New Issue