diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sv_game.c | 30 | ||||
-rw-r--r-- | src/sys_public.h | 2 | ||||
-rw-r--r-- | src/sys_unix.c | 4 | ||||
-rw-r--r-- | src/sys_win.c | 3 |
4 files changed, 16 insertions, 23 deletions
diff --git a/src/sv_game.c b/src/sv_game.c index 86756b9..8164285 100644 --- a/src/sv_game.c +++ b/src/sv_game.c @@ -776,37 +776,25 @@ void SV_InitGameProgs ( void ) { // unload anything we have now SV_ShutdownGameProgs (); -#ifdef _WIN32 - // FIXME: check current debug directory first for - // e.g. running legacy stuff like Q2Admin - Q_concat( path, sizeof( path ), Sys_GetCurrentDirectory(), - PATH_SEP_STRING "release" PATH_SEP_STRING GAMELIB, NULL ); - entry = Sys_LoadLibrary( path, "GetGameAPI", &game_library ); - if( !entry ) -#endif - { - // try ./game first + // for debugging or `proxy' mods + if( sys_forcegamelib->string[0] ) { + entry = Sys_LoadLibrary( sys_forcegamelib->string, + "GetGameAPI", &game_library ); + } + if( !entry ) { + // try game first if( fs_game->string[0] ) { Q_concat( path, sizeof( path ), sys_libdir->string, PATH_SEP_STRING, fs_game->string, PATH_SEP_STRING GAMELIB, NULL ); entry = Sys_LoadLibrary( path, "GetGameAPI", &game_library ); } if( !entry ) { - // then try ./baseq2 + // then try baseq2 Q_concat( path, sizeof( path ), sys_libdir->string, PATH_SEP_STRING BASEGAME PATH_SEP_STRING GAMELIB, NULL ); entry = Sys_LoadLibrary( path, "GetGameAPI", &game_library ); if( !entry ) { -#ifdef __unix__ - // then try ./ - Q_concat( path, sizeof( path ), sys_libdir->string, - PATH_SEP_STRING GAMELIB, NULL ); - entry = Sys_LoadLibrary( path, "GetGameAPI", &game_library ); - if( !entry ) -#endif - { - Com_Error( ERR_DROP, "Failed to load game DLL" ); - } + Com_Error( ERR_DROP, "Failed to load game library" ); } } } diff --git a/src/sys_public.h b/src/sys_public.h index 1ebf7e8..fd420c7 100644 --- a/src/sys_public.h +++ b/src/sys_public.h @@ -71,8 +71,8 @@ qboolean Sys_GetAntiCheatAPI( void ); extern cvar_t *sys_basedir; extern cvar_t *sys_libdir; -extern cvar_t *sys_refdir; extern cvar_t *sys_homedir; +extern cvar_t *sys_forcegamelib; #if USE_SYSCON && ( defined __unix__ ) extern cvar_t *sys_console; #endif diff --git a/src/sys_unix.c b/src/sys_unix.c index 94ec24e..769bebd 100644 --- a/src/sys_unix.c +++ b/src/sys_unix.c @@ -57,8 +57,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. cvar_t *sys_basedir; cvar_t *sys_libdir; cvar_t *sys_homedir; -cvar_t *sys_parachute; +cvar_t *sys_forcegamelib; +cvar_t *sys_parachute; /* =============================================================================== @@ -684,6 +685,7 @@ void Sys_Init( void ) { } sys_homedir = Cvar_Get( "homedir", homedir, CVAR_NOSET ); sys_libdir = Cvar_Get( "libdir", LIBDIR, CVAR_NOSET ); + sys_forcegamelib = Cvar_Get( "sys_forcegamelib", "", CVAR_NOSET ); #if USE_SYSCON // we want TTY support enabled if started from terminal, diff --git a/src/sys_win.c b/src/sys_win.c index 5eda55e..088f432 100644 --- a/src/sys_win.c +++ b/src/sys_win.c @@ -35,6 +35,7 @@ qboolean iswinnt; cvar_t *sys_basedir; cvar_t *sys_libdir; cvar_t *sys_homedir; +cvar_t *sys_forcegamelib; static char currentDirectory[MAX_OSPATH]; @@ -721,6 +722,8 @@ void Sys_Init( void ) { // specifies per-user writable directory for demos, screenshots, etc sys_homedir = Cvar_Get( "homedir", "", CVAR_NOSET ); + sys_forcegamelib = Cvar_Get( "sys_forcegamelib", "", CVAR_NOSET ); + #if USE_WINSVC Cmd_AddCommand( "installservice", Sys_InstallService_f ); Cmd_AddCommand( "deleteservice", Sys_DeleteService_f ); |