rocksndiamonds-3.1.2
[rocksndiamonds.git] / src / files.c
index f5275728156c3e921462a8cf5d030149262672b1..93ab6bc8e1b564612179ae24109ec3be17b2684c 100644 (file)
@@ -114,11 +114,6 @@ void setElementChangeInfoToDefaults(struct ElementChangeInfo *change)
   change->random_percentage = 100;
   change->replace_when = CP_WHEN_EMPTY;
 
-  change->has_action = FALSE;
-  change->action_type = CA_NO_ACTION;
-  change->action_mode = CA_MODE_UNDEFINED;
-  change->action_arg = CA_ARG_UNDEFINED;
-
   for (x = 0; x < 3; x++)
     for (y = 0; y < 3; y++)
       change->target_content[x][y] = EL_EMPTY_SPACE;
@@ -298,9 +293,6 @@ static void setLevelInfoToDefaults(struct LevelInfo *level)
       element_info[element].explosion_delay = 16;
       element_info[element].ignition_delay = 8;
 
-      element_info[element].counter_initial = 0;
-      element_info[element].counter = 0;
-
       for (x = 0; x < 3; x++)
        for (y = 0; y < 3; y++)
          element_info[element].content[x][y] = EL_EMPTY_SPACE;
@@ -1306,18 +1298,8 @@ static int LoadLevel_CUS4(FILE *file, int chunk_size, struct LevelInfo *level)
     change->trigger_page = (change->trigger_page == CH_PAGE_ANY_FILE ?
                            CH_PAGE_ANY : (1 << change->trigger_page));
 
-#if 1
-    change->has_action = getFile8Bit(file);
-    change->action_type = getFile8Bit(file);
-    change->action_mode = getFile8Bit(file);
-    change->action_arg = getFile16BitBE(file);
-
-    /* some free bytes for future change property values and padding */
-    ReadUnusedBytesFromFile(file, 1);
-#else
     /* some free bytes for future change property values and padding */
     ReadUnusedBytesFromFile(file, 6);
-#endif
 
 #else
 
@@ -2721,8 +2703,7 @@ static void LoadLevel_InitElements(struct LevelInfo *level, char *filename)
   int i, j, x, y;
 
   /* map custom element change events that have changed in newer versions
-     (these following values were accidentally changed in version 3.0.1)
-     (this seems to be needed only for 'ab_levelset3' and 'ab_levelset4') */
+     (these following values were accidentally changed in version 3.0.1) */
   if (level->game_version <= VERSION_IDENT(3,0,0,0))
   {
     for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
@@ -2730,7 +2711,7 @@ static void LoadLevel_InitElements(struct LevelInfo *level, char *filename)
       int element = EL_CUSTOM_START + i;
 
       /* order of checking and copying events to be mapped is important */
-      for (j = CE_BY_OTHER_ACTION; j >= CE_COUNT_AT_ZERO; j--)
+      for (j = CE_BY_OTHER_ACTION; j >= CE_BY_PLAYER_OBSOLETE; j--)
       {
        if (HAS_CHANGE_EVENT(element, j - 2))
        {
@@ -2751,30 +2732,20 @@ static void LoadLevel_InitElements(struct LevelInfo *level, char *filename)
     }
   }
 
-#if 0
-  /* !!! TESTS SHOWED THAT THIS CODE SEGMENT IS NOT NEEDED FOR ANY LEVEL !!! */
-
   /* some custom element change events get mapped since version 3.0.3 */
-#if 1
-  if (level->game_version >= VERSION_IDENT(3,0,3,0) &&
-      level->game_version <= VERSION_IDENT(3,2,0,3))
-#endif
+  for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
   {
-    for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
-    {
-      int element = EL_CUSTOM_START + i;
+    int element = EL_CUSTOM_START + i;
 
-      if (HAS_CHANGE_EVENT(element, CE_BY_PLAYER_OBSOLETE) ||
-         HAS_CHANGE_EVENT(element, CE_BY_COLLISION_OBSOLETE))
-      {
-       SET_CHANGE_EVENT(element, CE_BY_PLAYER_OBSOLETE, FALSE);
-       SET_CHANGE_EVENT(element, CE_BY_COLLISION_OBSOLETE, FALSE);
+    if (HAS_CHANGE_EVENT(element, CE_BY_PLAYER_OBSOLETE) ||
+       HAS_CHANGE_EVENT(element, CE_BY_COLLISION_OBSOLETE))
+    {
+      SET_CHANGE_EVENT(element, CE_BY_PLAYER_OBSOLETE, FALSE);
+      SET_CHANGE_EVENT(element, CE_BY_COLLISION_OBSOLETE, FALSE);
 
-       SET_CHANGE_EVENT(element, CE_BY_DIRECT_ACTION, TRUE);
-      }
+      SET_CHANGE_EVENT(element, CE_BY_DIRECT_ACTION, TRUE);
     }
   }
-#endif
 
   /* initialize "can_change" field for old levels with only one change page */
   if (level->game_version <= VERSION_IDENT(3,0,2,0))
@@ -2789,23 +2760,20 @@ static void LoadLevel_InitElements(struct LevelInfo *level, char *filename)
   }
 
   /* correct custom element values (for old levels without these options) */
-  if (level->game_version < VERSION_IDENT(3,1,1,0))
+  for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
   {
-    for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++)
-    {
-      int element = EL_CUSTOM_START + i;
-      struct ElementInfo *ei = &element_info[element];
+    int element = EL_CUSTOM_START + i;
+    struct ElementInfo *ei = &element_info[element];
 
-      if (ei->access_direction == MV_NO_MOVING)
-       ei->access_direction = MV_ALL_DIRECTIONS;
+    if (ei->access_direction == MV_NO_MOVING)
+      ei->access_direction = MV_ALL_DIRECTIONS;
 
-      for (j = 0; j < ei->num_change_pages; j++)
-      {
-       struct ElementChangeInfo *change = &ei->change_page[j];
+    for (j = 0; j < ei->num_change_pages; j++)
+    {
+      struct ElementChangeInfo *change = &ei->change_page[j];
 
-       if (change->trigger_side == CH_SIDE_NONE)
-         change->trigger_side = CH_SIDE_ANY;
-      }
+      if (change->trigger_side == CH_SIDE_NONE)
+       change->trigger_side = CH_SIDE_ANY;
     }
   }
 
@@ -3409,19 +3377,8 @@ static void SaveLevel_CUS4(FILE *file, struct LevelInfo *level, int element)
     putFile8Bit(file, (change->trigger_page == CH_PAGE_ANY ? CH_PAGE_ANY_FILE :
                       log_2(change->trigger_page)));
 
-#if 1
-
-    putFile8Bit(file, change->has_action);
-    putFile8Bit(file, change->action_type);
-    putFile8Bit(file, change->action_mode);
-    putFile16BitBE(file, change->action_arg);
-
-    /* some free bytes for future change property values and padding */
-    WriteUnusedBytesToFile(file, 1);
-#else
     /* some free bytes for future change property values and padding */
     WriteUnusedBytesToFile(file, 6);
-#endif
 
 #else