Added rudimentary support for automatically finding Microsoft Store version of Quake 3

Unlike the Steam and GOG support I'm not doing a registry search as I don't see anything in the registry that would show us the path. If we find more official ways to search for it later we can address that, in the meantime the path is just hardcoded to where it's installed by default.
This commit is contained in:
Tom Kidd 2021-09-25 21:30:03 -05:00
parent e987a81edf
commit fa64d4f8a8
3 changed files with 20 additions and 0 deletions

View file

@ -254,6 +254,7 @@ static cvar_t *fs_apppath;
#endif #endif
static cvar_t *fs_steampath; static cvar_t *fs_steampath;
static cvar_t *fs_gogpath; static cvar_t *fs_gogpath;
static cvar_t *fs_microsoftstorepath;
static cvar_t *fs_basepath; static cvar_t *fs_basepath;
static cvar_t *fs_basegame; static cvar_t *fs_basegame;
@ -3351,6 +3352,10 @@ static void FS_Startup( const char *gameName )
} }
// add search path elements in reverse priority order // add search path elements in reverse priority order
fs_microsoftstorepath = Cvar_Get("fs_microsoftstorepath", Sys_MicrosoftStorePath(), CVAR_INIT | CVAR_PROTECTED);
if (fs_microsoftstorepath->string[0]) {
FS_AddGameDirectory(fs_microsoftstorepath->string, gameName);
}
fs_gogpath = Cvar_Get ("fs_gogpath", Sys_GogPath(), CVAR_INIT|CVAR_PROTECTED ); fs_gogpath = Cvar_Get ("fs_gogpath", Sys_GogPath(), CVAR_INIT|CVAR_PROTECTED );
if (fs_gogpath->string[0]) { if (fs_gogpath->string[0]) {
FS_AddGameDirectory( fs_gogpath->string, gameName ); FS_AddGameDirectory( fs_gogpath->string, gameName );

View file

@ -1123,6 +1123,7 @@ void Sys_SetDefaultInstallPath(const char *path);
char *Sys_DefaultInstallPath(void); char *Sys_DefaultInstallPath(void);
char *Sys_SteamPath(void); char *Sys_SteamPath(void);
char *Sys_GogPath(void); char *Sys_GogPath(void);
char *Sys_MicrosoftStorePath(void);
#ifdef __APPLE__ #ifdef __APPLE__
char *Sys_DefaultAppPath(void); char *Sys_DefaultAppPath(void);

View file

@ -52,6 +52,9 @@ static char steamPath[ MAX_OSPATH ] = { 0 };
// Used to store the GOG Quake 3 installation path // Used to store the GOG Quake 3 installation path
static char gogPath[ MAX_OSPATH ] = { 0 }; static char gogPath[ MAX_OSPATH ] = { 0 };
// Used to store the Microsoft Store Quake 3 installation path
static char microsoftStorePath[MAX_OSPATH] = { 0 };
#ifndef DEDICATED #ifndef DEDICATED
static UINT timerResolution = 0; static UINT timerResolution = 0;
#endif #endif
@ -222,6 +225,17 @@ char *Sys_GogPath( void )
return gogPath; return gogPath;
} }
/*
================
Sys_MicrosoftStorePath
================
*/
char* Sys_MicrosoftStorePath(void)
{
Q_strcat(microsoftStorePath, MAX_OSPATH, "C:\\Program Files\\ModifiableWindowsApps\\Quake 3\\EN");
return microsoftStorePath;
}
/* /*
================ ================
Sys_Milliseconds Sys_Milliseconds