Use the gamedir callback for the serverinfo key.

This gits rid of a bit of nastiness in the gamedir code :)
This commit is contained in:
Bill Currie 2011-09-03 14:18:35 +09:00
parent 6b5b2a1622
commit 8d853589e3
8 changed files with 13 additions and 12 deletions

View file

@ -432,7 +432,6 @@ extern struct cvar_s *fraglimit;
extern struct cvar_s *timelimit;
extern server_static_t svs; // persistant server info
extern struct info_s **svs_info;
extern server_t sv; // local server
extern client_t *host_client;

View file

@ -69,7 +69,6 @@ static __attribute__ ((used)) const char rcsid[] =
#include "host.h"
qboolean is_server = false;
char *svs_info;
int noconinput;

View file

@ -62,7 +62,6 @@ static __attribute__ ((used)) const char rcsid[] =
int noconinput = 0;
qboolean is_server = false;
char *svs_info;
static void
shutdown (void)

View file

@ -63,8 +63,6 @@ static __attribute__ ((used)) const char rcsid[] =
// minimization
#define NOT_FOCUS_SLEEP 20 // sleep time when not focus
char *svs_info;
qboolean ActiveApp, Minimized, WinNT;
qboolean is_server = false;

View file

@ -77,10 +77,6 @@ SV_Gamedir_f (void)
}
QFS_Gamedir (dir);
if (is_server) {
Info_SetValueForStarKey (*svs_info, "*gamedir", dir, 0);
}
}
void

View file

@ -2032,6 +2032,18 @@ maxclients_f (cvar_t *var)
}
}
static void
gamedir_f (int phase)
{
if (!phase)
return;
if (qfs_gamedir->gamedir)
Info_SetValueForStarKey (svs.info, "*gamedir",
qfs_gamedir->gamedir, 0);
else
Info_RemoveKey (svs.info, "*gamedir");
}
static void
SV_InitLocal (void)
{
@ -2522,6 +2534,7 @@ SV_Init (void)
SV_Init_Memory ();
QFS_GamedirCallback (gamedir_f);
svs.maxclients = MAX_CLIENTS;
svs.info = Info_ParseString ("", MAX_SERVERINFO_STRING, 0);
localinfo = Info_ParseString ("", 0, 0); // unlimited

View file

@ -61,7 +61,6 @@ static __attribute__ ((used)) const char rcsid[] =
qboolean is_server = true;
server_static_t svs;
info_t **svs_info = &svs.info;
#ifdef __alpha__
static inline unsigned long

View file

@ -46,8 +46,6 @@ static __attribute__ ((used)) const char rcsid[] =
qboolean is_server = true;
qboolean WinNT;
server_static_t svs;
info_t **svs_info = &svs.info;
static void
startup (void)