mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2025-02-16 16:51:16 +00:00
shuffle things around so gamedir works early on in the piece. Also put it into qw-client in the first place. grr Unfortunatly, doesn't fix our class change problem :(
This commit is contained in:
parent
3c8ff479a3
commit
e94c1488ac
5 changed files with 50 additions and 81 deletions
|
@ -565,6 +565,8 @@ Host_Init (quakeparms_t *parms)
|
||||||
CL_InitCvars ();
|
CL_InitCvars ();
|
||||||
SCR_InitCvars ();
|
SCR_InitCvars ();
|
||||||
VID_InitCvars ();
|
VID_InitCvars ();
|
||||||
|
COM_Init ();
|
||||||
|
|
||||||
|
|
||||||
Cmd_Exec_File (global_cfg_file->string);
|
Cmd_Exec_File (global_cfg_file->string);
|
||||||
Cbuf_Execute ();
|
Cbuf_Execute ();
|
||||||
|
@ -578,14 +580,10 @@ Host_Init (quakeparms_t *parms)
|
||||||
Chase_Init ();
|
Chase_Init ();
|
||||||
|
|
||||||
#ifdef QUAKEWORLD
|
#ifdef QUAKEWORLD
|
||||||
COM_Init ();
|
|
||||||
|
|
||||||
NET_Init (PORT_CLIENT);
|
NET_Init (PORT_CLIENT);
|
||||||
Netchan_Init ();
|
Netchan_Init ();
|
||||||
#elif UQUAKE
|
#elif UQUAKE
|
||||||
Host_InitVCR (parms);
|
Host_InitVCR (parms);
|
||||||
|
|
||||||
COM_Init ();
|
|
||||||
Host_InitLocal ();
|
Host_InitLocal ();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,11 @@
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <draw.h>
|
#include <draw.h>
|
||||||
#include <cvars.h>
|
#include <cvars.h>
|
||||||
|
#include <cmd.h>
|
||||||
|
#if defined(QUAKEWORLD) && defined(SERVERONLY)
|
||||||
|
#include <common_protocol.h>
|
||||||
|
#include <server.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <fnmatch.h>
|
#include <fnmatch.h>
|
||||||
|
@ -937,6 +942,45 @@ COM_Gamedir (char *dir)
|
||||||
COM_AddGameDirectory (dir);
|
COM_AddGameDirectory (dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================
|
||||||
|
SV_Gamedir_f
|
||||||
|
|
||||||
|
Sets the gamedir and path to a different directory.
|
||||||
|
================
|
||||||
|
*/
|
||||||
|
char gamedirfile[MAX_OSPATH];
|
||||||
|
void COM_Gamedir_f (void)
|
||||||
|
{
|
||||||
|
char *dir;
|
||||||
|
|
||||||
|
if (Cmd_Argc() == 1)
|
||||||
|
{
|
||||||
|
Con_Printf ("Current gamedir: %s\n", com_gamedir);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Cmd_Argc() != 2)
|
||||||
|
{
|
||||||
|
Con_Printf ("Usage: gamedir <newdir>\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dir = Cmd_Argv(1);
|
||||||
|
|
||||||
|
if (strstr(dir, "..") || strstr(dir, "/")
|
||||||
|
|| strstr(dir, "\\") || strstr(dir, ":") )
|
||||||
|
{
|
||||||
|
Con_Printf ("Gamedir should be a single filename, not a path\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
COM_Gamedir (dir);
|
||||||
|
#if defined(QUAKEWORLD) && defined(SERVERONLY)
|
||||||
|
Info_SetValueForStarKey (svs.info, "*gamedir", dir, MAX_SERVERINFO_STRING);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
COM_InitFilesystem
|
COM_InitFilesystem
|
||||||
*/
|
*/
|
||||||
|
@ -951,6 +995,8 @@ COM_InitFilesystem ( void )
|
||||||
"the location of your game directories");
|
"the location of your game directories");
|
||||||
fs_sharepath = Cvar_Get ("fs_sharepath", fs_basepath->string,
|
fs_sharepath = Cvar_Get ("fs_sharepath", fs_basepath->string,
|
||||||
CVAR_ROM, "read-only game directories");
|
CVAR_ROM, "read-only game directories");
|
||||||
|
Cmd_AddCommand ("gamedir", COM_Gamedir_f);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
start up with GAMENAME by default
|
start up with GAMENAME by default
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -41,7 +41,8 @@
|
||||||
extern int com_filesize;
|
extern int com_filesize;
|
||||||
struct cache_user_s;
|
struct cache_user_s;
|
||||||
|
|
||||||
extern char com_gamedir[MAX_OSPATH];
|
extern char com_gamedir[MAX_OSPATH];
|
||||||
|
extern char gamedirfile[MAX_OSPATH];
|
||||||
|
|
||||||
void COM_WriteFile (char *filename, void *data, int len);
|
void COM_WriteFile (char *filename, void *data, int len);
|
||||||
int COM_FOpenFile (char *filename, QFile **gzfile);
|
int COM_FOpenFile (char *filename, QFile **gzfile);
|
||||||
|
|
|
@ -783,43 +783,6 @@ void SV_Gamedir (void)
|
||||||
Info_SetValueForStarKey (svs.info, "*gamedir", dir, MAX_SERVERINFO_STRING);
|
Info_SetValueForStarKey (svs.info, "*gamedir", dir, MAX_SERVERINFO_STRING);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
SV_Gamedir_f
|
|
||||||
|
|
||||||
Sets the gamedir and path to a different directory.
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
char gamedirfile[MAX_OSPATH];
|
|
||||||
void SV_Gamedir_f (void)
|
|
||||||
{
|
|
||||||
char *dir;
|
|
||||||
|
|
||||||
if (Cmd_Argc() == 1)
|
|
||||||
{
|
|
||||||
Con_Printf ("Current gamedir: %s\n", com_gamedir);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Cmd_Argc() != 2)
|
|
||||||
{
|
|
||||||
Con_Printf ("Usage: gamedir <newdir>\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
dir = Cmd_Argv(1);
|
|
||||||
|
|
||||||
if (strstr(dir, "..") || strstr(dir, "/")
|
|
||||||
|| strstr(dir, "\\") || strstr(dir, ":") )
|
|
||||||
{
|
|
||||||
Con_Printf ("Gamedir should be a single filename, not a path\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
COM_Gamedir (dir);
|
|
||||||
Info_SetValueForStarKey (svs.info, "*gamedir", dir, MAX_SERVERINFO_STRING);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
================
|
================
|
||||||
SV_Snap
|
SV_Snap
|
||||||
|
@ -968,7 +931,6 @@ void SV_InitOperatorCommands (void)
|
||||||
Cmd_AddCommand ("serverinfo", SV_Serverinfo_f);
|
Cmd_AddCommand ("serverinfo", SV_Serverinfo_f);
|
||||||
Cmd_AddCommand ("localinfo", SV_Localinfo_f);
|
Cmd_AddCommand ("localinfo", SV_Localinfo_f);
|
||||||
Cmd_AddCommand ("user", SV_User_f);
|
Cmd_AddCommand ("user", SV_User_f);
|
||||||
Cmd_AddCommand ("gamedir", SV_Gamedir_f);
|
|
||||||
Cmd_AddCommand ("sv_gamedir", SV_Gamedir);
|
Cmd_AddCommand ("sv_gamedir", SV_Gamedir);
|
||||||
Cmd_AddCommand ("floodprot", SV_Floodprot_f);
|
Cmd_AddCommand ("floodprot", SV_Floodprot_f);
|
||||||
Cmd_AddCommand ("floodprotmsg", SV_Floodprotmsg_f);
|
Cmd_AddCommand ("floodprotmsg", SV_Floodprotmsg_f);
|
||||||
|
|
|
@ -192,43 +192,6 @@ void Host_Noclip_f (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
================
|
|
||||||
Host_Gamedir_f
|
|
||||||
|
|
||||||
Sets the gamedir and path to a different directory.
|
|
||||||
================
|
|
||||||
*/
|
|
||||||
char gamedirfile[MAX_OSPATH];
|
|
||||||
void
|
|
||||||
Host_Gamedir_f (void)
|
|
||||||
{
|
|
||||||
char *dir;
|
|
||||||
|
|
||||||
if (Cmd_Argc() == 1)
|
|
||||||
{
|
|
||||||
Con_Printf ("Current gamedir: %s\n", com_gamedir);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Cmd_Argc() != 2)
|
|
||||||
{
|
|
||||||
Con_Printf ("Usage: gamedir <newdir>\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
dir = Cmd_Argv(1);
|
|
||||||
|
|
||||||
if (strstr(dir, "..") || strstr(dir, "/")
|
|
||||||
|| strstr(dir, "\\") || strstr(dir, ":") )
|
|
||||||
{
|
|
||||||
Con_Printf ("Gamedir should be a single filename, not a path\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
COM_Gamedir (dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==================
|
==================
|
||||||
Host_Fly_f
|
Host_Fly_f
|
||||||
|
@ -1953,5 +1916,4 @@ void Host_InitCommands (void)
|
||||||
Cmd_AddCommand ("viewprev", Host_Viewprev_f);
|
Cmd_AddCommand ("viewprev", Host_Viewprev_f);
|
||||||
|
|
||||||
Cmd_AddCommand ("mcache", Mod_Print);
|
Cmd_AddCommand ("mcache", Mod_Print);
|
||||||
Cmd_AddCommand ("gamedir", Host_Gamedir_f);
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue