rnd-20030901-B-src
[rocksndiamonds.git] / src / init.c
index 947d0ef0d4c1aec6d10836a1b4fc26b39e9932a7..05619cc4c1fecfd35b7204760c04949fbceb1782 100644 (file)
@@ -554,22 +554,24 @@ void InitElementGraphicInfo()
   {
     for (act=0; act<NUM_ACTIONS; act++)
     {
-      if (graphic_info[element_info[i].graphic[act]].bitmap == NULL)
+      int graphic;
+
+      graphic = element_info[i].graphic[act];
+      if (graphic > 0 && graphic_info[graphic].bitmap == NULL)
        element_info[i].graphic[act] = -1;
 
-      if (graphic_info[element_info[i].crumbled[act]].bitmap == NULL)
+      graphic = element_info[i].crumbled[act];
+      if (graphic > 0 && graphic_info[graphic].bitmap == NULL)
        element_info[i].crumbled[act] = -1;
 
       for (dir=0; dir<NUM_DIRECTIONS; dir++)
       {
-       int graphic;
-
        graphic = element_info[i].direction_graphic[act][dir];
-       if (graphic_info[graphic].bitmap == NULL)
+       if (graphic > 0 && graphic_info[graphic].bitmap == NULL)
          element_info[i].direction_graphic[act][dir] = -1;
 
        graphic = element_info[i].direction_crumbled[act][dir];
-       if (graphic_info[graphic].bitmap == NULL)
+       if (graphic > 0 && graphic_info[graphic].bitmap == NULL)
          element_info[i].direction_crumbled[act][dir] = -1;
       }
     }
@@ -892,6 +894,10 @@ static void InitGraphicInfo()
 
   graphic_info = checked_calloc(num_images * sizeof(struct GraphicInfo));
 
+#if 0
+  printf("::: graphic_info: %d entries\n", num_images);
+#endif
+
 #if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND)
   if (clipmasks_initialized)
   {
@@ -915,9 +921,8 @@ static void InitGraphicInfo()
     int src_x, src_y;
     int first_frame, last_frame;
 
-#if 1
-    if (strcmp(image->token, "dynamite.EDITOR") == 0)
-      printf("::: image: '%s' [%d]\n", image->token, i);
+#if 0
+    printf("::: image: '%s' [%d]\n", image->token, i);
 #endif
 
 #if 0
@@ -930,11 +935,6 @@ static void InitGraphicInfo()
 
     /* now check if no animation frames are outside of the loaded image */
 
-#if 1
-    if (graphic_info[i].bitmap == NULL)
-      printf("::: graphic_info['%s'].bitmap == NULL\n", image->token);
-#endif
-
     if (graphic_info[i].bitmap == NULL)
       continue;                /* skip check for optional images that are undefined */
 
@@ -2835,6 +2835,12 @@ void InitElementPropertiesEngine(int engine_version)
             element_info[i].token_name,
             element_info[i].crumbled[ACTION_DEFAULT]);
 #endif
+
+    /* ---------- CAN_CHANGE ----------------------------------------------- */
+    SET_PROPERTY(i, EP_CAN_CHANGE, FALSE);     /* default: cannot change */
+    for (j=0; j < element_info[i].num_change_pages; j++)
+      if (element_info[i].change_page[j].can_change)
+       SET_PROPERTY(i, EP_CAN_CHANGE, TRUE);
   }
 
 #if 0
@@ -3247,7 +3253,7 @@ void InitLevelArtworkInfo()
 
 static void InitImages()
 {
-#if 0
+#if 1
   setLevelArtworkDir(artwork.gfx_first);
 #endif
 
@@ -3273,7 +3279,7 @@ static void InitSound(char *identifier)
   if (identifier == NULL)
     identifier = artwork.snd_current->identifier;
 
-#if 0
+#if 1
   /* set artwork path to send it to the sound server process */
   setLevelArtworkDir(artwork.snd_first);
 #endif
@@ -3287,7 +3293,7 @@ static void InitMusic(char *identifier)
   if (identifier == NULL)
     identifier = artwork.mus_current->identifier;
 
-#if 0
+#if 1
   /* set artwork path to send it to the sound server process */
   setLevelArtworkDir(artwork.mus_first);
 #endif