rnd-20060804-1-src
[rocksndiamonds.git] / src / files.c
index 0395afae669525f711ececc669caacf1678cf3a4..0185e4f602f5125c00e4e6e3c263fe9b270857ce 100644 (file)
@@ -227,8 +227,8 @@ static struct LevelFileConfigInfo chunk_config_INFO[] =
   {
     -1,                                        -1,
     -1,                                        -1,
-    NULL,                              -1,
-  },
+    NULL,                              -1
+  }
 };
 
 static struct LevelFileConfigInfo chunk_config_ELEM[] =
@@ -722,8 +722,8 @@ static struct LevelFileConfigInfo chunk_config_ELEM[] =
   {
     -1,                                        -1,
     -1,                                        -1,
-    NULL,                              -1,
-  },
+    NULL,                              -1
+  }
 };
 
 static struct LevelFileConfigInfo chunk_config_NOTE[] =
@@ -750,8 +750,8 @@ static struct LevelFileConfigInfo chunk_config_NOTE[] =
   {
     -1,                                        -1,
     -1,                                        -1,
-    NULL,                              -1,
-  },
+    NULL,                              -1
+  }
 };
 
 static struct LevelFileConfigInfo chunk_config_CUSX_base[] =
@@ -956,7 +956,7 @@ static struct LevelFileConfigInfo chunk_config_CUSX_base[] =
     -1,                                        -1,
     NULL,                              -1,
     NULL
-  },
+  }
 };
 
 static struct LevelFileConfigInfo chunk_config_CUSX_change[] =
@@ -1094,8 +1094,8 @@ static struct LevelFileConfigInfo chunk_config_CUSX_change[] =
   {
     -1,                                        -1,
     -1,                                        -1,
-    NULL,                              -1,
-  },
+    NULL,                              -1
+  }
 };
 
 static struct LevelFileConfigInfo chunk_config_GRPX[] =
@@ -1135,8 +1135,8 @@ static struct LevelFileConfigInfo chunk_config_GRPX[] =
   {
     -1,                                        -1,
     -1,                                        -1,
-    NULL,                              -1,
-  },
+    NULL,                              -1
+  }
 };
 
 static struct LevelFileConfigInfo chunk_config_CONF[] =                /* (OBSOLETE) */
@@ -1190,8 +1190,8 @@ static struct LevelFileConfigInfo chunk_config_CONF[] =           /* (OBSOLETE) */
   {
     -1,                                        -1,
     -1,                                        -1,
-    NULL,                              -1,
-  },
+    NULL,                              -1
+  }
 };
 
 static struct
@@ -1738,6 +1738,11 @@ static void setLevelInfoToDefaults(struct LevelInfo *level)
     int element = i;
     struct ElementInfo *ei = &element_info[element];
 
+    /* never initialize clipboard elements after the very first time */
+    /* (to be able to use clipboard elements between several levels) */
+    if (IS_CLIPBOARD_ELEMENT(element) && clipboard_elements_initialized)
+      continue;
+
     if (IS_ENVELOPE(element))
     {
       int envelope_nr = element - EL_ENVELOPE_1;
@@ -1760,11 +1765,6 @@ static void setLevelInfoToDefaults(struct LevelInfo *level)
     }
 #endif
 
-    /* never initialize clipboard elements after the very first time */
-    /* (to be able to use clipboard elements between several levels) */
-    if (IS_CLIPBOARD_ELEMENT(element) && clipboard_elements_initialized)
-      continue;
-
     setElementChangePages(ei, 1);
     setElementChangeInfoToDefaults(ei->change);
 
@@ -6853,19 +6853,20 @@ void SaveScore(int nr)
 #define SETUP_TOKEN_SKIP_LEVELS                        14
 #define SETUP_TOKEN_TIME_LIMIT                 15
 #define SETUP_TOKEN_FULLSCREEN                 16
