aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README21
-rw-r--r--code/win32/win_shared.c11
2 files changed, 30 insertions, 2 deletions
diff --git a/README b/README
index 0590785..b2e5a79 100644
--- a/README
+++ b/README
@@ -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) );