]> git.rm.cloudns.org Git - xonotic/darkplaces.git/commitdiff
thanks to Ludwig Nussel for this patch to add ~/.darkplaces support for non-Windows...
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 7 Jan 2005 11:52:43 +0000 (11:52 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 7 Jan 2005 11:52:43 +0000 (11:52 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4906 d7cf8633-e32d-0410-b094-e92efae38249

fs.c

diff --git a/fs.c b/fs.c
index 376336b7cf199156d526464c2faa6306dd659089..ba99514405fde4580e5afb3884ae5efd305a0901 100644 (file)
--- a/fs.c
+++ b/fs.c
@@ -907,6 +907,36 @@ void FS_AddGameDirectory (char *dir)
 }
 
 
+/*
+================
+FS_AddHomeAsGameDirectory
+
+Use ~/.games/darkplaces/dir as fs_gamedir
+================
+*/
+void FS_AddHomeAsGameDirectory (const char *dir)
+{
+#ifndef _WIN32
+       char *homedir=getenv("HOME");
+       char gdir[MAX_OSPATH];
+       if(homedir)
+       {
+               int len = snprintf(gdir,sizeof(gdir),"%s/.darkplaces/%s/", homedir, dir);
+               Con_Printf("using %s for writing\n",gdir);
+               FS_CreatePath (gdir);
+
+               if ((len > 0) && (len < sizeof(gdir)) && (gdir[len-1] == '/'))
+                       gdir[len-1] = 0;
+
+               strncpy(fs_gamedir,gdir,sizeof(fs_gamedir)-1);
+               fs_gamedir[sizeof(fs_gamedir)-1] = 0;
+               
+               FS_AddGameDirectory (gdir);
+       }
+#endif
+}
+
+
 /*
 ============
 FS_FileExtension
@@ -1009,6 +1039,7 @@ void FS_Init (void)
        // start up with GAMENAME by default (id1)
        strlcpy (com_modname, GAMENAME, sizeof (com_modname));
        FS_AddGameDirectory (va("%s/"GAMENAME, fs_basedir));
+       FS_AddHomeAsGameDirectory(GAMENAME);
        Cvar_SetQuick (&scr_screenshot_name, gamescreenshotname);
 
        // add the game-specific path, if any
@@ -1017,6 +1048,7 @@ void FS_Init (void)
                fs_modified = true;
                strlcpy (com_modname, gamedirname, sizeof (com_modname));
                FS_AddGameDirectory (va("%s/%s", fs_basedir, gamedirname));
+               FS_AddHomeAsGameDirectory(gamedirname);
        }
 
        // -game <gamedir>
@@ -1032,6 +1064,7 @@ void FS_Init (void)
                        fs_modified = true;
                        strlcpy (com_modname, com_argv[i], sizeof (com_modname));
                        FS_AddGameDirectory (va("%s/%s", fs_basedir, com_argv[i]));
+                       FS_AddHomeAsGameDirectory(com_argv[i]);
                        Cvar_SetQuick (&scr_screenshot_name, com_modname);
                }
        }