-#define SETUP_TOKEN_ASK_ON_ESCAPE              17
-#define SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR       18
-#define SETUP_TOKEN_QUICK_SWITCH               19
-#define SETUP_TOKEN_INPUT_ON_FOCUS             20
-#define SETUP_TOKEN_PREFER_AGA_GRAPHICS                21
-#define SETUP_TOKEN_GRAPHICS_SET               22
-#define SETUP_TOKEN_SOUNDS_SET                 23
-#define SETUP_TOKEN_MUSIC_SET                  24
-#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS    25
-#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS      26
-#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC       27
-
-#define NUM_GLOBAL_SETUP_TOKENS                        28
+#define SETUP_TOKEN_FULLSCREEN_MODE            17
+#define SETUP_TOKEN_ASK_ON_ESCAPE              18
+#define SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR       19
+#define SETUP_TOKEN_QUICK_SWITCH               20
+#define SETUP_TOKEN_INPUT_ON_FOCUS             21
+#define SETUP_TOKEN_PREFER_AGA_GRAPHICS                22
+#define SETUP_TOKEN_GRAPHICS_SET               23
+#define SETUP_TOKEN_SOUNDS_SET                 24
+#define SETUP_TOKEN_MUSIC_SET                  25
+#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS    26
+#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS      27
+#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC       28
+
+#define NUM_GLOBAL_SETUP_TOKENS                        29
 
 /* editor setup */
 #define SETUP_TOKEN_EDITOR_EL_BOULDERDASH      0
@@ -6881,9 +6882,11 @@ void SaveScore(int nr)
 #define SETUP_TOKEN_EDITOR_EL_HEADLINES                10
 #define SETUP_TOKEN_EDITOR_EL_USER_DEFINED     11
 #define SETUP_TOKEN_EDITOR_EL_DYNAMIC          12
-#define SETUP_TOKEN_EDITOR_SHOW_ELEMENT_TOKEN  13
+#define SETUP_TOKEN_EDITOR_EL_BY_GAME          13
+#define SETUP_TOKEN_EDITOR_EL_BY_TYPE          14
+#define SETUP_TOKEN_EDITOR_SHOW_ELEMENT_TOKEN  15
 
-#define NUM_EDITOR_SETUP_TOKENS                        14
+#define NUM_EDITOR_SETUP_TOKENS                        16
 
 /* editor cascade setup */
 #define SETUP_TOKEN_EDITOR_CASCADE_BD          0
@@ -6897,8 +6900,8 @@ void SaveScore(int nr)
 #define SETUP_TOKEN_EDITOR_CASCADE_TEXT                8
 #define SETUP_TOKEN_EDITOR_CASCADE_CE          9
 #define SETUP_TOKEN_EDITOR_CASCADE_GE          10
-#define SETUP_TOKEN_EDITOR_CASCADE_USER                11
-#define SETUP_TOKEN_EDITOR_CASCADE_GENERIC     12
+#define SETUP_TOKEN_EDITOR_CASCADE_REF         11
+#define SETUP_TOKEN_EDITOR_CASCADE_USER                12
 #define SETUP_TOKEN_EDITOR_CASCADE_DYNAMIC     13
 
 #define NUM_EDITOR_CASCADE_SETUP_TOKENS                14
@@ -6974,6 +6977,7 @@ static struct TokenInfo global_setup_tokens[] =
   { TYPE_SWITCH, &si.skip_levels,      "skip_levels"                   },
   { TYPE_SWITCH, &si.time_limit,       "time_limit"                    },
   { TYPE_SWITCH, &si.fullscreen,       "fullscreen"                    },
+  { TYPE_STRING, &si.fullscreen_mode,  "fullscreen_mode"               },
   { TYPE_SWITCH, &si.ask_on_escape,    "ask_on_escape"                 },
   { TYPE_SWITCH, &si.ask_on_escape_editor, "ask_on_escape_editor"      },
   { TYPE_SWITCH, &si.quick_switch,     "quick_player_switch"           },
@@ -6987,8 +6991,19 @@ static struct TokenInfo global_setup_tokens[] =
   { TYPE_SWITCH, &si.override_level_music,    "override_level_music"   },
 };
 
