engine: add cvars to control mounting additional directories
Use existing ui_language cvar for mounting localization folders.
This commit is contained in:
parent
674a4e5883
commit
62e3ba2126
4 changed files with 43 additions and 2 deletions
|
@ -3139,6 +3139,9 @@ static qboolean CL_ShouldRescanFilesystem( void )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( FBitSet( fs_mount_lv.flags|fs_mount_hd.flags|fs_mount_addon.flags|fs_mount_l10n.flags|ui_language.flags, FCVAR_CHANGED ))
|
||||||
|
retval = true;
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -167,6 +167,11 @@ extern convar_t cl_filterstuffcmd;
|
||||||
extern convar_t rcon_password;
|
extern convar_t rcon_password;
|
||||||
extern convar_t hpk_custom_file;
|
extern convar_t hpk_custom_file;
|
||||||
extern convar_t con_gamemaps;
|
extern convar_t con_gamemaps;
|
||||||
|
extern convar_t fs_mount_lv;
|
||||||
|
extern convar_t fs_mount_hd;
|
||||||
|
extern convar_t fs_mount_addon;
|
||||||
|
extern convar_t fs_mount_l10n;
|
||||||
|
extern convar_t ui_language; // historically used for UI, but now controls mounted localization directory
|
||||||
|
|
||||||
#define Mod_AllowMaterials() ( host_allow_materials.value != 0.0f && !FBitSet( host.features, ENGINE_DISABLE_HDTEXTURES ))
|
#define Mod_AllowMaterials() ( host_allow_materials.value != 0.0f && !FBitSet( host.features, ENGINE_DISABLE_HDTEXTURES ))
|
||||||
|
|
||||||
|
@ -411,6 +416,7 @@ byte *FS_LoadFile( const char *path, fs_offset_t *filesizeptr, qboolean gamediro
|
||||||
byte *FS_LoadDirectFile( const char *path, fs_offset_t *filesizeptr )
|
byte *FS_LoadDirectFile( const char *path, fs_offset_t *filesizeptr )
|
||||||
MALLOC_LIKE( _Mem_Free, 1 ) WARN_UNUSED_RESULT;
|
MALLOC_LIKE( _Mem_Free, 1 ) WARN_UNUSED_RESULT;
|
||||||
void FS_Rescan_f( void );
|
void FS_Rescan_f( void );
|
||||||
|
void FS_CheckConfig( void );
|
||||||
|
|
||||||
//
|
//
|
||||||
// cmd.c
|
// cmd.c
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
filesystem.c - game filesystem based on DP fs
|
filesystem.c - game filesystem based on DP fs
|
||||||
Copyright (C) 2003-2006 Mathieu Olivier
|
Copyright (C) 2003-2006 Mathieu Olivier
|
||||||
Copyright (C) 2000-2007 DarkPlaces contributors
|
Copyright (C) 2000-2007 DarkPlaces contributors
|
||||||
|
@ -21,6 +21,12 @@ GNU General Public License for more details.
|
||||||
#include "library.h"
|
#include "library.h"
|
||||||
#include "platform/platform.h"
|
#include "platform/platform.h"
|
||||||
|
|
||||||
|
CVAR_DEFINE_AUTO( fs_mount_hd, "0", FCVAR_ARCHIVE|FCVAR_PRIVILEGED|FCVAR_LATCH, "mount high definition content folder" );
|
||||||
|
CVAR_DEFINE_AUTO( fs_mount_lv, "0", FCVAR_ARCHIVE|FCVAR_PRIVILEGED|FCVAR_LATCH, "mount low violence models content folder" );
|
||||||
|
CVAR_DEFINE_AUTO( fs_mount_addon, "0", FCVAR_ARCHIVE|FCVAR_PRIVILEGED|FCVAR_LATCH, "mount addon content folder" );
|
||||||
|
CVAR_DEFINE_AUTO( fs_mount_l10n, "0", FCVAR_ARCHIVE|FCVAR_PRIVILEGED|FCVAR_LATCH, "mount localization content folder" );
|
||||||
|
CVAR_DEFINE_AUTO( ui_language, "english", FCVAR_ARCHIVE|FCVAR_PRIVILEGED|FCVAR_LATCH, "selected game language" );
|
||||||
|
|
||||||
fs_api_t g_fsapi;
|
fs_api_t g_fsapi;
|
||||||
fs_globals_t *FI;
|
fs_globals_t *FI;
|
||||||
|
|
||||||
|
@ -71,7 +77,21 @@ void *FS_GetNativeObject( const char *obj )
|
||||||
|
|
||||||
void FS_Rescan_f( void )
|
void FS_Rescan_f( void )
|
||||||
{
|
{
|
||||||
FS_Rescan( 0, NULL );
|
uint32_t flags = 0;
|
||||||
|
|
||||||
|
// FIXME: VFS shouldn't care about this, allow engine to mount gamedirs
|
||||||
|
if( fs_mount_lv.value ) SetBits( flags, FS_MOUNT_LV );
|
||||||
|
if( fs_mount_hd.value ) SetBits( flags, FS_MOUNT_HD );
|
||||||
|
if( fs_mount_addon.value ) SetBits( flags, FS_MOUNT_ADDON );
|
||||||
|
if( fs_mount_l10n.value ) SetBits( flags, FS_MOUNT_L10N );
|
||||||
|
|
||||||
|
g_fsapi.Rescan( flags, ui_language.string );
|
||||||
|
|
||||||
|
ClearBits( fs_mount_lv.flags, FCVAR_CHANGED );
|
||||||
|
ClearBits( fs_mount_hd.flags, FCVAR_CHANGED );
|
||||||
|
ClearBits( fs_mount_addon.flags, FCVAR_CHANGED );
|
||||||
|
ClearBits( fs_mount_l10n.flags, FCVAR_CHANGED );
|
||||||
|
ClearBits( ui_language.flags, FCVAR_CHANGED );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void FS_ClearPaths_f( void )
|
static void FS_ClearPaths_f( void )
|
||||||
|
@ -236,6 +256,12 @@ static qboolean FS_DetermineReadOnlyRootDirectory( char *out, size_t size )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FS_CheckConfig( void )
|
||||||
|
{
|
||||||
|
if( fs_mount_lv.value || fs_mount_hd.value || fs_mount_addon.value || fs_mount_l10n.value )
|
||||||
|
FS_Rescan_f();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
================
|
================
|
||||||
FS_Init
|
FS_Init
|
||||||
|
@ -288,6 +314,11 @@ void FS_Init( const char *basedir )
|
||||||
Cmd_AddRestrictedCommand( "fs_clearpaths", FS_ClearPaths_f, "clear filesystem search pathes" );
|
Cmd_AddRestrictedCommand( "fs_clearpaths", FS_ClearPaths_f, "clear filesystem search pathes" );
|
||||||
Cmd_AddRestrictedCommand( "fs_make_gameinfo", FS_MakeGameInfo_f, "create gameinfo.txt for current running game" );
|
Cmd_AddRestrictedCommand( "fs_make_gameinfo", FS_MakeGameInfo_f, "create gameinfo.txt for current running game" );
|
||||||
|
|
||||||
|
Cvar_RegisterVariable( &fs_mount_hd );
|
||||||
|
Cvar_RegisterVariable( &fs_mount_lv );
|
||||||
|
Cvar_RegisterVariable( &fs_mount_addon );
|
||||||
|
Cvar_RegisterVariable( &fs_mount_l10n );
|
||||||
|
|
||||||
if( !Sys_GetParmFromCmdLine( "-dll", host.gamedll ))
|
if( !Sys_GetParmFromCmdLine( "-dll", host.gamedll ))
|
||||||
host.gamedll[0] = 0;
|
host.gamedll[0] = 0;
|
||||||
|
|
||||||
|
|
|
@ -1310,6 +1310,7 @@ int EXPORT Host_Main( int argc, char **argv, const char *progname, int bChangeGa
|
||||||
Cmd_RemoveCommand( "setgl" );
|
Cmd_RemoveCommand( "setgl" );
|
||||||
Cbuf_ExecStuffCmds(); // execute stuffcmds (commandline)
|
Cbuf_ExecStuffCmds(); // execute stuffcmds (commandline)
|
||||||
SCR_CheckStartupVids(); // must be last
|
SCR_CheckStartupVids(); // must be last
|
||||||
|
FS_CheckConfig();
|
||||||
|
|
||||||
if( Sys_GetParmFromCmdLine( "-timedemo", demoname ))
|
if( Sys_GetParmFromCmdLine( "-timedemo", demoname ))
|
||||||
Cbuf_AddTextf( "timedemo %s\n", demoname );
|
Cbuf_AddTextf( "timedemo %s\n", demoname );
|
||||||
|
|
Loading…
Add table
Reference in a new issue