rnd-20060407-1-src
[rocksndiamonds.git] / src / init.c
index d228ea5064a6340cfb7183da8b60f57b73bb681d..28fda4e084bded0987e95063d08a0493bea107d6 100644 (file)
@@ -66,6 +66,11 @@ static int copy_properties[][5] =
     EL_PACMAN_LEFT,            EL_PACMAN_RIGHT,
     EL_PACMAN_UP,              EL_PACMAN_DOWN
   },
+  {
+    EL_YAMYAM,
+    EL_YAMYAM_LEFT,            EL_YAMYAM_RIGHT,
+    EL_YAMYAM_UP,              EL_YAMYAM_DOWN
+  },
   {
     EL_MOLE,
     EL_MOLE_LEFT,              EL_MOLE_RIGHT,
@@ -712,6 +717,8 @@ void InitElementGraphicInfo()
     }
   }
 
+#if 0
+  /* !!! THIS ALSO CLEARS SPECIAL FLAGS (AND IS NOT NEEDED ANYWAY) !!! */
   /* set animation mode to "none" for each graphic with only 1 frame */
   for (i = 0; i < MAX_NUM_ELEMENTS; i++)
   {
@@ -737,6 +744,7 @@ void InitElementGraphicInfo()
       }
     }
   }
+#endif
 
 #if 0
 #if DEBUG
@@ -1703,6 +1711,10 @@ static int get_special_property_bit(int element, int property_bit_nr)
     { EL_BD_FIREFLY_UP,                4       },
     { EL_BD_FIREFLY_DOWN,      4       },
     { EL_YAMYAM,               5       },
+    { EL_YAMYAM_LEFT,          5       },
+    { EL_YAMYAM_RIGHT,         5       },
+    { EL_YAMYAM_UP,            5       },
+    { EL_YAMYAM_DOWN,          5       },
     { EL_DARK_YAMYAM,          6       },
     { EL_ROBOT,                        7       },
     { EL_PACMAN,               8       },
@@ -3246,6 +3258,10 @@ void InitElementPropertiesStatic()
     EL_PLAYER_4,
     EL_SP_MURPHY,
     EL_YAMYAM,
+    EL_YAMYAM_LEFT,
+    EL_YAMYAM_RIGHT,
+    EL_YAMYAM_UP,
+    EL_YAMYAM_DOWN,
     EL_AMOEBA_WET,
     EL_AMOEBA_DRY,
     EL_AMOEBA_FULL,
@@ -4592,14 +4608,20 @@ static char *getNewArtworkIdentifier(int type)
 
 void ReloadCustomArtwork(int force_reload)
 {
-  char *gfx_new_identifier = getNewArtworkIdentifier(ARTWORK_TYPE_GRAPHICS);
-  char *snd_new_identifier = getNewArtworkIdentifier(ARTWORK_TYPE_SOUNDS);
-  char *mus_new_identifier = getNewArtworkIdentifier(ARTWORK_TYPE_MUSIC);
+  char *gfx_new_identifier;
+  char *snd_new_identifier;
+  char *mus_new_identifier;
   boolean force_reload_gfx = (force_reload & (1 << ARTWORK_TYPE_GRAPHICS));
   boolean force_reload_snd = (force_reload & (1 << ARTWORK_TYPE_SOUNDS));
   boolean force_reload_mus = (force_reload & (1 << ARTWORK_TYPE_MUSIC));
   boolean redraw_screen = FALSE;
 
+  force_reload_gfx |= AdjustGraphicsForEMC();
+
+  gfx_new_identifier = getNewArtworkIdentifier(ARTWORK_TYPE_GRAPHICS);
+  snd_new_identifier = getNewArtworkIdentifier(ARTWORK_TYPE_SOUNDS);
+  mus_new_identifier = getNewArtworkIdentifier(ARTWORK_TYPE_MUSIC);
+
   if (gfx_new_identifier != NULL || force_reload_gfx)
   {
 #if 0