rnd-20041129-3-src
[rocksndiamonds.git] / src / init.c
index 26be1fcdaefd587020b51058cb9bbb45274d71ea..e07ea102e26ee56ab13af0f8f23aa7edd36a7c28 100644 (file)
@@ -806,40 +806,51 @@ void InitElementGraphicInfo()
 
       for (dir = 0; dir < NUM_DIRECTIONS; dir++)
       {
+       /* use action graphic as the default direction graphic, if undefined */
        int default_action_direction_graphic = element_info[i].graphic[act];
        int default_action_direction_crumbled = element_info[i].crumbled[act];
 
        /* no graphic for current action -- use default direction graphic */
-       /* !!! maybe it's better to use default _action_ graphic here !!! */
        if (default_action_direction_graphic == -1)
          default_action_direction_graphic =
            (act_remove ? default_remove_graphic :
             act_turning ?
             element_info[i].direction_graphic[ACTION_TURNING][dir] :
+            default_action_graphic != default_graphic ?
+            default_action_graphic :
             default_direction_graphic[dir]);
+
+       if (element_info[i].direction_graphic[act][dir] == -1)
+         element_info[i].direction_graphic[act][dir] =
+           default_action_direction_graphic;
+
 #if 1
        if (default_action_direction_crumbled == -1)
-         default_action_direction_crumbled = default_action_direction_graphic;
+         default_action_direction_crumbled =
+           element_info[i].direction_graphic[act][dir];
 #else
        if (default_action_direction_crumbled == -1)
          default_action_direction_crumbled =
            (act_remove ? default_remove_graphic :
             act_turning ?
             element_info[i].direction_crumbled[ACTION_TURNING][dir] :
+            default_action_crumbled != default_crumbled ?
+            default_action_crumbled :
             default_direction_crumbled[dir]);
 #endif
 
-       if (element_info[i].direction_graphic[act][dir] == -1)
-         element_info[i].direction_graphic[act][dir] =
-           default_action_direction_graphic;
-#if 1
-       if (element_info[i].direction_crumbled[act][dir] == -1)
-         element_info[i].direction_crumbled[act][dir] =
-           element_info[i].direction_graphic[act][dir];
-#else
        if (element_info[i].direction_crumbled[act][dir] == -1)
          element_info[i].direction_crumbled[act][dir] =
            default_action_direction_crumbled;
+
+#if 0
+       if (i == EL_EMC_GRASS &&
+           act == ACTION_DIGGING &&
+           dir == MV_BIT_DOWN)
+         printf("::: direction_crumbled == %d, %d, %d\n",
+                element_info[i].direction_crumbled[act][dir],
+                default_action_direction_crumbled,
+                element_info[i].crumbled[act]);
 #endif
       }