shithub: choc

Download patch

ref: 53fa8e084ce1b677eca86b96727cc067656372b2
parent: 0aa90653d8863faf347d8d75f3e721f42177937f
author: Simon Howard <fraggle@gmail.com>
date: Fri Oct 10 14:01:50 EDT 2008

Set SavePath correctly and create the directory if necessary.

Subversion-branch: /branches/raven-branch
Subversion-revision: 1350

--- a/src/hexen/h2_main.c
+++ b/src/hexen/h2_main.c
@@ -39,6 +39,7 @@
 #include "ct_chat.h"
 #include "d_iwad.h"
 #include "d_mode.h"
+#include "m_misc.h"
 #include "s_sound.h"
 #include "i_system.h"
 #include "m_argv.h"
@@ -180,6 +181,14 @@
     }
 }
 
+// Set the default directory where hub savegames are saved.
+
+static void D_SetDefaultSavePath(void)
+{
+    SavePath = malloc(strlen(configdir) + 10);
+    sprintf(SavePath, "%shexndata%c", configdir, DIR_SEPARATOR);
+}
+
 //
 // D_GrabMouseCallback
 //
@@ -226,6 +235,7 @@
     ST_Message("M_LoadDefaults: Load system defaults.\n");
     D_BindVariables();
     M_SetConfigDir();
+    D_SetDefaultSavePath();
     M_SetConfigFilenames("hexen.cfg", PROGRAM_PREFIX "hexen.cfg");
     M_LoadDefaults();
 
@@ -858,21 +868,7 @@
 
 static void CreateSavePath(void)
 {
-    char creationPath[121];
-    int len;
-
-    if (cdrom == true)
-    {
-        SavePath = "c:\\hexndata\\";
-    }
-    len = strlen(SavePath);
-    if (len >= 120)
-        I_Error("Save path too long\n");
-    strcpy(creationPath, SavePath);
-#ifdef __WATCOMC__
-    creationPath[len - 1] = 0;
-    mkdir(creationPath);
-#endif
+    M_MakeDirectory(SavePath);
 }
 
 #ifdef TIMEBOMB