rnd-20030423-2-src
[rocksndiamonds.git] / src / files.c
index d13c28716f8a8fea115d496ca301432267ca3060..6038711a994f5568680b1a1af62dbc0b5690f718 100644 (file)
@@ -17,6 +17,7 @@
 #include "libgame/libgame.h"
 
 #include "files.h"
+#include "init.h"
 #include "tools.h"
 #include "tape.h"
 
@@ -97,7 +98,7 @@ static void setLevelInfoToDefaults()
   for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
   {
     level.custom_element_successor[i] = EL_EMPTY_SPACE;
-    Properties1[EL_CUSTOM_START + i] = EP_BITMASK_DEFAULT;
+    Properties[EL_CUSTOM_START + i][EP_BITFIELD_BASE] = EP_BITMASK_DEFAULT;
   }
 
   BorderElement = EL_STEELWALL;
@@ -337,7 +338,7 @@ static int LoadLevel_CUS1(FILE *file, int chunk_size, struct LevelInfo *level)
     int properties = getFile32BitBE(file);
 
     if (IS_CUSTOM_ELEMENT(element))
-      Properties1[element] = properties;
+      Properties[element][EP_BITFIELD_BASE] = properties;
     else
       Error(ERR_WARN, "invalid custom element number %d", element);
   }
@@ -581,6 +582,7 @@ void LoadLevel(int level_nr)
   char *filename = getLevelFilename(level_nr);
 
   LoadLevelFromFilename(filename);
+  InitElementPropertiesEngine(level.game_version);
 }
 
 static void SaveLevel_VERS(FILE *file, struct LevelInfo *level)
@@ -726,12 +728,12 @@ static void SaveLevel_CUS1(FILE *file, struct LevelInfo *level,
   {
     int element = EL_CUSTOM_START + i;
 
-    if (Properties1[element] != EP_BITMASK_DEFAULT)
+    if (Properties[element][EP_BITFIELD_BASE] != EP_BITMASK_DEFAULT)
     {
       if (check < num_changed_custom_elements)
       {
        putFile16BitBE(file, element);
-       putFile32BitBE(file, Properties1[element]);
+       putFile32BitBE(file, Properties[element][EP_BITFIELD_BASE]);
       }
 
       check++;
@@ -813,7 +815,7 @@ void SaveLevel(int level_nr)
 
   /* check for non-standard custom elements and calculate "CUS1" chunk size */
   for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
-    if (Properties1[EL_CUSTOM_START + i] != EP_BITMASK_DEFAULT)
+    if (Properties[EL_CUSTOM_START +i][EP_BITFIELD_BASE] != EP_BITMASK_DEFAULT)
       num_changed_custom_elements1++;
 
   /* check for non-standard custom elements and calculate "CUS2" chunk size */