shithub: choc

Download patch

ref: 28445ff77a0cc82d29900a6e5867a0fa577f4275
parent: 1a203c8eee521de027f0bb1eee1e93d8f6e17dec
author: Simon Howard <[email protected]>
date: Tue Feb 14 15:32:21 EST 2012

Fix save game directory behavior under Windows.

Subversion-branch: /branches/v2-branch
Subversion-revision: 2504

--- a/src/strife/d_main.c
+++ b/src/strife/d_main.c
@@ -893,43 +893,6 @@
     gamedescription = GetGameName("Strife: Quest for the Sigil");
 }
 
-static void SetSaveGameDir(char *iwad_filename)
-{
-    char *sep;
-    char *basefile;
-
-    // Extract the base filename
- 
-    sep = strrchr(iwad_filename, DIR_SEPARATOR);
-
-    if (sep == NULL)
-    {
-        basefile = iwad_filename;
-    }
-    else
-    {
-        basefile = sep + 1;
-    }
-
-    // ~/.chocolate-doom/savegames/
-
-    savegamedir = Z_Malloc(strlen(configdir) + 30, PU_STATIC, 0);
-    sprintf(savegamedir, "%ssavegames%c", configdir,
-                         DIR_SEPARATOR);
-
-    M_MakeDirectory(savegamedir);
-
-    // eg. ~/.chocolate-doom/savegames/doom2.wad/
-
-    sprintf(savegamedir + strlen(savegamedir), "%s%c",
-            basefile, DIR_SEPARATOR);
-
-    M_MakeDirectory(savegamedir);
-
-    // haleyjd 20110210: Create Strife hub save folders
-    M_CreateSaveDirs(savegamedir);
-}
-
 //      print title for every printed line
 char            title[128];
 
@@ -1706,7 +1669,10 @@
     D_IdentifyVersion();
     InitGameVersion();
     D_SetGameDescription();
-    SetSaveGameDir(iwadfile);
+    savegamedir = M_GetSaveGameDir("strife1.wad");
+
+    // haleyjd 20110210: Create Strife hub save folders
+    M_CreateSaveDirs(savegamedir);
 
     I_GraphicsCheckCommandLine();
 
--- a/src/strife/m_saves.c
+++ b/src/strife/m_saves.c
@@ -430,6 +430,11 @@
     int   newstrlen = 0;
     char *newstr = NULL;
 
+    if (!strcmp(basepath, ""))
+    {
+        basepath = ".";
+    }
+
     // Always throw in a slash. M_NormalizeSlashes will remove it in the case
     // that either basepath or newcomponent includes a redundant slash at the
     // end or beginning respectively.