rnd-20061003-2-src
[rocksndiamonds.git] / src / files.c
index 8c2b6e1b0ba7914d4badc787cc0acd5708ad4acb..1287d1ecd2d1fe041f9edf408ffaa75944c49e17 100644 (file)
@@ -1,7 +1,7 @@
 /***********************************************************
 * Rocks'n'Diamonds -- McDuffin Strikes Back!               *
 *----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment                      *
+* (c) 1995-2006 Artsoft Entertainment                      *
 *               Holger Schemel                             *
 *               Detmolder Strasse 189                      *
 *               33604 Bielefeld                            *
@@ -5276,6 +5276,25 @@ void SaveLevelTemplate()
   SaveLevelFromFilename(&level, filename);
 }
 
+boolean SaveLevelChecked(int nr)
+{
+  char *filename = getDefaultLevelFilename(nr);
+  boolean new_level = !fileExists(filename);
+  boolean level_saved = FALSE;
+
+  if (new_level || Request("Save this level and kill the old ?", REQ_ASK))
+  {
+    SaveLevel(nr);
+
+    if (new_level)
+      Request("Level saved !", REQ_CONFIRM);
+
+    level_saved = TRUE;
+  }
+
+  return level_saved;
+}
+
 void DumpLevel(struct LevelInfo *level)
 {
   if (level->no_valid_file)
@@ -5704,7 +5723,9 @@ void SaveTape(int nr)
 {
   char *filename = getTapeFilename(nr);
   FILE *file;
+#if 0
   boolean new_tape = TRUE;
+#endif
   int num_participating_players = 0;
   int info_chunk_size;
   int body_chunk_size;
@@ -5712,6 +5733,7 @@ void SaveTape(int nr)
 
   InitTapeDirectory(leveldir_current->subdir);
 
+#if 0
   /* if a tape still exists, ask to overwrite it */
   if (fileExists(filename))
   {
@@ -5719,6 +5741,7 @@ void SaveTape(int nr)
     if (!Request("Replace old tape ?", REQ_ASK))
       return;
   }
+#endif
 
   if (!(file = fopen(filename, MODE_WRITE)))
   {
@@ -5758,8 +5781,29 @@ void SaveTape(int nr)
 
   tape.changed = FALSE;
 
+#if 0
   if (new_tape)
     Request("Tape saved !", REQ_CONFIRM);
+#endif
+}
+
+boolean SaveTapeChecked(int nr)
+{
+  char *filename = getTapeFilename(nr);
+  boolean new_tape = !fileExists(filename);
+  boolean tape_saved = FALSE;
+
+  if (new_tape || Request("Replace old tape ?", REQ_ASK))
+  {
+    SaveTape(nr);
+
+    if (new_tape)
+      Request("Tape saved !", REQ_CONFIRM);
+
+    tape_saved = TRUE;
+  }
+
+  return tape_saved;
 }
 
 void DumpTape(struct TapeInfo *tape)
@@ -5915,7 +5959,7 @@ void SaveScore(int nr)
 #define SETUP_TOKEN_TOONS                      5
 #define SETUP_TOKEN_SCROLL_DELAY               6
 #define SETUP_TOKEN_SOFT_SCROLLING             7
-#define SETUP_TOKEN_FADING                     8
+#define SETUP_TOKEN_FADE_SCREENS               8
 #define SETUP_TOKEN_AUTORECORD                 9
 #define SETUP_TOKEN_SHOW_TITLESCREEN           10
 #define SETUP_TOKEN_QUICK_DOORS                        11
@@ -6039,7 +6083,7 @@ static struct TokenInfo global_setup_tokens[] =
   { TYPE_SWITCH, &si.toons,            "toons"                         },
   { TYPE_SWITCH, &si.scroll_delay,     "scroll_delay"                  },
   { TYPE_SWITCH, &si.soft_scrolling,   "soft_scrolling"                },
-  { TYPE_SWITCH, &si.fading,           "screen_fading"                 },
+  { TYPE_SWITCH, &si.fade_screens,     "fade_screens"                  },
   { TYPE_SWITCH, &si.autorecord,       "automatic_tape_recording"      },
   { TYPE_SWITCH, &si.show_titlescreen, "show_titlescreen"              },
   { TYPE_SWITCH, &si.quick_doors,      "quick_doors"                   },
@@ -6189,7 +6233,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si)
   si->direct_draw = !si->double_buffering;
   si->scroll_delay = TRUE;
   si->soft_scrolling = TRUE;
-  si->fading = TRUE;
+  si->fade_screens = TRUE;
   si->autorecord = TRUE;
   si->show_titlescreen = TRUE;
   si->quick_doors = FALSE;