mirror of
https://git.code.sf.net/p/quake/newtree
synced 2025-03-24 17:01:57 +00:00
"another one bites the dust, DN Dn dn" (SERVERONLY)
This commit is contained in:
parent
a236fa53e6
commit
9611170a38
4 changed files with 38 additions and 66 deletions
|
@ -28,6 +28,7 @@ EXE_sources=\
|
|||
pr_exec.c \
|
||||
sv_init.c \
|
||||
sv_main.c \
|
||||
sv_misc.c \
|
||||
sv_nchan.c \
|
||||
sv_ents.c \
|
||||
sv_send.c \
|
||||
|
|
|
@ -21,11 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
|
||||
#include <ctype.h>
|
||||
|
||||
#ifdef SERVERONLY
|
||||
#include "qwsvdef.h"
|
||||
#else
|
||||
#include "quakedef.h"
|
||||
#endif
|
||||
|
||||
#define MAX_NUM_ARGVS 50
|
||||
#define NUM_SAFE_ARGVS 6
|
||||
|
@ -58,27 +54,6 @@ qboolean standard_quake = true, rogue, hipnotic;
|
|||
|
||||
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;
|
||||
unsigned short check[128];
|
||||
int i;
|
||||
|
||||
COM_FOpenFile("gfx/pop.lmp", &h);
|
||||
static_registered = 0;
|
||||
|
||||
if (!h)
|
||||
{
|
||||
Con_Printf ("Playing shareware version.\n");
|
||||
#ifndef SERVERONLY
|
||||
// FIXME DEBUG -- only temporary
|
||||
if (com_modified)
|
||||
Sys_Error ("You must have the registered version to play QuakeWorld");
|
||||
#endif
|
||||
return;
|
||||
if (h) {
|
||||
static_registered = 1;
|
||||
fread (check, 1, sizeof(check), h);
|
||||
fclose (h);
|
||||
}
|
||||
|
||||
fread (check, 1, sizeof(check), h);
|
||||
fclose (h);
|
||||
|
||||
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");
|
||||
if (static_registered) {
|
||||
Cvar_Set ("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);
|
||||
|
||||
((byte *)buf)[len] = 0;
|
||||
#ifndef SERVERONLY
|
||||
Draw_BeginDisc ();
|
||||
#endif
|
||||
fread (buf, 1, len, h);
|
||||
fclose (h);
|
||||
#ifndef SERVERONLY
|
||||
Draw_EndDisc ();
|
||||
#endif
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
@ -2007,10 +1966,7 @@ void Info_RemovePrefixedKeys (char *start, char prefix)
|
|||
void Info_SetValueForStarKey (char *s, char *key, char *value, int maxsize)
|
||||
{
|
||||
char new[1024], *v;
|
||||
int c;
|
||||
#ifdef SERVERONLY
|
||||
extern cvar_t sv_highchars;
|
||||
#endif
|
||||
int c, is_name, is_team;
|
||||
|
||||
if (strstr (key, "\\") || strstr (value, "\\") )
|
||||
{
|
||||
|
@ -2054,28 +2010,21 @@ void Info_SetValueForStarKey (char *s, char *key, char *value, int maxsize)
|
|||
// only copy ascii values
|
||||
s += strlen(s);
|
||||
v = new;
|
||||
is_name = stricmp(key, "name") == 0;
|
||||
is_team = stricmp(key, "team") == 0;
|
||||
while (*v)
|
||||
{
|
||||
c = (unsigned char)*v++;
|
||||
#ifndef SERVERONLY
|
||||
// client only allows highbits on name
|
||||
if (stricmp(key, "name") != 0) {
|
||||
if (!is_name) {
|
||||
c &= 127;
|
||||
if (c < 32 || c > 127)
|
||||
continue;
|
||||
// auto lowercase team
|
||||
if (stricmp(key, "team") == 0)
|
||||
if (is_team)
|
||||
c = tolower(c);
|
||||
}
|
||||
#else
|
||||
if (!sv_highchars.value) {
|
||||
c &= 127;
|
||||
if (c < 32 || c > 127)
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
// c &= 127; // strip high bits
|
||||
if (c > 13) // && c < 127)
|
||||
if (c > 13)
|
||||
*s++ = c;
|
||||
}
|
||||
*s = 0;
|
||||
|
|
|
@ -21,13 +21,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#include "qwsvdef.h"
|
||||
|
||||
void SV_SendServerInfoChange(char *key, char *value);
|
||||
extern cvar_t sv_highchars;
|
||||
|
||||
void
|
||||
Cvar_Info(cvar_t *var)
|
||||
{
|
||||
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_BroadcastCommand ("fullserverinfo \"%s\"\n", svs.info);
|
||||
}
|
||||
|
|
9
source/sv_misc.c
Normal file
9
source/sv_misc.c
Normal file
|
@ -0,0 +1,9 @@
|
|||
void
|
||||
Draw_BeginDisc(void)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
Draw_EndDisc(void)
|
||||
{
|
||||
}
|
Loading…
Reference in a new issue