diff options
| -rw-r--r-- | README | 21 | ||||
| -rw-r--r-- | code/win32/win_shared.c | 11 | 
2 files changed, 30 insertions, 2 deletions
@@ -24,6 +24,8 @@ for further development. Some of the major features currently implemented are:    * Support for various esoteric operating systems (see      http://icculus.org/quake3/?page=status)    * HTTP/FTP download redirection (using cURL) +  * Multiuser support on Windows NT based systems (user specific game data +    is stored in "%APPDATA%\Quake3")    * Many, many bug fixes  The map editor and associated compiling tools are not included. We suggest you @@ -234,6 +236,25 @@ Using HTTP/FTP Download Support (Client)      it will use the value of the cvar cl_cURLLib as the filename of the cURL      library to dynamically load.  +Multiuser Support on Windows NT based sysems +    On Windows NT based systems (e.g. Windows XP), all user specific files such +    as autogenerated configuration, demos, videos, screenshots, and +    autodownloaded pk3s are now saved in a directory specific to the +    user who is running ioquake3.  On systems using the English language,  +    this is usually a directory named: +      "C:\Documents and Settings\%USERNAME%\Application Data\Quake3\" + +    In order to access this directory more easily, the installer may create a +    Shortcut which has its target set to: +      "%APPDATA%\Quake3\" +    Such a link would work for all users and would work on non-English versions +    of Windows. +     +    You can revert to the old single-user behaviour by setting the fs_homepath +    cvar to the directory where ioquake3 is installed.  For example: +      ioquake3.exe +set fs_homepath "c:\ioquake3" +    Note that this cvar MUST be set as a command line parameter. +  ------------------------------------------------------------- Contributing -----  Please send all patches to bugzilla (https://bugzilla.icculus.org), or join the diff --git a/code/win32/win_shared.c b/code/win32/win_shared.c index 4bbd509..98c0098 100644 --- a/code/win32/win_shared.c +++ b/code/win32/win_shared.c @@ -288,10 +288,17 @@ char	*Sys_DefaultHomePath(void) {  	TCHAR szPath[MAX_PATH];  	static char path[MAX_OSPATH]; -	if( !SUCCEEDED( SHGetFolderPath( NULL, CSIDL_LOCAL_APPDATA, +	// do not bother using a seperate home directory on versions of +	// windows that do not offer true per-user home directories  +	// (win98, win95, winme) +	g_wv.osversion.dwOSVersionInfoSize = sizeof( g_wv.osversion ); +	GetVersionEx( &g_wv.osversion ); +	if( g_wv.osversion.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS ) +		return NULL; + +	if( !SUCCEEDED( SHGetFolderPath( NULL, CSIDL_APPDATA,  		NULL, 0, szPath ) ) )  	{ -  		return NULL;  	}  	Q_strncpyz( path, szPath, sizeof(path) );  | 
