rnd-20040118-2-src
[rocksndiamonds.git] / src / files.c
index 2f8ca7c166c3ff7ee57b65317efc0642ecb7dcf2..2f53a622faf1ad3ced0465ba89559f31ab45d32a 100644 (file)
@@ -210,10 +210,11 @@ static void setLevelInfoToDefaults(struct LevelInfo *level)
       element_info[element].move_delay_random = 0;
 
       element_info[element].move_pattern = MV_ALL_DIRECTIONS;
-      element_info[element].move_direction_initial = MV_NO_MOVING;
+      element_info[element].move_direction_initial = MV_AUTOMATIC;
       element_info[element].move_stepsize = TILEX / 8;
       element_info[element].move_enter_element = EL_EMPTY_SPACE;
       element_info[element].move_leave_element = EL_EMPTY_SPACE;
+      element_info[element].move_leave_type = LEAVE_TYPE_UNLIMITED;
 
       element_info[element].slippery_type = SLIPPERY_ANY_RANDOM;
 
@@ -240,7 +241,7 @@ static void setLevelInfoToDefaults(struct LevelInfo *level)
 
       element_info[element].modified_settings = FALSE;
     }
-    else if (IS_GROUP_ELEMENT(element))
+    else if (IS_GROUP_ELEMENT(element) || element == EL_INTERNAL_EDITOR)
     {
       /* initialize memory for list of elements in group */
       if (element_info[element].group == NULL)
@@ -741,7 +742,7 @@ static int LoadLevel_CUS3(FILE *file, int chunk_size, struct LevelInfo *level)
     {
       Error(ERR_WARN, "invalid custom element number %d", element);
 
-      element = EL_DUMMY;
+      element = EL_INTERNAL_DUMMY;
     }
 
     for (j = 0; j < MAX_ELEMENT_NAME_LEN; j++)
@@ -874,9 +875,10 @@ static int LoadLevel_CUS4(FILE *file, int chunk_size, struct LevelInfo *level)
 
   ei->move_enter_element = checkLevelElement(getFile16BitBE(file));
   ei->move_leave_element = checkLevelElement(getFile16BitBE(file));
+  ei->move_leave_type = getFile8Bit(file);
 
   /* some free bytes for future custom property values and padding */
-  ReadUnusedBytesFromFile(file, 8);
+  ReadUnusedBytesFromFile(file, 7);
 
   /* read change property values */
 
@@ -2041,9 +2043,10 @@ static void SaveLevel_CUS4(FILE *file, struct LevelInfo *level, int element)
 
   putFile16BitBE(file, ei->move_enter_element);
   putFile16BitBE(file, ei->move_leave_element);
+  putFile8Bit(file, ei->move_leave_type);
 
   /* some free bytes for future custom property values and padding */
-  WriteUnusedBytesToFile(file, 8);
+  WriteUnusedBytesToFile(file, 7);
 
   /* write change property values */