+static boolean not_used = FALSE;
 static struct TokenInfo editor_setup_tokens[] =
 {
+#if 1
+  { TYPE_SWITCH, &not_used,            "editor.el_boulderdash"         },
+  { TYPE_SWITCH, &not_used,            "editor.el_emerald_mine"        },
+  { TYPE_SWITCH, &not_used,            "editor.el_emerald_mine_club"   },
+  { TYPE_SWITCH, &not_used,            "editor.el_more"                },
+  { TYPE_SWITCH, &not_used,            "editor.el_sokoban"             },
+  { TYPE_SWITCH, &not_used,            "editor.el_supaplex"            },
+  { TYPE_SWITCH, &not_used,            "editor.el_diamond_caves"       },
+  { TYPE_SWITCH, &not_used,            "editor.el_dx_boulderdash"      },
+#else
   { TYPE_SWITCH, &sei.el_boulderdash,  "editor.el_boulderdash"         },
   { TYPE_SWITCH, &sei.el_emerald_mine, "editor.el_emerald_mine"        },
   { TYPE_SWITCH, &sei.el_emerald_mine_club,"editor.el_emerald_mine_club"},
@@ -6997,11 +7012,18 @@ static struct TokenInfo editor_setup_tokens[] =
   { TYPE_SWITCH, &sei.el_supaplex,     "editor.el_supaplex"            },
   { TYPE_SWITCH, &sei.el_diamond_caves,        "editor.el_diamond_caves"       },
   { TYPE_SWITCH, &sei.el_dx_boulderdash,"editor.el_dx_boulderdash"     },
+#endif
   { TYPE_SWITCH, &sei.el_chars,                "editor.el_chars"               },
   { TYPE_SWITCH, &sei.el_custom,       "editor.el_custom"              },
+#if 1
+  { TYPE_SWITCH, &not_used,            "editor.el_headlines"           },
+#else
   { TYPE_SWITCH, &sei.el_headlines,    "editor.el_headlines"           },
+#endif
   { TYPE_SWITCH, &sei.el_user_defined, "editor.el_user_defined"        },
   { TYPE_SWITCH, &sei.el_dynamic,      "editor.el_dynamic"             },
+  { TYPE_SWITCH, &sei.el_by_game,      "editor.el_by_game"             },
+  { TYPE_SWITCH, &sei.el_by_type,      "editor.el_by_type"             },
   { TYPE_SWITCH, &sei.show_element_token,"editor.show_element_token"   },
 };
 
@@ -7018,6 +7040,7 @@ static struct TokenInfo editor_cascade_setup_tokens[] =
   { TYPE_SWITCH, &seci.el_chars,       "editor.cascade.el_chars"       },
   { TYPE_SWITCH, &seci.el_ce,          "editor.cascade.el_ce"          },
   { TYPE_SWITCH, &seci.el_ge,          "editor.cascade.el_ge"          },
+  { TYPE_SWITCH, &seci.el_ref,         "editor.cascade.el_ref"         },
   { TYPE_SWITCH, &seci.el_user,                "editor.cascade.el_user"        },
   { TYPE_SWITCH, &seci.el_dynamic,     "editor.cascade.el_dynamic"     },
 };
@@ -7104,6 +7127,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si)
   si->skip_levels = TRUE;
   si->time_limit = TRUE;
   si->fullscreen = FALSE;
+  si->fullscreen_mode = getStringCopy(DEFAULT_FULLSCREEN_MODE);
   si->ask_on_escape = TRUE;
   si->ask_on_escape_editor = TRUE;
   si->quick_switch = FALSE;
@@ -7184,6 +7208,7 @@ static void setSetupInfoToDefaults_EditorCascade(struct SetupInfo *si)
   si->editor_cascade.el_chars  = FALSE;
   si->editor_cascade.el_ce     = FALSE;
   si->editor_cascade.el_ge     = FALSE;
+  si->editor_cascade.el_ref    = FALSE;
   si->editor_cascade.el_user   = FALSE;
   si->editor_cascade.el_dynamic        = FALSE;
 }
@@ -7410,7 +7435,7 @@ void SaveSetup_EditorCascade()
 
   seci = setup.editor_cascade;
   fprintf(file, "\n");
-  for (i = 0; i < NUM_EDITOR_SETUP_TOKENS; i++)
+  for (i = 0; i < NUM_EDITOR_CASCADE_SETUP_TOKENS; i++)
     fprintf(file, "%s\n", getSetupLine(editor_cascade_setup_tokens, "", i));
 
   fclose(file);