fixed some element class names
[rocksndiamonds.git] / src / game_bd / bd_caveset.c
index 0e04806b66af742fa078e23c5926337de8fe3d97..ad2ecc4aecb91873847819d0934e88c2060a4e79 100644 (file)
@@ -127,7 +127,7 @@ void gd_caveset_clear(void)
   /* always newly create this */
   /* create pseudo cave containing default values */
   gd_caveset_data = gd_caveset_data_new();
-  gd_strcpy(gd_caveset_data->name, _("New caveset"));
+  gd_strcpy(gd_caveset_data->name, getCurrentLevelsetName());
 }
 
 /* return number of caves currently in memory. */
@@ -555,7 +555,7 @@ boolean gd_caveset_load_from_file(char *filename)
   }
 
   if (strSuffix(filename, ".brc") ||
-      strSuffix(filename, "*.BRC"))
+      strSuffix(filename, ".BRC"))
   {
     brc_import((byte *) buf);
     gd_caveset_edited = FALSE;    /* newly loaded cave is not edited */
@@ -611,6 +611,41 @@ boolean gd_caveset_load_from_file(char *filename)
   return TRUE;
 }
 
+boolean gd_caveset_save_to_file(const char *filename)
+{
+  GdPtrArray *saved = gd_caveset_save_to_bdcff();
+  boolean success;
+  File *file;
+  int i;
+
+  if ((file = openFile(filename, MODE_WRITE)) != NULL)
+  {
+    for (i = 0; i < saved->size; i++)
+    {
+      writeFile(file, saved->data[i], 1, strlen(saved->data[i]));
+      writeFile(file, "\n", 1, 1);
+    }
+
+    closeFile(file);
+
+    /* remember that it is saved */
+    gd_caveset_edited = FALSE;
+
+    success = TRUE;
+  }
+  else
+  {
+    Warn("cannot open file '%s'", filename);
+
+    success = FALSE;
+  }
+
+  gd_ptr_array_free(saved, TRUE);
+
+  return success;
+}
+
+
 int gd_cave_check_replays(GdCave *cave, boolean report, boolean remove, boolean repair)
 {
   List *riter;