rnd-20020921-3-src
authorHolger Schemel <info@artsoft.org>
Sat, 21 Sep 2002 03:18:28 +0000 (05:18 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:38:36 +0000 (10:38 +0200)
src/conftime.h
src/editor.c
src/game.c
src/init.c
src/main.c
src/main.h
src/tools.c

index eccc4c9e4cfcff1532e6216c34acd4387f7ff642..ace6340a4b97e74c58353434275a1e067fe50670 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2002-09-21 01:01]"
+#define COMPILE_DATE_STRING "[2002-09-21 01:19]"
index 922dfe0699deaf9c27600642299f01c2b3531cc1..6dc35c7c3270b3ecc6102684314bed2c30d92c1c 100644 (file)
@@ -760,23 +760,23 @@ int editor_element[] =
   EL_STEELWALL,
 
   EL_BD_WALL,
-  EL_MAGIC_WALL_BD_OFF,
+  EL_BD_MAGIC_WALL,
   EL_EXIT_CLOSED,
   EL_EXIT_OPEN,
 
   EL_BD_DIAMOND,
-  EL_BUTTERFLY_UP,
-  EL_FIREFLY_UP,
+  EL_BD_BUTTERFLY_UP,
+  EL_BD_FIREFLY_UP,
   EL_BD_ROCK,
 
-  EL_BUTTERFLY_LEFT,
-  EL_FIREFLY_LEFT,
-  EL_BUTTERFLY_RIGHT,
-  EL_FIREFLY_RIGHT,
+  EL_BD_BUTTERFLY_LEFT,
+  EL_BD_FIREFLY_LEFT,
+  EL_BD_BUTTERFLY_RIGHT,
+  EL_BD_FIREFLY_RIGHT,
 
   EL_BD_AMOEBA,
-  EL_BUTTERFLY_DOWN,
-  EL_FIREFLY_DOWN,
+  EL_BD_BUTTERFLY_DOWN,
+  EL_BD_FIREFLY_DOWN,
   EL_EMPTY,
 
   EL_CHAR('E'),
@@ -889,10 +889,10 @@ int editor_element[] =
   EL_GATE3_GRAY,
   EL_GATE4_GRAY,
 
-  EL_ARROW_LEFT,
-  EL_ARROW_RIGHT,
-  EL_ARROW_UP,
-  EL_ARROW_DOWN,
+  EL_ARROW_BLUE_LEFT,
+  EL_ARROW_BLUE_RIGHT,
+  EL_ARROW_BLUE_UP,
+  EL_ARROW_BLUE_DOWN,
 
   EL_AMOEBA_FULL,
   EL_EMERALD_YELLOW,
@@ -942,7 +942,7 @@ int editor_element[] =
   EL_EMPTY,
   EL_MOLE_DOWN,
   EL_BALLOON,
-  EL_BALLOON_SEND_ANY,
+  EL_BALLOON_SEND_ANY_DIRECTION,
 
   EL_BALLOON_SEND_LEFT,
   EL_BALLOON_SEND_RIGHT,
@@ -980,9 +980,9 @@ int editor_element[] =
   EL_CHAR('A'),
   EL_CHAR('N'),
 
-  EL_SOKOBAN_OBJEKT,
-  EL_SOKOBAN_FELD_LEER,
-  EL_SOKOBAN_FELD_VOLL,
+  EL_SOKOBAN_OBJECT,
+  EL_SOKOBAN_FIELD_EMPTY,
+  EL_SOKOBAN_FIELD_FULL,
   EL_STEELWALL,
 
   EL_CHAR('S'),
@@ -1026,7 +1026,7 @@ int editor_element[] =
   EL_SP_PORT_XY,
 
   EL_SP_ELECTRON,
-  EL_SP_BUG,
+  EL_SP_BUGGY_BASE,
   EL_SP_CHIP_LEFT,
   EL_SP_CHIP_RIGHT,
 
@@ -1107,11 +1107,11 @@ int editor_element[] =
 
   EL_TIMEGATE_CLOSED,
   EL_TIMEGATE_OPEN,
-  EL_TIMEGATE_SWITCH_OFF,
+  EL_TIMEGATE_SWITCH,
   EL_EMPTY,
 
   EL_LANDMINE,
-  EL_SAND_INVISIBLE,
+  EL_INVISIBLE_SAND,
   EL_STEELWALL_SLANTED,
   EL_EMPTY,
 
@@ -1121,7 +1121,7 @@ int editor_element[] =
   EL_LIGHT_SWITCH_ACTIVE,
 
   EL_SHIELD_NORMAL,
-  EL_SHIELD_ACTIVE,
+  EL_SHIELD_DEADLY,
   EL_EXTRA_TIME,
   EL_EMPTY,
 
@@ -1147,20 +1147,20 @@ int editor_element[] =
 
   EL_SPRING,
   EL_TUBE_RIGHT_DOWN,
-  EL_TUBE_HORIZ_DOWN,
+  EL_TUBE_HORIZONTAL_DOWN,
   EL_TUBE_LEFT_DOWN,
 
   EL_TUBE_HORIZONTAL,
-  EL_TUBE_VERT_RIGHT,
-  EL_TUBE_CROSS,
-  EL_TUBE_VERT_LEFT,
+  EL_TUBE_VERTICAL_RIGHT,
+  EL_TUBE_ALL,
+  EL_TUBE_VERTICAL_LEFT,
 
   EL_TUBE_VERTICAL,
   EL_TUBE_RIGHT_UP,
-  EL_TUBE_HORIZ_UP,
+  EL_TUBE_HORIZONTAL_UP,
   EL_TUBE_LEFT_UP,
 
-  EL_TRAP_INACTIVE,
+  EL_TRAP,
   EL_DX_SUPABOMB,
   EL_EMPTY,
   EL_EMPTY,
@@ -2620,18 +2620,18 @@ static void DrawPropertiesWindow()
     { EL_BUG_UP,       &level.score[SC_KAEFER],        TEXT_SMASHING },
     { EL_BUG_LEFT,     &level.score[SC_KAEFER],        TEXT_SMASHING },
     { EL_BUG_DOWN,     &level.score[SC_KAEFER],        TEXT_SMASHING },
-    { EL_BUTTERFLY_RIGHT,&level.score[SC_KAEFER],      TEXT_SMASHING },
-    { EL_BUTTERFLY_UP, &level.score[SC_KAEFER],        TEXT_SMASHING },
-    { EL_BUTTERFLY_LEFT,&level.score[SC_KAEFER],       TEXT_SMASHING },
-    { EL_BUTTERFLY_DOWN,&level.score[SC_KAEFER],       TEXT_SMASHING },
+    { EL_BD_BUTTERFLY_RIGHT,&level.score[SC_KAEFER],   TEXT_SMASHING },
+    { EL_BD_BUTTERFLY_UP,   &level.score[SC_KAEFER],   TEXT_SMASHING },
+    { EL_BD_BUTTERFLY_LEFT, &level.score[SC_KAEFER],   TEXT_SMASHING },
+    { EL_BD_BUTTERFLY_DOWN, &level.score[SC_KAEFER],   TEXT_SMASHING },
     { EL_SPACESHIP_RIGHT,&level.score[SC_FLIEGER],     TEXT_SMASHING },
-    { EL_SPACESHIP_UP, &level.score[SC_FLIEGER],       TEXT_SMASHING },
-    { EL_SPACESHIP_LEFT,&level.score[SC_FLIEGER],      TEXT_SMASHING },
-    { EL_SPACESHIP_DOWN,&level.score[SC_FLIEGER],      TEXT_SMASHING },
-    { EL_FIREFLY_RIGHT,        &level.score[SC_FLIEGER],       TEXT_SMASHING },
-    { EL_FIREFLY_UP,   &level.score[SC_FLIEGER],       TEXT_SMASHING },
-    { EL_FIREFLY_LEFT, &level.score[SC_FLIEGER],       TEXT_SMASHING },
-    { EL_FIREFLY_DOWN, &level.score[SC_FLIEGER],       TEXT_SMASHING },
+    { EL_SPACESHIP_UP,  &level.score[SC_FLIEGER],      TEXT_SMASHING },
+    { EL_SPACESHIP_LEFT, &level.score[SC_FLIEGER],     TEXT_SMASHING },
+    { EL_SPACESHIP_DOWN, &level.score[SC_FLIEGER],     TEXT_SMASHING },
+    { EL_BD_FIREFLY_RIGHT,&level.score[SC_FLIEGER],    TEXT_SMASHING },
+    { EL_BD_FIREFLY_UP,          &level.score[SC_FLIEGER],     TEXT_SMASHING },
+    { EL_BD_FIREFLY_LEFT, &level.score[SC_FLIEGER],    TEXT_SMASHING },
+    { EL_BD_FIREFLY_DOWN, &level.score[SC_FLIEGER],    TEXT_SMASHING },
     { EL_YAMYAM,       &level.score[SC_MAMPFER],       TEXT_SMASHING },
     { EL_DARK_YAMYAM,  &level.score[SC_MAMPFER],       TEXT_SMASHING },
     { EL_ROBOT,                &level.score[SC_ROBOT],         TEXT_SMASHING },
index b799fab19bbc4bc5ce50e67ca98a26fcac85c8a0..502d60d7b50dd68b6132b81a6ae84a0eeed3f4a7 100644 (file)
@@ -350,16 +350,16 @@ static void InitField(int x, int y, boolean init_game)
     case EL_SPACESHIP_LEFT:
     case EL_SPACESHIP_DOWN:
     case EL_SPACESHIP:
-    case EL_BUTTERFLY_RIGHT:
-    case EL_BUTTERFLY_UP:
-    case EL_BUTTERFLY_LEFT:
-    case EL_BUTTERFLY_DOWN:
-    case EL_BUTTERFLY:
-    case EL_FIREFLY_RIGHT:
-    case EL_FIREFLY_UP:
-    case EL_FIREFLY_LEFT:
-    case EL_FIREFLY_DOWN:
-    case EL_FIREFLY:
+    case EL_BD_BUTTERFLY_RIGHT:
+    case EL_BD_BUTTERFLY_UP:
+    case EL_BD_BUTTERFLY_LEFT:
+    case EL_BD_BUTTERFLY_DOWN:
+    case EL_BD_BUTTERFLY:
+    case EL_BD_FIREFLY_RIGHT:
+    case EL_BD_FIREFLY_UP:
+    case EL_BD_FIREFLY_LEFT:
+    case EL_BD_FIREFLY_DOWN:
+    case EL_BD_FIREFLY:
     case EL_PACMAN_RIGHT:
     case EL_PACMAN_UP:
     case EL_PACMAN_LEFT:
@@ -386,7 +386,7 @@ static void InitField(int x, int y, boolean init_game)
     case EL_AMOEBA_DROP:
       if (y == lev_fieldy - 1)
       {
-       Feld[x][y] = EL_AMOEBING;
+       Feld[x][y] = EL_AMOEBA_CREATING;
        Store[x][y] = EL_AMOEBA_WET;
       }
       break;
@@ -399,7 +399,7 @@ static void InitField(int x, int y, boolean init_game)
       local_player->lights_still_needed++;
       break;
 
-    case EL_SOKOBAN_FELD_LEER:
+    case EL_SOKOBAN_FIELD_EMPTY:
       local_player->sokobanfields_still_needed++;
       break;
 
@@ -640,11 +640,11 @@ static void InitGameEngine()
          ~EP_BIT_EM_SLIPPERY_WALL;
     }
 
-    /* "EL_MAUERND" was not slippery for EM gems in version 2.0.1 */
+    /* "EL_WALL_GROWING_ACTIVE" wasn't slippery for EM gems in version 2.0.1 */
     if (level.em_slippery_gems && game.engine_version > VERSION_IDENT(2,0,1))
-      Elementeigenschaften2[EL_MAUERND] |=  EP_BIT_EM_SLIPPERY_WALL;
+      Elementeigenschaften2[EL_WALL_GROWING_ACTIVE] |= EP_BIT_EM_SLIPPERY_WALL;
     else
-      Elementeigenschaften2[EL_MAUERND] &= ~EP_BIT_EM_SLIPPERY_WALL;
+      Elementeigenschaften2[EL_WALL_GROWING_ACTIVE] &=~EP_BIT_EM_SLIPPERY_WALL;
   }
 }
 
@@ -1044,20 +1044,20 @@ void InitMovDir(int x, int y)
       MovDir[x][y] = direction[0][element - EL_SPACESHIP_RIGHT];
       break;
 
-    case EL_BUTTERFLY_RIGHT:
-    case EL_BUTTERFLY_UP:
-    case EL_BUTTERFLY_LEFT:
-    case EL_BUTTERFLY_DOWN:
-      Feld[x][y] = EL_BUTTERFLY;
-      MovDir[x][y] = direction[0][element - EL_BUTTERFLY_RIGHT];
+    case EL_BD_BUTTERFLY_RIGHT:
+    case EL_BD_BUTTERFLY_UP:
+    case EL_BD_BUTTERFLY_LEFT:
+    case EL_BD_BUTTERFLY_DOWN:
+      Feld[x][y] = EL_BD_BUTTERFLY;
+      MovDir[x][y] = direction[0][element - EL_BD_BUTTERFLY_RIGHT];
       break;
 
-    case EL_FIREFLY_RIGHT:
-    case EL_FIREFLY_UP:
-    case EL_FIREFLY_LEFT:
-    case EL_FIREFLY_DOWN:
-      Feld[x][y] = EL_FIREFLY;
-      MovDir[x][y] = direction[0][element - EL_FIREFLY_RIGHT];
+    case EL_BD_FIREFLY_RIGHT:
+    case EL_BD_FIREFLY_UP:
+    case EL_BD_FIREFLY_LEFT:
+    case EL_BD_FIREFLY_DOWN:
+      Feld[x][y] = EL_BD_FIREFLY;
+      MovDir[x][y] = direction[0][element - EL_BD_FIREFLY_RIGHT];
       break;
 
     case EL_PACMAN_RIGHT:
@@ -1088,8 +1088,8 @@ void InitMovDir(int x, int y)
       MovDir[x][y] = 1 << RND(4);
       if (element != EL_BUG &&
          element != EL_SPACESHIP &&
-         element != EL_BUTTERFLY &&
-         element != EL_FIREFLY)
+         element != EL_BD_BUTTERFLY &&
+         element != EL_BD_FIREFLY)
        break;
 
       for (i=0; i<4; i++)
@@ -1099,12 +1099,12 @@ void InitMovDir(int x, int y)
 
        if (!IN_LEV_FIELD(x1, y1) || !IS_FREE(x1, y1))
        {
-         if (element == EL_BUG || element == EL_BUTTERFLY)
+         if (element == EL_BUG || element == EL_BD_BUTTERFLY)
          {
            MovDir[x][y] = direction[0][i];
            break;
          }
-         else if (element == EL_SPACESHIP || element == EL_FIREFLY ||
+         else if (element == EL_SPACESHIP || element == EL_BD_FIREFLY ||
                   element == EL_SP_SNIKSNAK || element == EL_SP_ELECTRON)
          {
            MovDir[x][y] = direction[1][i];
@@ -1425,7 +1425,7 @@ void RemoveMovingField(int x, int y)
   if (Feld[x][y] == EL_BLOCKED &&
       (Feld[oldx][oldy] == EL_QUICKSAND_EMPTYING ||
        Feld[oldx][oldy] == EL_MAGIC_WALL_EMPTYING ||
-       Feld[oldx][oldy] == EL_MAGIC_WALL_BD_EMPTYING ||
+       Feld[oldx][oldy] == EL_BD_MAGIC_WALL_EMPTYING ||
        Feld[oldx][oldy] == EL_AMOEBA_DRIPPING))
     Feld[oldx][oldy] = get_next_element(Feld[oldx][oldy]);
   else
@@ -1545,7 +1545,7 @@ void Explode(int ex, int ey, int phase, int mode)
        RemoveMovingField(x, y);
       }
 
-      if (IS_MASSIVE(element) || element == EL_BURNING)
+      if (IS_MASSIVE(element) || element == EL_DRAGON_FIRE)
        continue;
 
       if (IS_PLAYER(x, y) && SHIELD_ON(PLAYERINFO(x, y)))
@@ -1560,7 +1560,7 @@ void Explode(int ex, int ey, int phase, int mode)
        continue;
       }
 
-      if (element == EL_EXPLODING)
+      if (element == EL_EXPLOSION)
        element = Store2[x][y];
 
       if (IS_PLAYER(ex, ey) && !PLAYER_PROTECTED(ex, ey))
@@ -1591,7 +1591,7 @@ void Explode(int ex, int ey, int phase, int mode)
        Store[x][y] = EL_EMERALD_PURPLE;
       else if (center_element == EL_BUG)
        Store[x][y] = ((x == ex && y == ey) ? EL_DIAMOND : EL_EMERALD);
-      else if (center_element == EL_BUTTERFLY)
+      else if (center_element == EL_BD_BUTTERFLY)
        Store[x][y] = EL_BD_DIAMOND;
       else if (center_element == EL_SP_ELECTRON)
        Store[x][y] = EL_SP_INFOTRON;
@@ -1625,13 +1625,13 @@ void Explode(int ex, int ey, int phase, int mode)
       if (AmoebaNr[x][y] &&
          (element == EL_AMOEBA_FULL ||
           element == EL_BD_AMOEBA ||
-          element == EL_AMOEBING))
+          element == EL_AMOEBA_CREATING))
       {
        AmoebaCnt[AmoebaNr[x][y]]--;
        AmoebaCnt2[AmoebaNr[x][y]]--;
       }
 
-      Feld[x][y] = EL_EXPLODING;
+      Feld[x][y] = EL_EXPLOSION;
       MovDir[x][y] = MovPos[x][y] = 0;
       AmoebaNr[x][y] = 0;
       Frame[x][y] = 1;
@@ -1756,14 +1756,14 @@ void DynaExplode(int ex, int ey)
       element = Feld[x][y];
 
       /* do not restart explosions of fields with active bombs */
-      if (element == EL_EXPLODING && IS_ACTIVE_BOMB(Store2[x][y]))
+      if (element == EL_EXPLOSION && IS_ACTIVE_BOMB(Store2[x][y]))
        continue;
 
       Explode(x, y, EX_PHASE_START, EX_BORDER);
 
       if (element != EL_EMPTY &&
          element != EL_SAND &&
-         element != EL_EXPLODING &&
+         element != EL_EXPLOSION &&
          !dynabomb_xl)
        break;
     }
@@ -1788,8 +1788,8 @@ void Bang(int x, int y)
   {
     case EL_BUG:
     case EL_SPACESHIP:
-    case EL_BUTTERFLY:
-    case EL_FIREFLY:
+    case EL_BD_BUTTERFLY:
+    case EL_BD_FIREFLY:
     case EL_YAMYAM:
     case EL_DARK_YAMYAM:
     case EL_ROBOT:
@@ -1825,25 +1825,27 @@ void Blurb(int x, int y)
 {
   int element = Feld[x][y];
 
-  if (element != EL_BLURB_LEFT && element != EL_BLURB_RIGHT)   /* start */
+  if (element != EL_ACID_SPLASHING_LEFT &&
+      element != EL_ACID_SPLASHING_RIGHT)      /* start */
   {
     PlaySoundLevel(x, y, SND_ACID_SPLASHING);
     if (IN_LEV_FIELD(x-1, y) && IS_FREE(x-1, y) &&
        (!IN_LEV_FIELD(x-1, y-1) ||
         !CAN_FALL(MovingOrBlocked2Element(x-1, y-1))))
     {
-      Feld[x-1][y] = EL_BLURB_LEFT;
+      Feld[x-1][y] = EL_ACID_SPLASHING_LEFT;
     }
     if (IN_LEV_FIELD(x+1, y) && IS_FREE(x+1, y) &&
        (!IN_LEV_FIELD(x+1, y-1) ||
         !CAN_FALL(MovingOrBlocked2Element(x+1, y-1))))
     {
-      Feld[x+1][y] = EL_BLURB_RIGHT;
+      Feld[x+1][y] = EL_ACID_SPLASHING_RIGHT;
     }
   }
   else                                                         /* go on */
   {
-    int graphic = (element==EL_BLURB_LEFT ? GFX_BLURB_LEFT : GFX_BLURB_RIGHT);
+    int graphic =
+      (element == EL_ACID_SPLASHING_LEFT ? GFX_BLURB_LEFT : GFX_BLURB_RIGHT);
 
     if (!MovDelay[x][y])       /* initialize animation counter */
       MovDelay[x][y] = 9;
@@ -1981,7 +1983,7 @@ static void RedrawAllLightSwitchesAndInvisibleElements()
 
       if (element == EL_INVISIBLE_STEELWALL ||
          element == EL_INVISIBLE_WALL ||
-         element == EL_SAND_INVISIBLE)
+         element == EL_INVISIBLE_SAND)
        DrawLevelField(x, y);
     }
   }
@@ -2018,9 +2020,9 @@ static void ActivateTimegateSwitch(int x, int y)
       }
 
       /*
-      else if (element == EL_TIMEGATE_SWITCH_ON)
+      else if (element == EL_TIMEGATE_SWITCH_ACTIVE)
       {
-       Feld[xx][yy] = EL_TIMEGATE_SWITCH_OFF;
+       Feld[xx][yy] = EL_TIMEGATE_SWITCH;
        DrawLevelField(xx, yy);
       }
       */
@@ -2028,7 +2030,7 @@ static void ActivateTimegateSwitch(int x, int y)
     }
   }
 
-  Feld[x][y] = EL_TIMEGATE_SWITCH_ON;
+  Feld[x][y] = EL_TIMEGATE_SWITCH_ACTIVE;
 }
 
 void Impact(int x, int y)
@@ -2079,7 +2081,7 @@ void Impact(int x, int y)
       Bang(x, y+1);
     else
     {
-      Feld[x][y] = EL_AMOEBING;
+      Feld[x][y] = EL_AMOEBA_CREATING;
       Store[x][y] = EL_AMOEBA_WET;
     }
     return;
@@ -2088,12 +2090,12 @@ void Impact(int x, int y)
   if (!lastline && object_hit)         /* check which object was hit */
   {
     if (CAN_CHANGE(element) && 
-       (smashed == EL_MAGIC_WALL || smashed == EL_MAGIC_WALL_BD_OFF))
+       (smashed == EL_MAGIC_WALL || smashed == EL_BD_MAGIC_WALL))
     {
       int xx, yy;
       int activated_magic_wall =
        (smashed == EL_MAGIC_WALL ? EL_MAGIC_WALL_EMPTY :
-        EL_MAGIC_WALL_BD_EMPTY);
+        EL_BD_MAGIC_WALL_EMPTY);
 
       /* activate magic wall / mill */
       for (yy=0; yy<lev_fieldy; yy++)
@@ -2194,11 +2196,11 @@ void Impact(int x, int y)
   /* play sound of magic wall / mill */
   if (!lastline &&
       (Feld[x][y+1] == EL_MAGIC_WALL_EMPTY ||
-       Feld[x][y+1] == EL_MAGIC_WALL_BD_EMPTY))
+       Feld[x][y+1] == EL_BD_MAGIC_WALL_EMPTY))
   {
     if (Feld[x][y+1] == EL_MAGIC_WALL_EMPTY)
       PlaySoundLevel(x, y, SND_MAGIC_WALL_CHANGING);
-    else if (Feld[x][y+1] == EL_MAGIC_WALL_BD_EMPTY)
+    else if (Feld[x][y+1] == EL_BD_MAGIC_WALL_EMPTY)
       PlaySoundLevel(x, y, SND_BD_MAGIC_WALL_CHANGING);
 
     return;
@@ -2253,7 +2255,7 @@ void TurnRound(int x, int y)
   int right_x = x+right_dx, right_y = y+right_dy;
   int move_x = x+move_dx, move_y = y+move_dy;
 
-  if (element == EL_BUG || element == EL_BUTTERFLY)
+  if (element == EL_BUG || element == EL_BD_BUTTERFLY)
   {
     TestIfBadThingTouchesOtherBadThing(x, y);
 
@@ -2266,10 +2268,10 @@ void TurnRound(int x, int y)
 
     if (element == EL_BUG && MovDir[x][y] != old_move_dir)
       MovDelay[x][y] = 9;
-    else if (element == EL_BUTTERFLY)  /* && MovDir[x][y] == left_dir) */
+    else if (element == EL_BD_BUTTERFLY)     /* && MovDir[x][y] == left_dir) */
       MovDelay[x][y] = 1;
   }
-  else if (element == EL_SPACESHIP || element == EL_FIREFLY ||
+  else if (element == EL_SPACESHIP || element == EL_BD_FIREFLY ||
           element == EL_SP_SNIKSNAK || element == EL_SP_ELECTRON)
   {
     TestIfBadThingTouchesOtherBadThing(x, y);
@@ -2285,7 +2287,7 @@ void TurnRound(int x, int y)
         element == EL_SP_SNIKSNAK || element == EL_SP_ELECTRON)
        && MovDir[x][y] != old_move_dir)
       MovDelay[x][y] = 9;
-    else if (element == EL_FIREFLY)    /* && MovDir[x][y] == right_dir) */
+    else if (element == EL_BD_FIREFLY)     /* && MovDir[x][y] == right_dir) */
       MovDelay[x][y] = 1;
   }
   else if (element == EL_YAMYAM)
@@ -2467,7 +2469,7 @@ void TurnRound(int x, int y)
 
     if (IN_LEV_FIELD(move_x, move_y) &&
        (IS_FREE(move_x, move_y) || IS_AMOEBOID(Feld[move_x][move_y]) ||
-        Feld[move_x][move_y] == EL_DEAMOEBING))
+        Feld[move_x][move_y] == EL_AMOEBA_SHRINKING))
       can_move_on = TRUE;
 
     if (!can_move_on)
@@ -2726,15 +2728,15 @@ void StartMoving(int x, int y)
        Store[x][y] = 0;
       }
     }
-    else if (element == EL_MAGIC_WALL_BD_FULL)
+    else if (element == EL_BD_MAGIC_WALL_FULL)
     {
       if (IS_FREE(x, y+1))
       {
        InitMovingField(x, y, MV_DOWN);
-       Feld[x][y] = EL_MAGIC_WALL_BD_EMPTYING;
+       Feld[x][y] = EL_BD_MAGIC_WALL_EMPTYING;
        Store[x][y] = EL_CHANGED2(Store[x][y]);
       }
-      else if (Feld[x][y+1] == EL_MAGIC_WALL_BD_EMPTY)
+      else if (Feld[x][y+1] == EL_BD_MAGIC_WALL_EMPTY)
       {
        if (!MovDelay[x][y])
          MovDelay[x][y] = TILEY/4 + 1;
@@ -2746,20 +2748,20 @@ void StartMoving(int x, int y)
            return;
        }
 
-       Feld[x][y] = EL_MAGIC_WALL_BD_EMPTY;
-       Feld[x][y+1] = EL_MAGIC_WALL_BD_FULL;
+       Feld[x][y] = EL_BD_MAGIC_WALL_EMPTY;
+       Feld[x][y+1] = EL_BD_MAGIC_WALL_FULL;
        Store[x][y+1] = EL_CHANGED2(Store[x][y]);
        Store[x][y] = 0;
       }
     }
     else if (CAN_CHANGE(element) &&
             (Feld[x][y+1] == EL_MAGIC_WALL_EMPTY ||
-             Feld[x][y+1] == EL_MAGIC_WALL_BD_EMPTY))
+             Feld[x][y+1] == EL_BD_MAGIC_WALL_EMPTY))
     {
       InitMovingField(x, y, MV_DOWN);
       Feld[x][y] =
        (Feld[x][y+1] == EL_MAGIC_WALL_EMPTY ? EL_MAGIC_WALL_FILLING :
-        EL_MAGIC_WALL_BD_FILLING);
+        EL_BD_MAGIC_WALL_FILLING);
       Store[x][y] = element;
     }
     else if (CAN_SMASH(element) && Feld[x][y+1] == EL_ACID)
@@ -2779,7 +2781,7 @@ void StartMoving(int x, int y)
     }
     else if (element == EL_AMOEBA_DROP)
     {
-      Feld[x][y] = EL_AMOEBING;
+      Feld[x][y] = EL_AMOEBA_CREATING;
       Store[x][y] = EL_AMOEBA_WET;
     }
     /* Store[x][y+1] must be zero, because:
@@ -2902,7 +2904,7 @@ void StartMoving(int x, int y)
          int sx = SCREENX(xx), sy = SCREENY(yy);
 
          if (!IN_LEV_FIELD(xx, yy) ||
-             IS_SOLID(Feld[xx][yy]) || Feld[xx][yy] == EL_EXPLODING)
+             IS_SOLID(Feld[xx][yy]) || Feld[xx][yy] == EL_EXPLOSION)
            break;
 
          if (MovDelay[x][y])
@@ -2914,13 +2916,13 @@ void StartMoving(int x, int y)
            else
              RemoveMovingField(xx, yy);
 
-           Feld[xx][yy] = EL_BURNING;
+           Feld[xx][yy] = EL_DRAGON_FIRE;
            if (IN_SCR_FIELD(sx, sy))
              DrawGraphic(sx, sy, graphic + phase*3 + i-1);
          }
          else
          {
-           if (Feld[xx][yy] == EL_BURNING)
+           if (Feld[xx][yy] == EL_DRAGON_FIRE)
              Feld[xx][yy] = EL_EMPTY;
            DrawLevelField(xx, yy);
          }
@@ -3042,7 +3044,7 @@ void StartMoving(int x, int y)
 
        if ((wanna_flame || IS_ENEMY(element1) || IS_ENEMY(element2)) &&
            element1 != EL_DRAGON && element2 != EL_DRAGON &&
-           element1 != EL_BURNING && element2 != EL_BURNING)
+           element1 != EL_DRAGON_FIRE && element2 != EL_DRAGON_FIRE)
        {
          if (IS_PLAYER(x, y))
            DrawPlayerField(x, y);
@@ -3052,11 +3054,11 @@ void StartMoving(int x, int y)
          PlaySoundLevel(x, y, SND_DRAGON_ATTACKING);
 
          MovDelay[x][y] = 50;
-         Feld[newx][newy] = EL_BURNING;
+         Feld[newx][newy] = EL_DRAGON_FIRE;
          if (IN_LEV_FIELD(newx1, newy1) && Feld[newx1][newy1] == EL_EMPTY)
-           Feld[newx1][newy1] = EL_BURNING;
+           Feld[newx1][newy1] = EL_DRAGON_FIRE;
          if (IN_LEV_FIELD(newx2, newy2) && Feld[newx2][newy2] == EL_EMPTY)
-           Feld[newx2][newy2] = EL_BURNING;
+           Feld[newx2][newy2] = EL_DRAGON_FIRE;
          return;
        }
       }
@@ -3108,7 +3110,7 @@ void StartMoving(int x, int y)
 
       if (element == EL_MOLE)
       {
-       Feld[newx][newy] = EL_DEAMOEBING;
+       Feld[newx][newy] = EL_AMOEBA_SHRINKING;
        PlaySoundLevel(x, y, SND_MOLE_EATING);
        MovDelay[newx][newy] = 0;       /* start amoeba shrinking delay */
        return;                         /* wait for shrinking amoeba */
@@ -3121,7 +3123,7 @@ void StartMoving(int x, int y)
       }
     }
     else if (element == EL_MOLE && IN_LEV_FIELD(newx, newy) &&
-            (Feld[newx][newy] == EL_DEAMOEBING ||
+            (Feld[newx][newy] == EL_AMOEBA_SHRINKING ||
              (Feld[newx][newy] == EL_EMPTY && Stop[newx][newy])))
     {
       /* wait for shrinking amoeba to completely disappear */
@@ -3147,7 +3149,7 @@ void StartMoving(int x, int y)
 #else
        DrawNewLevelField(x, y);
 #endif
-      else if (element == EL_BUTTERFLY || element == EL_FIREFLY)
+      else if (element == EL_BD_BUTTERFLY || element == EL_BD_FIREFLY)
 #if 0
        DrawGraphicAnimation(x, y, el2gfx(element), 2, 4, ANIM_NORMAL);
 #else
@@ -3199,9 +3201,9 @@ void ContinueMoving(int x, int y)
           element == EL_QUICKSAND_EMPTYING)
     step /= 4;
   else if (element == EL_MAGIC_WALL_FILLING ||
-          element == EL_MAGIC_WALL_BD_FILLING ||
+          element == EL_BD_MAGIC_WALL_FILLING ||
           element == EL_MAGIC_WALL_EMPTYING ||
-          element == EL_MAGIC_WALL_BD_EMPTYING)
+          element == EL_BD_MAGIC_WALL_EMPTYING)
     step /= 2;
   else if (CAN_FALL(element) && horiz_move &&
           y < lev_fieldy-1 && IS_BELT(Feld[x][y+1]))
@@ -3271,18 +3273,18 @@ void ContinueMoving(int x, int y)
        Feld[x][y] = EL_MAGIC_WALL_DEAD;
       element = Feld[newx][newy] = Store[x][y];
     }
-    else if (element == EL_MAGIC_WALL_BD_FILLING)
+    else if (element == EL_BD_MAGIC_WALL_FILLING)
     {
       element = Feld[newx][newy] = get_next_element(element);
       if (!game.magic_wall_active)
-       element = Feld[newx][newy] = EL_MAGIC_WALL_BD_DEAD;
+       element = Feld[newx][newy] = EL_BD_MAGIC_WALL_DEAD;
       Store[newx][newy] = Store[x][y];
     }
-    else if (element == EL_MAGIC_WALL_BD_EMPTYING)
+    else if (element == EL_BD_MAGIC_WALL_EMPTYING)
     {
       Feld[x][y] = get_next_element(element);
       if (!game.magic_wall_active)
-       Feld[x][y] = EL_MAGIC_WALL_BD_DEAD;
+       Feld[x][y] = EL_BD_MAGIC_WALL_DEAD;
       element = Feld[newx][newy] = Store[x][y];
     }
     else if (element == EL_AMOEBA_DRIPPING)
@@ -3504,7 +3506,7 @@ void AmoebeUmwandelnBD(int ax, int ay, int new_element)
       if (AmoebaNr[x][y] == group_nr &&
          (Feld[x][y] == EL_AMOEBA_DEAD ||
           Feld[x][y] == EL_BD_AMOEBA ||
-          Feld[x][y] == EL_AMOEBING))
+          Feld[x][y] == EL_AMOEBA_CREATING))
       {
        AmoebaNr[x][y] = 0;
        Feld[x][y] = new_element;
@@ -3711,17 +3713,17 @@ void AmoebeAbleger(int ax, int ay)
   if (element != EL_AMOEBA_WET || neway < ay || !IS_FREE(newax, neway) ||
       (neway == lev_fieldy - 1 && newax != ax))
   {
-    Feld[newax][neway] = EL_AMOEBING;  /* simple growth of new amoeba tile */
+    Feld[newax][neway] = EL_AMOEBA_CREATING;   /* creation of new amoeba */
     Store[newax][neway] = element;
   }
   else if (neway == ay)
   {
-    Feld[newax][neway] = EL_AMOEBA_DROP; /* drop left or right from amoeba */
+    Feld[newax][neway] = EL_AMOEBA_DROP;       /* drop left/right of amoeba */
     PlaySoundLevel(newax, neway, SND_AMOEBA_DROP_CREATING);
   }
   else
   {
-    InitMovingField(ax, ay, MV_DOWN);  /* drop dripping out of amoeba */
+    InitMovingField(ax, ay, MV_DOWN);          /* drop dripping from amoeba */
     Feld[ax][ay] = EL_AMOEBA_DRIPPING;
     Store[ax][ay] = EL_AMOEBA_DROP;
     ContinueMoving(ax, ay);
@@ -3842,12 +3844,12 @@ void TimegateWheel(int x, int y)
        DrawGraphic(SCREENX(x), SCREENY(y),
                    GFX_TIMEGATE_SWITCH + MovDelay[x][y]%4);
       if (!(MovDelay[x][y]%4))
-       PlaySoundLevel(x, y, SND_TIMEGATE_WHEEL_ACTIVE);
+       PlaySoundLevel(x, y, SND_TIMEGATE_SWITCH_ACTIVE);
       return;
     }
   }
 
-  Feld[x][y] = EL_TIMEGATE_SWITCH_OFF;
+  Feld[x][y] = EL_TIMEGATE_SWITCH;
   DrawLevelField(x, y);
   if (ZX == x && ZY == y)
     ZX = ZY = -1;
@@ -3915,7 +3917,7 @@ void AusgangstuerPruefen(int x, int y)
       local_player->lights_still_needed > 0)
     return;
 
-  Feld[x][y] = EL_AUSGANG_ACT;
+  Feld[x][y] = EL_EXIT_OPENING;
 
   PlaySoundLevel(x < LEVELX(BX1) ? LEVELX(BX1) :
                 (x > LEVELX(BX2) ? LEVELX(BX2) : x),
@@ -4211,7 +4213,7 @@ void MauerAbleger(int ax, int ay)
   {
     if (oben_frei)
     {
-      Feld[ax][ay-1] = EL_MAUERND;
+      Feld[ax][ay-1] = EL_WALL_GROWING_ACTIVE;
       Store[ax][ay-1] = element;
       MovDir[ax][ay-1] = MV_UP;
       if (IN_SCR_FIELD(SCREENX(ax), SCREENY(ay-1)))
@@ -4220,7 +4222,7 @@ void MauerAbleger(int ax, int ay)
     }
     if (unten_frei)
     {
-      Feld[ax][ay+1] = EL_MAUERND;
+      Feld[ax][ay+1] = EL_WALL_GROWING_ACTIVE;
       Store[ax][ay+1] = element;
       MovDir[ax][ay+1] = MV_DOWN;
       if (IN_SCR_FIELD(SCREENX(ax), SCREENY(ay+1)))
@@ -4234,7 +4236,7 @@ void MauerAbleger(int ax, int ay)
   {
     if (links_frei)
     {
-      Feld[ax-1][ay] = EL_MAUERND;
+      Feld[ax-1][ay] = EL_WALL_GROWING_ACTIVE;
       Store[ax-1][ay] = element;
       MovDir[ax-1][ay] = MV_LEFT;
       if (IN_SCR_FIELD(SCREENX(ax-1), SCREENY(ay)))
@@ -4244,7 +4246,7 @@ void MauerAbleger(int ax, int ay)
 
     if (rechts_frei)
     {
-      Feld[ax+1][ay] = EL_MAUERND;
+      Feld[ax+1][ay] = EL_WALL_GROWING_ACTIVE;
       Store[ax+1][ay] = element;
       MovDir[ax+1][ay] = MV_RIGHT;
       if (IN_SCR_FIELD(SCREENX(ax+1), SCREENY(ay)))
@@ -4294,7 +4296,7 @@ void CheckForDragon(int x, int y)
       int xx = x + j*xy[i][0], yy = y + j*xy[i][1];
 
       if (IN_LEV_FIELD(xx, yy) &&
-         (Feld[xx][yy] == EL_BURNING || Feld[xx][yy] == EL_DRAGON))
+         (Feld[xx][yy] == EL_DRAGON_FIRE || Feld[xx][yy] == EL_DRAGON))
       {
        if (Feld[xx][yy] == EL_DRAGON)
          dragon_found = TRUE;
@@ -4312,7 +4314,7 @@ void CheckForDragon(int x, int y)
       {
        int xx = x + j*xy[i][0], yy = y + j*xy[i][1];
   
-       if (IN_LEV_FIELD(xx, yy) && Feld[xx][yy] == EL_BURNING)
+       if (IN_LEV_FIELD(xx, yy) && Feld[xx][yy] == EL_DRAGON_FIRE)
        {
          Feld[xx][yy] = EL_EMPTY;
          DrawLevelField(xx, yy);
@@ -4328,7 +4330,7 @@ static void CheckBuggyBase(int x, int y)
 {
   int element = Feld[x][y];
 
-  if (element == EL_SP_BUG)
+  if (element == EL_SP_BUGGY_BASE)
   {
     if (!MovDelay[x][y])       /* wait some time before activating base */
       MovDelay[x][y] = 2 * FRAMES_PER_SECOND + RND(5 * FRAMES_PER_SECOND);
@@ -4341,10 +4343,10 @@ static void CheckBuggyBase(int x, int y)
       if (MovDelay[x][y])
        return;
 
-      Feld[x][y] = EL_SP_BUG_ACTIVE;
+      Feld[x][y] = EL_SP_BUGGY_BASE_ACTIVE;
     }
   }
-  else if (element == EL_SP_BUG_ACTIVE)
+  else if (element == EL_SP_BUGGY_BASE_ACTIVE)
   {
     if (!MovDelay[x][y])       /* start activating buggy base */
       MovDelay[x][y] = 1 * FRAMES_PER_SECOND + RND(1 * FRAMES_PER_SECOND);
@@ -4380,7 +4382,7 @@ static void CheckBuggyBase(int x, int y)
        return;
       }
 
-      Feld[x][y] = EL_SP_BUG;
+      Feld[x][y] = EL_SP_BUGGY_BASE;
       DrawLevelField(x, y);
     }
   }
@@ -4390,7 +4392,7 @@ static void CheckTrap(int x, int y)
 {
   int element = Feld[x][y];
 
-  if (element == EL_TRAP_INACTIVE)
+  if (element == EL_TRAP)
   {
     if (!MovDelay[x][y])       /* wait some time before activating trap */
       MovDelay[x][y] = 2 * FRAMES_PER_SECOND + RND(5 * FRAMES_PER_SECOND);
@@ -4436,7 +4438,7 @@ static void CheckTrap(int x, int y)
        return;
       }
 
-      Feld[x][y] = EL_TRAP_INACTIVE;
+      Feld[x][y] = EL_TRAP;
       DrawLevelField(x, y);
     }
   }
@@ -4756,12 +4758,12 @@ void GameActions()
     else if (IS_ACTIVE_BOMB(element))
       CheckDynamite(x, y);
 #if 0
-    else if (element == EL_EXPLODING && !game.explosions_delayed)
+    else if (element == EL_EXPLOSION && !game.explosions_delayed)
       Explode(x, y, Frame[x][y], EX_NORMAL);
 #endif
-    else if (element == EL_AMOEBING)
+    else if (element == EL_AMOEBA_CREATING)
       AmoebeWaechst(x, y);
-    else if (element == EL_DEAMOEBING)
+    else if (element == EL_AMOEBA_SHRINKING)
       AmoebaDisappearing(x, y);
 
 #if !USE_NEW_AMOEBA_CODE
@@ -4773,11 +4775,12 @@ void GameActions()
       Life(x, y);
     else if (element == EL_ROBOT_WHEEL_ACTIVE)
       RobotWheel(x, y);
-    else if (element == EL_TIMEGATE_SWITCH_ON)
+    else if (element == EL_TIMEGATE_SWITCH_ACTIVE)
       TimegateWheel(x, y);
     else if (element == EL_ACID)
       Blubber(x, y);
-    else if (element == EL_BLURB_LEFT || element == EL_BLURB_RIGHT)
+    else if (element == EL_ACID_SPLASHING_LEFT ||
+            element == EL_ACID_SPLASHING_RIGHT)
       Blurb(x, y);
     else if (element == EL_CRACKINGNUT)
       NussKnacken(x, y);
@@ -4787,24 +4790,24 @@ void GameActions()
       AusgangstuerPruefen(x, y);
     else if (element == EL_SP_EXIT_CLOSED)
       AusgangstuerPruefen_SP(x, y);
-    else if (element == EL_AUSGANG_ACT)
+    else if (element == EL_EXIT_OPENING)
       AusgangstuerOeffnen(x, y);
     else if (element == EL_EXIT_OPEN)
       AusgangstuerBlinken(x, y);
     else if (element == EL_SP_EXIT_OPEN)
       ;                /* !!! ADD SOME (OPTIONAL) ANIMATIONS HERE !!! */
-    else if (element == EL_MAUERND)
+    else if (element == EL_WALL_GROWING_ACTIVE)
       MauerWaechst(x, y);
     else if (element == EL_WALL_GROWING ||
             element == EL_WALL_GROWING_X ||
             element == EL_WALL_GROWING_Y ||
             element == EL_WALL_GROWING_XY)
       MauerAbleger(x, y);
-    else if (element == EL_BURNING)
+    else if (element == EL_DRAGON_FIRE)
       CheckForDragon(x, y);
-    else if (element == EL_SP_BUG || element == EL_SP_BUG_ACTIVE)
+    else if (element == EL_SP_BUGGY_BASE || element == EL_SP_BUGGY_BASE_ACTIVE)
       CheckBuggyBase(x, y);
-    else if (element == EL_TRAP_INACTIVE || element == EL_TRAP_ACTIVE)
+    else if (element == EL_TRAP || element == EL_TRAP_ACTIVE)
       CheckTrap(x, y);
     else if (element == EL_SP_TERMINAL)
       DrawGraphicAnimation(x, y, GFX2_SP_TERMINAL, 7, 12, ANIM_NORMAL);
@@ -4836,7 +4839,7 @@ void GameActions()
        PlaySoundLevel(x, y, SND_SHIELD_PASSIVE_ACTIVATED);
 #endif
     }
-    else if (element == EL_SHIELD_ACTIVE)
+    else if (element == EL_SHIELD_DEADLY)
     {
       DrawGraphicAnimation(x, y, GFX_SHIELD_ACTIVE, 6, 4, ANIM_NORMAL);
 #if 0
@@ -4857,9 +4860,9 @@ void GameActions()
        SiebAktivieren(x, y, 1);
        sieb = TRUE;
       }
-      else if (element == EL_MAGIC_WALL_BD_FULL ||
-              element == EL_MAGIC_WALL_BD_EMPTY ||
-              element == EL_MAGIC_WALL_BD_EMPTYING)
+      else if (element == EL_BD_MAGIC_WALL_FULL ||
+              element == EL_BD_MAGIC_WALL_EMPTY ||
+              element == EL_BD_MAGIC_WALL_EMPTYING)
       {
        SiebAktivieren(x, y, 2);
        sieb = TRUE;
@@ -4897,8 +4900,8 @@ void GameActions()
          (element == EL_EMPTY ||
           element == EL_SAND ||
           element == EL_QUICKSAND_EMPTY ||
-          element == EL_BLURB_LEFT ||
-          element == EL_BLURB_RIGHT))
+          element == EL_ACID_SPLASHING_LEFT ||
+          element == EL_ACID_SPLASHING_RIGHT))
       {
        if ((IN_LEV_FIELD(x, y-1) && Feld[x][y-1] == EL_AMOEBA_WET) ||
            (IN_LEV_FIELD(x-1, y) && Feld[x-1][y] == EL_AMOEBA_WET) ||
@@ -4924,7 +4927,7 @@ void GameActions()
 
       if (ExplodeField[x][y])
        Explode(x, y, EX_PHASE_START, ExplodeField[x][y]);
-      else if (element == EL_EXPLODING)
+      else if (element == EL_EXPLOSION)
        Explode(x, y, Frame[x][y], EX_NORMAL);
 
       ExplodeField[x][y] = EX_NO_EXPLOSION;
@@ -4939,9 +4942,9 @@ void GameActions()
     {
       int element = Feld[sieb_x][sieb_y];
 
-      if (element == EL_MAGIC_WALL_BD_FULL ||
-         element == EL_MAGIC_WALL_BD_EMPTY ||
-         element == EL_MAGIC_WALL_BD_EMPTYING)
+      if (element == EL_BD_MAGIC_WALL_FULL ||
+         element == EL_BD_MAGIC_WALL_EMPTY ||
+         element == EL_BD_MAGIC_WALL_EMPTYING)
        PlaySoundLevel(sieb_x, sieb_y, SND_BD_MAGIC_WALL_ACTIVE);
       else
        PlaySoundLevel(sieb_x, sieb_y, SND_MAGIC_WALL_ACTIVE);
@@ -4962,10 +4965,10 @@ void GameActions()
            Feld[x][y] = EL_MAGIC_WALL_DEAD;
            DrawLevelField(x, y);
          }
-         else if (element == EL_MAGIC_WALL_BD_EMPTY ||
-                  element == EL_MAGIC_WALL_BD_FULL)
+         else if (element == EL_BD_MAGIC_WALL_EMPTY ||
+                  element == EL_BD_MAGIC_WALL_FULL)
          {
-           Feld[x][y] = EL_MAGIC_WALL_BD_DEAD;
+           Feld[x][y] = EL_BD_MAGIC_WALL_DEAD;
            DrawLevelField(x, y);
          }
        }
@@ -4992,7 +4995,7 @@ void GameActions()
        }
        else if (element == EL_INVISIBLE_STEELWALL ||
                 element == EL_INVISIBLE_WALL ||
-                element == EL_SAND_INVISIBLE)
+                element == EL_INVISIBLE_SAND)
          DrawLevelField(x, y);
       }
     }
@@ -5581,7 +5584,7 @@ void TestIfBadThingHitsGoodThing(int bad_x, int bad_y, int bad_move_dir)
     MV_DOWN
   };
 
-  if (bad_element == EL_EXPLODING)     /* skip just exploding bad things */
+  if (bad_element == EL_EXPLOSION)     /* skip just exploding bad things */
     return;
 
   for (i=0; i<4; i++)
@@ -5711,7 +5714,7 @@ void TestIfBadThingTouchesOtherBadThing(int bad_x, int bad_y)
 
     element = Feld[x][y];
     if (IS_AMOEBOID(element) || element == EL_GAMEOFLIFE ||
-       element == EL_AMOEBING || element == EL_AMOEBA_DROP)
+       element == EL_AMOEBA_CREATING || element == EL_AMOEBA_DROP)
     {
       kill_x = x;
       kill_y = y;
@@ -5812,18 +5815,18 @@ int DigField(struct PlayerInfo *player,
     int i = 0;
     int tube_leave_directions[][2] =
     {
-      { EL_TUBE_CROSS,         MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN },
-      { EL_TUBE_VERTICAL,                           MV_UP | MV_DOWN },
-      { EL_TUBE_HORIZONTAL,    MV_LEFT | MV_RIGHT                   },
-      { EL_TUBE_VERT_LEFT,     MV_LEFT |            MV_UP | MV_DOWN },
-      { EL_TUBE_VERT_RIGHT,              MV_RIGHT | MV_UP | MV_DOWN },
-      { EL_TUBE_HORIZ_UP,      MV_LEFT | MV_RIGHT | MV_UP           },
-      { EL_TUBE_HORIZ_DOWN,    MV_LEFT | MV_RIGHT |         MV_DOWN },
-      { EL_TUBE_LEFT_UP,       MV_LEFT |            MV_UP           },
-      { EL_TUBE_LEFT_DOWN,     MV_LEFT |                    MV_DOWN },
-      { EL_TUBE_RIGHT_UP,                MV_RIGHT | MV_UP           },
-      { EL_TUBE_RIGHT_DOWN,              MV_RIGHT |         MV_DOWN },
-      { -1,                     MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN }
+      { EL_TUBE_ALL,                   MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN },
+      { EL_TUBE_VERTICAL,                                   MV_UP | MV_DOWN },
+      { EL_TUBE_HORIZONTAL,            MV_LEFT | MV_RIGHT                   },
+      { EL_TUBE_VERTICAL_LEFT,         MV_LEFT |            MV_UP | MV_DOWN },
+      { EL_TUBE_VERTICAL_RIGHT,                          MV_RIGHT | MV_UP | MV_DOWN },
+      { EL_TUBE_HORIZONTAL_UP,         MV_LEFT | MV_RIGHT | MV_UP           },
+      { EL_TUBE_HORIZONTAL_DOWN,       MV_LEFT | MV_RIGHT |         MV_DOWN },
+      { EL_TUBE_LEFT_UP,               MV_LEFT |            MV_UP           },
+      { EL_TUBE_LEFT_DOWN,             MV_LEFT |                    MV_DOWN },
+      { EL_TUBE_RIGHT_UP,                        MV_RIGHT | MV_UP           },
+      { EL_TUBE_RIGHT_DOWN,                      MV_RIGHT |         MV_DOWN },
+      { -1,                            MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN }
     };
 
     while (tube_leave_directions[i][0] != Feld[jx][jy])
@@ -5843,10 +5846,10 @@ int DigField(struct PlayerInfo *player,
   {
     case EL_EMPTY:
     case EL_SAND:
-    case EL_SAND_INVISIBLE:
-    case EL_TRAP_INACTIVE:
+    case EL_INVISIBLE_SAND:
+    case EL_TRAP:
     case EL_SP_BASE:
-    case EL_SP_BUG:
+    case EL_SP_BUGGY_BASE:
       RemoveField(x, y);
       PlaySoundLevelElementAction(x, y, element, SND_ACTION_DIGGING);
       break;
@@ -5900,7 +5903,7 @@ int DigField(struct PlayerInfo *player,
       PlaySoundLevel(x, y, SND_SHIELD_NORMAL_COLLECTING);
       break;
 
-    case EL_SHIELD_ACTIVE:
+    case EL_SHIELD_DEADLY:
       RemoveField(x, y);
       player->shield_passive_time_left += 10;
       player->shield_active_time_left += 10;
@@ -5949,7 +5952,7 @@ int DigField(struct PlayerInfo *player,
 
       RemoveField(x, y);
       player->key[key_nr] = TRUE;
-      RaiseScoreElement(EL_KEY);
+      RaiseScoreElement(element);
       DrawMiniGraphicExt(drawto, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
                         GFX_SCHLUESSEL1 + key_nr);
       DrawMiniGraphicExt(window, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
@@ -5967,7 +5970,7 @@ int DigField(struct PlayerInfo *player,
 
       RemoveField(x, y);
       player->key[key_nr] = TRUE;
-      RaiseScoreElement(EL_KEY);
+      RaiseScoreElement(element);
       DrawMiniGraphicExt(drawto, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
                         GFX_SCHLUESSEL1 + key_nr);
       DrawMiniGraphicExt(window, DX_KEYS + key_nr * MINI_TILEX, DY_KEYS,
@@ -6051,9 +6054,9 @@ int DigField(struct PlayerInfo *player,
       return MF_ACTION;
       break;
 
-    case EL_TIMEGATE_SWITCH_OFF:
+    case EL_TIMEGATE_SWITCH:
       ActivateTimegateSwitch(x, y);
-      PlaySoundLevel(x, y, SND_TIMEGATE_WHEEL_ACTIVATING);
+      PlaySoundLevel(x, y, SND_TIMEGATE_SWITCH_ACTIVATING);
 
       return MF_ACTION;
       break;
@@ -6062,8 +6065,8 @@ int DigField(struct PlayerInfo *player,
     case EL_BALLOON_SEND_RIGHT:
     case EL_BALLOON_SEND_UP:
     case EL_BALLOON_SEND_DOWN:
-    case EL_BALLOON_SEND_ANY:
-      if (element == EL_BALLOON_SEND_ANY)
+    case EL_BALLOON_SEND_ANY_DIRECTION:
+      if (element == EL_BALLOON_SEND_ANY_DIRECTION)
        game.balloon_dir = move_direction;
       else
        game.balloon_dir = (element == EL_BALLOON_SEND_LEFT  ? MV_LEFT :
@@ -6242,13 +6245,13 @@ int DigField(struct PlayerInfo *player,
       PlaySoundLevel(x, y, SND_SP_PORT_PASSING);
       break;
 
-    case EL_TUBE_CROSS:
+    case EL_TUBE_ALL:
     case EL_TUBE_VERTICAL:
     case EL_TUBE_HORIZONTAL:
-    case EL_TUBE_VERT_LEFT:
-    case EL_TUBE_VERT_RIGHT:
-    case EL_TUBE_HORIZ_UP:
-    case EL_TUBE_HORIZ_DOWN:
+    case EL_TUBE_VERTICAL_LEFT:
+    case EL_TUBE_VERTICAL_RIGHT:
+    case EL_TUBE_HORIZONTAL_UP:
+    case EL_TUBE_HORIZONTAL_DOWN:
     case EL_TUBE_LEFT_UP:
     case EL_TUBE_LEFT_DOWN:
     case EL_TUBE_RIGHT_UP:
@@ -6257,18 +6260,18 @@ int DigField(struct PlayerInfo *player,
        int i = 0;
        int tube_enter_directions[][2] =
        {
-         { EL_TUBE_CROSS,      MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN },
-         { EL_TUBE_VERTICAL,                        MV_UP | MV_DOWN },
-         { EL_TUBE_HORIZONTAL, MV_LEFT | MV_RIGHT                   },
-         { EL_TUBE_VERT_LEFT,            MV_RIGHT | MV_UP | MV_DOWN },
-         { EL_TUBE_VERT_RIGHT, MV_LEFT            | MV_UP | MV_DOWN },
-         { EL_TUBE_HORIZ_UP,   MV_LEFT | MV_RIGHT |         MV_DOWN },
-         { EL_TUBE_HORIZ_DOWN, MV_LEFT | MV_RIGHT | MV_UP           },
-         { EL_TUBE_LEFT_UP,              MV_RIGHT |         MV_DOWN },
-         { EL_TUBE_LEFT_DOWN,            MV_RIGHT | MV_UP           },
-         { EL_TUBE_RIGHT_UP,   MV_LEFT |                    MV_DOWN },
-         { EL_TUBE_RIGHT_DOWN, MV_LEFT |            MV_UP           },
-         { -1,                 MV_NO_MOVING                         }
+         { EL_TUBE_ALL,                MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN },
+         { EL_TUBE_VERTICAL,                                MV_UP | MV_DOWN },
+         { EL_TUBE_HORIZONTAL,         MV_LEFT | MV_RIGHT                   },
+         { EL_TUBE_VERTICAL_LEFT,                MV_RIGHT | MV_UP | MV_DOWN },
+         { EL_TUBE_VERTICAL_RIGHT,     MV_LEFT            | MV_UP | MV_DOWN },
+         { EL_TUBE_HORIZONTAL_UP,      MV_LEFT | MV_RIGHT |         MV_DOWN },
+         { EL_TUBE_HORIZONTAL_DOWN,    MV_LEFT | MV_RIGHT | MV_UP           },
+         { EL_TUBE_LEFT_UP,                      MV_RIGHT |         MV_DOWN },
+         { EL_TUBE_LEFT_DOWN,                    MV_RIGHT | MV_UP           },
+         { EL_TUBE_RIGHT_UP,           MV_LEFT |                    MV_DOWN },
+         { EL_TUBE_RIGHT_DOWN,         MV_LEFT |            MV_UP           },
+         { -1,                         MV_NO_MOVING                         }
        };
 
        while (tube_enter_directions[i][0] != element)
@@ -6287,7 +6290,7 @@ int DigField(struct PlayerInfo *player,
 
     case EL_EXIT_CLOSED:
     case EL_SP_EXIT_CLOSED:
-    case EL_AUSGANG_ACT:
+    case EL_EXIT_OPENING:
       return MF_NO_ACTION;
       break;
 
@@ -6320,11 +6323,11 @@ int DigField(struct PlayerInfo *player,
       return MF_ACTION;
       break;
 
-    case EL_SOKOBAN_FELD_LEER:
+    case EL_SOKOBAN_FIELD_EMPTY:
       break;
 
-    case EL_SOKOBAN_OBJEKT:
-    case EL_SOKOBAN_FELD_VOLL:
+    case EL_SOKOBAN_OBJECT:
+    case EL_SOKOBAN_FIELD_FULL:
     case EL_SATELLITE:
     case EL_SP_DISK_YELLOW:
     case EL_BALLOON:
@@ -6335,7 +6338,7 @@ int DigField(struct PlayerInfo *player,
 
       if (!IN_LEV_FIELD(x+dx, y+dy)
          || (!IS_FREE(x+dx, y+dy)
-             && (Feld[x+dx][y+dy] != EL_SOKOBAN_FELD_LEER
+             && (Feld[x+dx][y+dy] != EL_SOKOBAN_FIELD_EMPTY
                  || !IS_SB_ELEMENT(element))))
        return MF_NO_ACTION;
 
@@ -6365,27 +6368,27 @@ int DigField(struct PlayerInfo *player,
 
       if (IS_SB_ELEMENT(element))
       {
-       if (element == EL_SOKOBAN_FELD_VOLL)
+       if (element == EL_SOKOBAN_FIELD_FULL)
        {
-         Feld[x][y] = EL_SOKOBAN_FELD_LEER;
+         Feld[x][y] = EL_SOKOBAN_FIELD_EMPTY;
          local_player->sokobanfields_still_needed++;
        }
        else
          RemoveField(x, y);
 
-       if (Feld[x+dx][y+dy] == EL_SOKOBAN_FELD_LEER)
+       if (Feld[x+dx][y+dy] == EL_SOKOBAN_FIELD_EMPTY)
        {
-         Feld[x+dx][y+dy] = EL_SOKOBAN_FELD_VOLL;
+         Feld[x+dx][y+dy] = EL_SOKOBAN_FIELD_FULL;
          local_player->sokobanfields_still_needed--;
-         if (element == EL_SOKOBAN_OBJEKT)
+         if (element == EL_SOKOBAN_OBJECT)
            PlaySoundLevel(x, y, SND_SOKOBAN_FIELD_FILLING);
          else
            PlaySoundLevel(x, y, SND_SOKOBAN_OBJECT_PUSHING);
        }
        else
        {
-         Feld[x+dx][y+dy] = EL_SOKOBAN_OBJEKT;
-         if (element == EL_SOKOBAN_FELD_VOLL)
+         Feld[x+dx][y+dy] = EL_SOKOBAN_OBJECT;
+         if (element == EL_SOKOBAN_FIELD_FULL)
            PlaySoundLevel(x, y, SND_SOKOBAN_FIELD_EMPTYING);
          else
            PlaySoundLevel(x, y, SND_SOKOBAN_OBJECT_PUSHING);
@@ -6476,7 +6479,7 @@ boolean PlaceBomb(struct PlayerInfo *player)
   element = Feld[jx][jy];
 
   if ((player->dynamite == 0 && player->dynabombs_left == 0) ||
-      IS_ACTIVE_BOMB(element) || element == EL_EXPLODING)
+      IS_ACTIVE_BOMB(element) || element == EL_EXPLOSION)
     return FALSE;
 
   if (element != EL_EMPTY)
@@ -6595,11 +6598,11 @@ void RaiseScoreElement(int element)
       RaiseScore(level.score[SC_DIAMANT]);
       break;
     case EL_BUG:
-    case EL_BUTTERFLY:
+    case EL_BD_BUTTERFLY:
       RaiseScore(level.score[SC_KAEFER]);
       break;
     case EL_SPACESHIP:
-    case EL_FIREFLY:
+    case EL_BD_FIREFLY:
       RaiseScore(level.score[SC_FLIEGER]);
       break;
     case EL_YAMYAM:
@@ -6618,7 +6621,10 @@ void RaiseScoreElement(int element)
     case EL_DYNAMITE:
       RaiseScore(level.score[SC_DYNAMIT]);
       break;
-    case EL_KEY:
+    case EL_KEY1:
+    case EL_KEY2:
+    case EL_KEY3:
+    case EL_KEY4:
       RaiseScore(level.score[SC_SCHLUESSEL]);
       break;
     default:
index 1861e0485c31663f7e8867a5067a3dc1c50c7cfd..7c877f2dc26e56e4464d294744fa6d6138ace8a2 100644 (file)
@@ -570,10 +570,9 @@ void InitElementInfo()
     { EL_WALL,                         GFX_MAUERWERK           },
     { EL_WALL_CRUMBLED,                        GFX_FELSBODEN           },
     { EL_ROCK,                         GFX_FELSBROCKEN         },
-    { EL_KEY,                          GFX_SCHLUESSEL          },
     { EL_EMERALD,                      GFX_EDELSTEIN           },
     { EL_EXIT_CLOSED,                  GFX_AUSGANG_ZU          },
-    { EL_AUSGANG_ACT,                  GFX_AUSGANG_ACT         },
+    { EL_EXIT_OPENING,                 GFX_AUSGANG_ACT         },
     { EL_EXIT_OPEN,                    GFX_AUSGANG_AUF         },
     { EL_SP_EXIT_OPEN,                 GFX_SP_EXIT             },
     { EL_PLAYER,                       GFX_SPIELFIGUR          },
@@ -591,16 +590,16 @@ void InitElementInfo()
     { EL_SPACESHIP_UP,                 GFX_FLIEGER_UP          },
     { EL_SPACESHIP_LEFT,               GFX_FLIEGER_LEFT        },
     { EL_SPACESHIP_DOWN,               GFX_FLIEGER_DOWN        },
-    { EL_BUTTERFLY,                    GFX_BUTTERFLY           },
-    { EL_BUTTERFLY_RIGHT,              GFX_BUTTERFLY_RIGHT     },
-    { EL_BUTTERFLY_UP,                 GFX_BUTTERFLY_UP        },
-    { EL_BUTTERFLY_LEFT,               GFX_BUTTERFLY_LEFT      },
-    { EL_BUTTERFLY_DOWN,               GFX_BUTTERFLY_DOWN      },
-    { EL_FIREFLY,                      GFX_FIREFLY             },
-    { EL_FIREFLY_RIGHT,                        GFX_FIREFLY_RIGHT       },
-    { EL_FIREFLY_UP,                   GFX_FIREFLY_UP          },
-    { EL_FIREFLY_LEFT,                 GFX_FIREFLY_LEFT        },
-    { EL_FIREFLY_DOWN,                 GFX_FIREFLY_DOWN        },
+    { EL_BD_BUTTERFLY,                 GFX_BUTTERFLY           },
+    { EL_BD_BUTTERFLY_RIGHT,           GFX_BUTTERFLY_RIGHT     },
+    { EL_BD_BUTTERFLY_UP,              GFX_BUTTERFLY_UP        },
+    { EL_BD_BUTTERFLY_LEFT,            GFX_BUTTERFLY_LEFT      },
+    { EL_BD_BUTTERFLY_DOWN,            GFX_BUTTERFLY_DOWN      },
+    { EL_BD_FIREFLY,                   GFX_FIREFLY             },
+    { EL_BD_FIREFLY_RIGHT,             GFX_FIREFLY_RIGHT       },
+    { EL_BD_FIREFLY_UP,                        GFX_FIREFLY_UP          },
+    { EL_BD_FIREFLY_LEFT,              GFX_FIREFLY_LEFT        },
+    { EL_BD_FIREFLY_DOWN,              GFX_FIREFLY_DOWN        },
     { EL_YAMYAM,                       GFX_MAMPFER             },
     { EL_ROBOT,                                GFX_ROBOT               },
     { EL_STEELWALL,                    GFX_BETON               },
@@ -673,11 +672,11 @@ void InitElementInfo()
     { EL_WALL_EMERALD_RED,             GFX_ERZ_EDEL_ROT        },
     { EL_WALL_EMERALD_PURPLE,          GFX_ERZ_EDEL_LILA       },
     { EL_DARK_YAMYAM,                  GFX_MAMPFER2            },
-    { EL_MAGIC_WALL_BD_OFF,            GFX_MAGIC_WALL_BD_OFF   },
-    { EL_MAGIC_WALL_BD_EMPTY,          GFX_MAGIC_WALL_BD_EMPTY },
-    { EL_MAGIC_WALL_BD_EMPTYING,       GFX_MAGIC_WALL_BD_EMPTY },
-    { EL_MAGIC_WALL_BD_FULL,           GFX_MAGIC_WALL_BD_FULL  },
-    { EL_MAGIC_WALL_BD_DEAD,           GFX_MAGIC_WALL_BD_DEAD  },
+    { EL_BD_MAGIC_WALL,                        GFX_MAGIC_WALL_BD_OFF   },
+    { EL_BD_MAGIC_WALL_EMPTY,          GFX_MAGIC_WALL_BD_EMPTY },
+    { EL_BD_MAGIC_WALL_EMPTYING,       GFX_MAGIC_WALL_BD_EMPTY },
+    { EL_BD_MAGIC_WALL_FULL,           GFX_MAGIC_WALL_BD_FULL  },
+    { EL_BD_MAGIC_WALL_DEAD,           GFX_MAGIC_WALL_BD_DEAD  },
     { EL_DYNABOMB_ACTIVE_1,            GFX_DYNABOMB            },
     { EL_DYNABOMB_ACTIVE_2,            GFX_DYNABOMB            },
     { EL_DYNABOMB_ACTIVE_3,            GFX_DYNABOMB            },
@@ -685,21 +684,21 @@ void InitElementInfo()
     { EL_DYNABOMB_NR,                  GFX_DYNABOMB_NR         },
     { EL_DYNABOMB_SZ,                  GFX_DYNABOMB_SZ         },
     { EL_DYNABOMB_XL,                  GFX_DYNABOMB_XL         },
-    { EL_SOKOBAN_OBJEKT,               GFX_SOKOBAN_OBJEKT      },
-    { EL_SOKOBAN_FELD_LEER,            GFX_SOKOBAN_FELD_LEER   },
-    { EL_SOKOBAN_FELD_VOLL,            GFX_SOKOBAN_FELD_VOLL   },
+    { EL_SOKOBAN_OBJECT,               GFX_SOKOBAN_OBJEKT      },
+    { EL_SOKOBAN_FIELD_EMPTY,          GFX_SOKOBAN_FELD_LEER   },
+    { EL_SOKOBAN_FIELD_FULL,           GFX_SOKOBAN_FELD_VOLL   },
     { EL_MOLE,                         GFX_MOLE                },
     { EL_PENGUIN,                      GFX_PINGUIN             },
     { EL_PIG,                          GFX_SCHWEIN             },
     { EL_DRAGON,                       GFX_DRACHE              },
     { EL_SATELLITE,                    GFX_SONDE               },
-    { EL_ARROW_LEFT,                   GFX_PFEIL_LEFT          },
-    { EL_ARROW_RIGHT,                  GFX_PFEIL_RIGHT         },
-    { EL_ARROW_UP,                     GFX_PFEIL_UP            },
-    { EL_ARROW_DOWN,                   GFX_PFEIL_DOWN          },
+    { EL_ARROW_BLUE_LEFT,              GFX_PFEIL_LEFT          },
+    { EL_ARROW_BLUE_RIGHT,             GFX_PFEIL_RIGHT         },
+    { EL_ARROW_BLUE_UP,                        GFX_PFEIL_UP            },
+    { EL_ARROW_BLUE_DOWN,              GFX_PFEIL_DOWN          },
     { EL_SPEED_PILL,                   GFX_SPEED_PILL          },
     { EL_SP_TERMINAL_ACTIVE,           GFX_SP_TERMINAL         },
-    { EL_SP_BUG_ACTIVE,                        GFX_SP_BUG_ACTIVE       },
+    { EL_SP_BUGGY_BASE_ACTIVE,         GFX_SP_BUG_ACTIVE       },
     { EL_SP_ZONK,                      GFX_SP_ZONK             },
     { EL_INVISIBLE_STEELWALL,          GFX_INVISIBLE_STEEL     },
     { EL_BLACK_ORB,                    GFX_BLACK_ORB           },
@@ -727,7 +726,7 @@ void InitElementInfo()
     { EL_DOOR_WHITE_GRAY,              GFX_DOOR_WHITE_GRAY     },
     { EL_KEY_WHITE,                    GFX_KEY_WHITE           },
     { EL_SHIELD_NORMAL,                        GFX_SHIELD_PASSIVE      },
-    { EL_SHIELD_ACTIVE,                        GFX_SHIELD_ACTIVE       },
+    { EL_SHIELD_DEADLY,                        GFX_SHIELD_ACTIVE       },
     { EL_EXTRA_TIME,                   GFX_EXTRA_TIME          },
     { EL_SWITCHGATE_OPEN,              GFX_SWITCHGATE_OPEN     },
     { EL_SWITCHGATE_CLOSED,            GFX_SWITCHGATE_CLOSED   },
@@ -778,19 +777,19 @@ void InitElementInfo()
     { EL_MOLE_UP,                      GFX_MOLE_UP             },
     { EL_MOLE_DOWN,                    GFX_MOLE_DOWN           },
     { EL_STEELWALL_SLANTED,            GFX_STEEL_SLANTED       },
-    { EL_SAND_INVISIBLE,               GFX_SAND_INVISIBLE      },
+    { EL_INVISIBLE_SAND,               GFX_SAND_INVISIBLE      },
     { EL_DX_UNKNOWN_15,                        GFX_DX_UNKNOWN_15       },
     { EL_DX_UNKNOWN_42,                        GFX_DX_UNKNOWN_42       },
     { EL_TIMEGATE_OPEN,                        GFX_TIMEGATE_OPEN       },
     { EL_TIMEGATE_CLOSED,              GFX_TIMEGATE_CLOSED     },
-    { EL_TIMEGATE_SWITCH_ON,           GFX_TIMEGATE_SWITCH     },
-    { EL_TIMEGATE_SWITCH_OFF,          GFX_TIMEGATE_SWITCH     },
+    { EL_TIMEGATE_SWITCH_ACTIVE,       GFX_TIMEGATE_SWITCH     },
+    { EL_TIMEGATE_SWITCH,              GFX_TIMEGATE_SWITCH     },
     { EL_BALLOON,                      GFX_BALLOON             },
     { EL_BALLOON_SEND_LEFT,            GFX_BALLOON_SEND_LEFT   },
     { EL_BALLOON_SEND_RIGHT,           GFX_BALLOON_SEND_RIGHT  },
     { EL_BALLOON_SEND_UP,              GFX_BALLOON_SEND_UP     },
     { EL_BALLOON_SEND_DOWN,            GFX_BALLOON_SEND_DOWN   },
-    { EL_BALLOON_SEND_ANY,             GFX_BALLOON_SEND_ANY    },
+    { EL_BALLOON_SEND_ANY_DIRECTION,   GFX_BALLOON_SEND_ANY    },
     { EL_EMC_STEELWALL1,               GFX_EMC_STEEL_WALL_1    },
     { EL_EMC_STEELWALL2,               GFX_EMC_STEEL_WALL_2    },
     { EL_EMC_STEELWALL3,               GFX_EMC_STEEL_WALL_3    },
@@ -803,20 +802,20 @@ void InitElementInfo()
     { EL_EMC_WALL6,                    GFX_EMC_WALL_6          },
     { EL_EMC_WALL7,                    GFX_EMC_WALL_7          },
     { EL_EMC_WALL8,                    GFX_EMC_WALL_8          },
-    { EL_TUBE_CROSS,                   GFX_TUBE_CROSS          },
+    { EL_TUBE_ALL,                     GFX_TUBE_CROSS          },
     { EL_TUBE_VERTICAL,                        GFX_TUBE_VERTICAL       },
     { EL_TUBE_HORIZONTAL,              GFX_TUBE_HORIZONTAL     },
-    { EL_TUBE_VERT_LEFT,               GFX_TUBE_VERT_LEFT      },
-    { EL_TUBE_VERT_RIGHT,              GFX_TUBE_VERT_RIGHT     },
-    { EL_TUBE_HORIZ_UP,                        GFX_TUBE_HORIZ_UP       },
-    { EL_TUBE_HORIZ_DOWN,              GFX_TUBE_HORIZ_DOWN     },
+    { EL_TUBE_VERTICAL_LEFT,           GFX_TUBE_VERT_LEFT      },
+    { EL_TUBE_VERTICAL_RIGHT,          GFX_TUBE_VERT_RIGHT     },
+    { EL_TUBE_HORIZONTAL_UP,           GFX_TUBE_HORIZ_UP       },
+    { EL_TUBE_HORIZONTAL_DOWN,         GFX_TUBE_HORIZ_DOWN     },
     { EL_TUBE_LEFT_UP,                 GFX_TUBE_LEFT_UP        },
     { EL_TUBE_LEFT_DOWN,               GFX_TUBE_LEFT_DOWN      },
     { EL_TUBE_RIGHT_UP,                        GFX_TUBE_RIGHT_UP       },
     { EL_TUBE_RIGHT_DOWN,              GFX_TUBE_RIGHT_DOWN     },
     { EL_SPRING,                       GFX_SPRING              },
     { EL_SPRING_MOVING,                        GFX_SPRING              },
-    { EL_TRAP_INACTIVE,                        GFX_TRAP_INACTIVE       },
+    { EL_TRAP                        GFX_TRAP_INACTIVE       },
     { EL_TRAP_ACTIVE,                  GFX_TRAP_ACTIVE         },
     { EL_BD_WALL,                      GFX_BD_WALL             },
     { EL_BD_ROCK,                      GFX_BD_ROCK             },
@@ -835,21 +834,6 @@ void InitElementInfo()
   }
   element_to_direction_graphic[] =
   {
-    {
-      EL_SPACESHIP,
-      IMG_SPACESHIP_LEFT,      IMG_SPACESHIP_RIGHT,
-      IMG_SPACESHIP_UP,                IMG_SPACESHIP_DOWN
-    },
-    {
-      EL_BUG,
-      IMG_BUG_LEFT,            IMG_BUG_RIGHT,
-      IMG_BUG_UP,              IMG_BUG_DOWN
-    },
-    {
-      EL_PACMAN,
-      IMG_PACMAN_LEFT,         IMG_PACMAN_RIGHT,
-      IMG_PACMAN_UP,           IMG_PACMAN_DOWN
-    },
     {
       EL_PLAYER1,
       IMG_PLAYER1_LEFT,                IMG_PLAYER1_RIGHT,
@@ -871,14 +855,29 @@ void InitElementInfo()
       IMG_PLAYER4_UP,          IMG_PLAYER4_DOWN
     },
     {
-      EL_PIG,
-      IMG_PIG_LEFT,            IMG_PIG_RIGHT,
-      IMG_PIG_UP,              IMG_PIG_DOWN
+      EL_SP_MURPHY,
+      IMG_SP_MURPHY_LEFT,      IMG_SP_MURPHY_RIGHT,
+      IMG_SP_MURPHY_UP,                IMG_SP_MURPHY_DOWN
     },
     {
-      EL_DRAGON,
-      IMG_DRAGON_LEFT,         IMG_DRAGON_RIGHT,
-      IMG_DRAGON_UP,           IMG_DRAGON_DOWN
+      EL_SP_SNIKSNAK,
+      IMG_SP_SNIKSNAK_LEFT,    IMG_SP_SNIKSNAK_RIGHT,
+      IMG_SP_SNIKSNAK_UP,      IMG_SP_SNIKSNAK_DOWN
+    },
+    {
+      EL_BUG,
+      IMG_BUG_LEFT,            IMG_BUG_RIGHT,
+      IMG_BUG_UP,              IMG_BUG_DOWN
+    },
+    {
+      EL_SPACESHIP,
+      IMG_SPACESHIP_LEFT,      IMG_SPACESHIP_RIGHT,
+      IMG_SPACESHIP_UP,                IMG_SPACESHIP_DOWN
+    },
+    {
+      EL_PACMAN,
+      IMG_PACMAN_LEFT,         IMG_PACMAN_RIGHT,
+      IMG_PACMAN_UP,           IMG_PACMAN_DOWN
     },
     {
       EL_MOLE,
@@ -891,14 +890,14 @@ void InitElementInfo()
       IMG_PENGUIN_UP,          IMG_PENGUIN_DOWN
     },
     {
-      EL_SP_MURPHY,
-      IMG_SP_MURPHY_LEFT,      IMG_SP_MURPHY_RIGHT,
-      IMG_SP_MURPHY_UP,                IMG_SP_MURPHY_DOWN
+      EL_PIG,
+      IMG_PIG_LEFT,            IMG_PIG_RIGHT,
+      IMG_PIG_UP,              IMG_PIG_DOWN
     },
     {
-      EL_SP_SNIKSNAK,
-      IMG_SP_SNIKSNAK_LEFT,    IMG_SP_SNIKSNAK_RIGHT,
-      IMG_SP_SNIKSNAK_UP,      IMG_SP_SNIKSNAK_DOWN
+      EL_DRAGON,
+      IMG_DRAGON_LEFT,         IMG_DRAGON_RIGHT,
+      IMG_DRAGON_UP,           IMG_DRAGON_DOWN
     },
     {
       -1,
@@ -1104,13 +1103,13 @@ void InitElementProperties()
     EL_TIMEGATE_OPENING,
     EL_TIMEGATE_CLOSED,
     EL_TIMEGATE_CLOSING,
-    EL_TUBE_CROSS,
+    EL_TUBE_ALL,
     EL_TUBE_VERTICAL,
     EL_TUBE_HORIZONTAL,
-    EL_TUBE_VERT_LEFT,
-    EL_TUBE_VERT_RIGHT,
-    EL_TUBE_HORIZ_UP,
-    EL_TUBE_HORIZ_DOWN,
+    EL_TUBE_VERTICAL_LEFT,
+    EL_TUBE_VERTICAL_RIGHT,
+    EL_TUBE_HORIZONTAL_UP,
+    EL_TUBE_HORIZONTAL_DOWN,
     EL_TUBE_LEFT_UP,
     EL_TUBE_LEFT_DOWN,
     EL_TUBE_RIGHT_UP,
@@ -1129,7 +1128,7 @@ void InitElementProperties()
     EL_BD_WALL,
     EL_WALL_CRUMBLED,
     EL_EXIT_CLOSED,
-    EL_AUSGANG_ACT,
+    EL_EXIT_OPENING,
     EL_EXIT_OPEN,
     EL_AMOEBA_DEAD,
     EL_AMOEBA_WET,
@@ -1146,12 +1145,12 @@ void InitElementProperties()
     EL_MAGIC_WALL_FILLING,
     EL_MAGIC_WALL_FULL,
     EL_MAGIC_WALL_DEAD,
-    EL_MAGIC_WALL_BD_OFF,
-    EL_MAGIC_WALL_BD_EMPTY,
-    EL_MAGIC_WALL_BD_EMPTYING,
-    EL_MAGIC_WALL_BD_FULL,
-    EL_MAGIC_WALL_BD_FILLING,
-    EL_MAGIC_WALL_BD_DEAD,
+    EL_BD_MAGIC_WALL,
+    EL_BD_MAGIC_WALL_EMPTY,
+    EL_BD_MAGIC_WALL_EMPTYING,
+    EL_BD_MAGIC_WALL_FULL,
+    EL_BD_MAGIC_WALL_FILLING,
+    EL_BD_MAGIC_WALL_DEAD,
     EL_GAMEOFLIFE,
     EL_BIOMAZE,
     EL_ACIDPOOL_TOPLEFT,
@@ -1196,8 +1195,8 @@ void InitElementProperties()
     EL_SWITCHGATE_SWITCH_DOWN,
     EL_LIGHT_SWITCH,
     EL_LIGHT_SWITCH_ACTIVE,
-    EL_TIMEGATE_SWITCH_OFF,
-    EL_TIMEGATE_SWITCH_ON,
+    EL_TIMEGATE_SWITCH,
+    EL_TIMEGATE_SWITCH_ACTIVE,
     EL_SIGN_EXCLAMATION,
     EL_SIGN_RADIOACTIVITY,
     EL_SIGN_STOP,
@@ -1250,13 +1249,13 @@ void InitElementProperties()
     EL_TIMEGATE_OPENING,
     EL_TIMEGATE_CLOSED,
     EL_TIMEGATE_CLOSING,
-    EL_TUBE_CROSS,
+    EL_TUBE_ALL,
     EL_TUBE_VERTICAL,
     EL_TUBE_HORIZONTAL,
-    EL_TUBE_VERT_LEFT,
-    EL_TUBE_VERT_RIGHT,
-    EL_TUBE_HORIZ_UP,
-    EL_TUBE_HORIZ_DOWN,
+    EL_TUBE_VERTICAL_LEFT,
+    EL_TUBE_VERTICAL_RIGHT,
+    EL_TUBE_HORIZONTAL_UP,
+    EL_TUBE_HORIZONTAL_DOWN,
     EL_TUBE_LEFT_UP,
     EL_TUBE_LEFT_DOWN,
     EL_TUBE_RIGHT_UP,
@@ -1341,13 +1340,13 @@ void InitElementProperties()
     EL_TIMEGATE_OPENING,
     EL_TIMEGATE_CLOSED,
     EL_TIMEGATE_CLOSING,
-    EL_TUBE_CROSS,
+    EL_TUBE_ALL,
     EL_TUBE_VERTICAL,
     EL_TUBE_HORIZONTAL,
-    EL_TUBE_VERT_LEFT,
-    EL_TUBE_VERT_RIGHT,
-    EL_TUBE_HORIZ_UP,
-    EL_TUBE_HORIZ_DOWN,
+    EL_TUBE_VERTICAL_LEFT,
+    EL_TUBE_VERTICAL_RIGHT,
+    EL_TUBE_HORIZONTAL_UP,
+    EL_TUBE_HORIZONTAL_DOWN,
     EL_TUBE_LEFT_UP,
     EL_TUBE_LEFT_DOWN,
     EL_TUBE_RIGHT_UP,
@@ -1396,8 +1395,8 @@ void InitElementProperties()
   {
     EL_BUG,
     EL_SPACESHIP,
-    EL_BUTTERFLY,
-    EL_FIREFLY,
+    EL_BD_BUTTERFLY,
+    EL_BD_FIREFLY,
     EL_YAMYAM,
     EL_DARK_YAMYAM,
     EL_ROBOT,
@@ -1427,7 +1426,7 @@ void InitElementProperties()
     EL_EM_GATE3_GRAY,
     EL_EM_GATE4_GRAY,
     EL_EXIT_CLOSED,
-    EL_AUSGANG_ACT,
+    EL_EXIT_OPENING,
     EL_EXIT_OPEN,
     EL_WALL,
     EL_WALL_CRUMBLED,
@@ -1435,7 +1434,7 @@ void InitElementProperties()
     EL_WALL_GROWING_X,
     EL_WALL_GROWING_Y,
     EL_WALL_GROWING_XY,
-    EL_MAUERND,
+    EL_WALL_GROWING_ACTIVE,
     EL_BD_WALL,
     EL_SP_CHIP_SINGLE,
     EL_SP_CHIP_LEFT,
@@ -1489,7 +1488,7 @@ void InitElementProperties()
     EL_AMOEBA_DROP,
     EL_QUICKSAND_FULL,
     EL_MAGIC_WALL_FULL,
-    EL_MAGIC_WALL_BD_FULL,
+    EL_BD_MAGIC_WALL_FULL,
     EL_TIME_ORB_FULL,
     EL_TIME_ORB_EMPTY,
     EL_SP_ZONK,
@@ -1552,8 +1551,8 @@ void InitElementProperties()
   {
     EL_BUG,
     EL_SPACESHIP,
-    EL_BUTTERFLY,
-    EL_FIREFLY,
+    EL_BD_BUTTERFLY,
+    EL_BD_FIREFLY,
     EL_YAMYAM,
     EL_DARK_YAMYAM,
     EL_ROBOT,
@@ -1580,14 +1579,14 @@ void InitElementProperties()
     EL_SPACESHIP_UP,
     EL_SPACESHIP_LEFT,
     EL_SPACESHIP_DOWN,
-    EL_BUTTERFLY_RIGHT,
-    EL_BUTTERFLY_UP,
-    EL_BUTTERFLY_LEFT,
-    EL_BUTTERFLY_DOWN,
-    EL_FIREFLY_RIGHT,
-    EL_FIREFLY_UP,
-    EL_FIREFLY_LEFT,
-    EL_FIREFLY_DOWN,
+    EL_BD_BUTTERFLY_RIGHT,
+    EL_BD_BUTTERFLY_UP,
+    EL_BD_BUTTERFLY_LEFT,
+    EL_BD_BUTTERFLY_DOWN,
+    EL_BD_FIREFLY_RIGHT,
+    EL_BD_FIREFLY_UP,
+    EL_BD_FIREFLY_LEFT,
+    EL_BD_FIREFLY_DOWN,
     EL_PACMAN_RIGHT,
     EL_PACMAN_UP,
     EL_PACMAN_LEFT,
@@ -1599,8 +1598,8 @@ void InitElementProperties()
   {
     EL_BUG,
     EL_SPACESHIP,
-    EL_BUTTERFLY,
-    EL_FIREFLY
+    EL_BD_BUTTERFLY,
+    EL_BD_FIREFLY
   };
   static int ep_dont_touch_num = SIZEOF_ARRAY_INT(ep_dont_touch);
 
@@ -1608,8 +1607,8 @@ void InitElementProperties()
   {
     EL_BUG,
     EL_SPACESHIP,
-    EL_BUTTERFLY,
-    EL_FIREFLY,
+    EL_BD_BUTTERFLY,
+    EL_BD_FIREFLY,
     EL_YAMYAM,
     EL_DARK_YAMYAM,
     EL_ROBOT,
@@ -1618,7 +1617,7 @@ void InitElementProperties()
     EL_ACID,
     EL_SP_SNIKSNAK,
     EL_SP_ELECTRON,
-    EL_SP_BUG_ACTIVE,
+    EL_SP_BUGGY_BASE_ACTIVE,
     EL_TRAP_ACTIVE,
     EL_LANDMINE
   };
@@ -1629,8 +1628,8 @@ void InitElementProperties()
     EL_SAND,
     EL_BUG,
     EL_SPACESHIP,
-    EL_BUTTERFLY,
-    EL_FIREFLY,
+    EL_BD_BUTTERFLY,
+    EL_BD_FIREFLY,
     EL_YAMYAM,
     EL_ROBOT,
     EL_PACMAN,
@@ -1660,21 +1659,21 @@ void InitElementProperties()
     EL_ROCK,
     EL_BD_ROCK,
     EL_BD_DIAMOND,
-    EL_MAGIC_WALL_BD_OFF,
+    EL_BD_MAGIC_WALL,
     EL_EXIT_CLOSED,
     EL_EXIT_OPEN,
     EL_STEELWALL,
     EL_PLAYER,
-    EL_FIREFLY,
-    EL_FIREFLY_1,
-    EL_FIREFLY_2,
-    EL_FIREFLY_3,
-    EL_FIREFLY_4,
-    EL_BUTTERFLY,
-    EL_BUTTERFLY_1,
-    EL_BUTTERFLY_2,
-    EL_BUTTERFLY_3,
-    EL_BUTTERFLY_4,
+    EL_BD_FIREFLY,
+    EL_BD_FIREFLY_1,
+    EL_BD_FIREFLY_2,
+    EL_BD_FIREFLY_3,
+    EL_BD_FIREFLY_4,
+    EL_BD_BUTTERFLY,
+    EL_BD_BUTTERFLY_1,
+    EL_BD_BUTTERFLY_2,
+    EL_BD_BUTTERFLY_3,
+    EL_BD_BUTTERFLY_4,
     EL_BD_AMOEBA,
     EL_CHAR_QUESTION
   };
@@ -1684,9 +1683,9 @@ void InitElementProperties()
   {
     EL_EMPTY,
     EL_STEELWALL,
-    EL_SOKOBAN_OBJEKT,
-    EL_SOKOBAN_FELD_LEER,
-    EL_SOKOBAN_FELD_VOLL,
+    EL_SOKOBAN_OBJECT,
+    EL_SOKOBAN_FIELD_EMPTY,
+    EL_SOKOBAN_FIELD_FULL,
     EL_PLAYER,
     EL_INVISIBLE_STEELWALL
   };
@@ -1710,7 +1709,6 @@ void InitElementProperties()
     EL_WALL,
     EL_BD_WALL,
     EL_WALL_CRUMBLED,
-    EL_KEY,
     EL_STEELWALL,
     EL_AMOEBA_DEAD,
     EL_QUICKSAND_EMPTY,
@@ -1751,9 +1749,9 @@ void InitElementProperties()
     EL_DYNABOMB_NR,
     EL_DYNABOMB_SZ,
     EL_DYNABOMB_XL,
-    EL_SOKOBAN_OBJEKT,
-    EL_SOKOBAN_FELD_LEER,
-    EL_SOKOBAN_FELD_VOLL,
+    EL_SOKOBAN_OBJECT,
+    EL_SOKOBAN_FIELD_EMPTY,
+    EL_SOKOBAN_FIELD_FULL,
     EL_WALL_EMERALD_RED,
     EL_WALL_EMERALD_PURPLE,
     EL_ACIDPOOL_TOPLEFT,
@@ -1763,8 +1761,8 @@ void InitElementProperties()
     EL_ACIDPOOL_BOTTOMRIGHT,
     EL_MAGIC_WALL,
     EL_MAGIC_WALL_DEAD,
-    EL_MAGIC_WALL_BD_OFF,
-    EL_MAGIC_WALL_BD_DEAD,
+    EL_BD_MAGIC_WALL,
+    EL_BD_MAGIC_WALL_DEAD,
     EL_AMOEBA_TO_DIAMOND,
     EL_BLOCKED,
     EL_SP_EMPTY,
@@ -1886,8 +1884,8 @@ void InitElementProperties()
     EL_BOMB,
     EL_NUT,
     EL_TIME_ORB_EMPTY,
-    EL_SOKOBAN_FELD_VOLL,
-    EL_SOKOBAN_OBJEKT,
+    EL_SOKOBAN_FIELD_FULL,
+    EL_SOKOBAN_OBJECT,
     EL_SATELLITE,
     EL_SP_ZONK,
     EL_SP_DISK_ORANGE,
@@ -1922,9 +1920,9 @@ void InitElementProperties()
   {
     EL_SAND,
     EL_SP_BASE,
-    EL_SP_BUG,
-    EL_TRAP_INACTIVE,
-    EL_SAND_INVISIBLE
+    EL_SP_BUGGY_BASE,
+    EL_TRAP,
+    EL_INVISIBLE_SAND
   };
   static int ep_eatable_num = SIZEOF_ARRAY_INT(ep_eatable);
 
@@ -1956,7 +1954,7 @@ void InitElementProperties()
     EL_SP_PORT_X,
     EL_SP_PORT_XY,
     EL_SP_ELECTRON,
-    EL_SP_BUG,
+    EL_SP_BUGGY_BASE,
     EL_SP_CHIP_LEFT,
     EL_SP_CHIP_RIGHT,
     EL_SP_HARD_BASE1,
@@ -2017,13 +2015,13 @@ void InitElementProperties()
     EL_SP_PORT_X,
     EL_SP_PORT_Y,
     EL_SP_PORT_XY,
-    EL_TUBE_CROSS,
+    EL_TUBE_ALL,
     EL_TUBE_VERTICAL,
     EL_TUBE_HORIZONTAL,
-    EL_TUBE_VERT_LEFT,
-    EL_TUBE_VERT_RIGHT,
-    EL_TUBE_HORIZ_UP,
-    EL_TUBE_HORIZ_DOWN,
+    EL_TUBE_VERTICAL_LEFT,
+    EL_TUBE_VERTICAL_RIGHT,
+    EL_TUBE_HORIZONTAL_UP,
+    EL_TUBE_HORIZONTAL_DOWN,
     EL_TUBE_LEFT_UP,
     EL_TUBE_LEFT_DOWN,
     EL_TUBE_RIGHT_UP,
@@ -2077,13 +2075,13 @@ void InitElementProperties()
 
   static int ep_tube[] =
   {
-    EL_TUBE_CROSS,
+    EL_TUBE_ALL,
     EL_TUBE_VERTICAL,
     EL_TUBE_HORIZONTAL,
-    EL_TUBE_VERT_LEFT,
-    EL_TUBE_VERT_RIGHT,
-    EL_TUBE_HORIZ_UP,
-    EL_TUBE_HORIZ_DOWN,
+    EL_TUBE_VERTICAL_LEFT,
+    EL_TUBE_VERTICAL_RIGHT,
+    EL_TUBE_HORIZONTAL_UP,
+    EL_TUBE_HORIZONTAL_DOWN,
     EL_TUBE_LEFT_UP,
     EL_TUBE_LEFT_DOWN,
     EL_TUBE_RIGHT_UP,
index 4c3a0dbb92c3e9db86a8786353c3d002772cb62e..ac9c9d6fba7bd7a55b08f1c90485fdc1bd3521c7 100644 (file)
@@ -153,7 +153,7 @@ int anim_action_mapping[] =
   6,           /* GFX_ACTION_IMPACT            (9)  */
   6,           /* GFX_ACTION_CRACKING          (10)  */
   6,           /* GFX_ACTION_ACTIVATING        (11)  */
-  6,           /* GFX_ACTION_ACTIVE            (12)  */
+  6,           /* GFX_ACTION_EATING            (12)  */
   6            /* GFX_ACTION_OTHER             (13) */
 };
 
@@ -201,14 +201,18 @@ struct ConfigInfo image_config[] =
   { "quicksand_empty.xpos",                    "2"                     },
   { "quicksand_empty.ypos",                    "0"                     },
   { "quicksand_empty.frames",                  "1"                     },
+  { "quicksand.filling",                       "RocksElements.pcx"     },
+  { "quicksand.filling.xpos",                  "3"                     },
+  { "quicksand.filling.ypos",                  "0"                     },
+  { "quicksand.filling.frames",                        "1"                     },
   { "quicksand_full",                          "RocksElements.pcx"     },
   { "quicksand_full.xpos",                     "3"                     },
   { "quicksand_full.ypos",                     "0"                     },
   { "quicksand_full.frames",                   "1"                     },
-  { "quicksand_slipping",                      "RocksElements.pcx"     },
-  { "quicksand_slipping.xpos",                 "3"                     },
-  { "quicksand_slipping.ypos",                 "0"                     },
-  { "quicksand_slipping.frames",               "1"                     },
+  { "quicksand.emptying",                      "RocksElements.pcx"     },
+  { "quicksand.emptying.xpos",                 "3"                     },
+  { "quicksand.emptying.ypos",                 "0"                     },
+  { "quicksand.emptying.frames",               "1"                     },
 
   { "steelwall",                               "RocksElements.pcx"     },
   { "steelwall.xpos",                          "4"                     },
@@ -468,38 +472,38 @@ struct ConfigInfo image_config[] =
   { "amoeba.creating.xpos",                    "5"                     },
   { "amoeba.creating.ypos",                    "6"                     },
   { "amoeba.creating.frames",                  "3"                     },
-  { "amoeba1",                                 "RocksElements.pcx"     },
-  { "amoeba1.xpos",                            "8"                     },
-  { "amoeba1.ypos",                            "6"                     },
-  { "amoeba1.frames",                          "1"                     },
-  { "amoeba2",                                 "RocksElements.pcx"     },
-  { "amoeba2.xpos",                            "9"                     },
-  { "amoeba2.ypos",                            "6"                     },
-  { "amoeba2.frames",                          "1"                     },
-  { "amoeba3",                                 "RocksElements.pcx"     },
-  { "amoeba3.xpos",                            "10"                    },
-  { "amoeba3.ypos",                            "6"                     },
-  { "amoeba3.frames",                          "1"                     },
-  { "amoeba4",                                 "RocksElements.pcx"     },
-  { "amoeba4.xpos",                            "11"                    },
-  { "amoeba4.ypos",                            "6"                     },
-  { "amoeba4.frames",                          "1"                     },
-  { "amoeba_dead1",                            "RocksElements.pcx"     },
-  { "amoeba_dead1.xpos",                       "12"                    },
-  { "amoeba_dead1.ypos",                       "6"                     },
-  { "amoeba_dead1.frames",                     "1"                     },
-  { "amoeba_dead2",                            "RocksElements.pcx"     },
-  { "amoeba_dead2.xpos",                       "13"                    },
-  { "amoeba_dead2.ypos",                       "6"                     },
-  { "amoeba_dead2.frames",                     "1"                     },
-  { "amoeba_dead3",                            "RocksElements.pcx"     },
-  { "amoeba_dead3.xpos",                       "14"                    },
-  { "amoeba_dead3.ypos",                       "6"                     },
-  { "amoeba_dead3.frames",                     "1"                     },
-  { "amoeba_dead4",                            "RocksElements.pcx"     },
-  { "amoeba_dead4.xpos",                       "15"                    },
-  { "amoeba_dead4.ypos",                       "6"                     },
-  { "amoeba_dead4.frames",                     "1"                     },
+  { "amoeba.part1",                            "RocksElements.pcx"     },
+  { "amoeba.part1.xpos",                       "8"                     },
+  { "amoeba.part1.ypos",                       "6"                     },
+  { "amoeba.part1.frames",                     "1"                     },
+  { "amoeba.part2",                            "RocksElements.pcx"     },
+  { "amoeba.part2.xpos",                       "9"                     },
+  { "amoeba.part2.ypos",                       "6"                     },
+  { "amoeba.part2.frames",                     "1"                     },
+  { "amoeba.part3",                            "RocksElements.pcx"     },
+  { "amoeba.part3.xpos",                       "10"                    },
+  { "amoeba.part3.ypos",                       "6"                     },
+  { "amoeba.part3.frames",                     "1"                     },
+  { "amoeba.part4",                            "RocksElements.pcx"     },
+  { "amoeba.part4.xpos",                       "11"                    },
+  { "amoeba.part4.ypos",                       "6"                     },
+  { "amoeba.part4.frames",                     "1"                     },
+  { "amoeba_dead.part1",                       "RocksElements.pcx"     },
+  { "amoeba_dead.part1.xpos",                  "12"                    },
+  { "amoeba_dead.part1.ypos",                  "6"                     },
+  { "amoeba_dead.part1.frames",                        "1"                     },
+  { "amoeba_dead.part2",                       "RocksElements.pcx"     },
+  { "amoeba_dead.part2.xpos",                  "13"                    },
+  { "amoeba_dead.part2.ypos",                  "6"                     },
+  { "amoeba_dead.part2.frames",                        "1"                     },
+  { "amoeba_dead.part3",                       "RocksElements.pcx"     },
+  { "amoeba_dead.part3.xpos",                  "14"                    },
+  { "amoeba_dead.part3.ypos",                  "6"                     },
+  { "amoeba_dead.part3.frames",                        "1"                     },
+  { "amoeba_dead.part4",                       "RocksElements.pcx"     },
+  { "amoeba_dead.part4.xpos",                  "15"                    },
+  { "amoeba_dead.part4.ypos",                  "6"                     },
+  { "amoeba_dead.part4.frames",                        "1"                     },
 
   { "lamp",                                    "RocksElements.pcx"     },
   { "lamp.xpos",                               "0"                     },
@@ -523,6 +527,22 @@ struct ConfigInfo image_config[] =
   { "bd_amoeba.xpos",                          "8"                     },
   { "bd_amoeba.ypos",                          "7"                     },
   { "bd_amoeba.frames",                                "1"                     },
+  { "bd_amoeba.part1",                         "RocksElements.pcx"     },
+  { "bd_amoeba.part1.xpos",                    "8"                     },
+  { "bd_amoeba.part1.ypos",                    "6"                     },
+  { "bd_amoeba.part1.frames",                  "1"                     },
+  { "bd_amoeba.part2",                         "RocksElements.pcx"     },
+  { "bd_amoeba.part2.xpos",                    "9"                     },
+  { "bd_amoeba.part2.ypos",                    "6"                     },
+  { "bd_amoeba.part2.frames",                  "1"                     },
+  { "bd_amoeba.part3",                         "RocksElements.pcx"     },
+  { "bd_amoeba.part3.xpos",                    "10"                    },
+  { "bd_amoeba.part3.ypos",                    "6"                     },
+  { "bd_amoeba.part3.frames",                  "1"                     },
+  { "bd_amoeba.part4",                         "RocksElements.pcx"     },
+  { "bd_amoeba.part4.xpos",                    "11"                    },
+  { "bd_amoeba.part4.ypos",                    "6"                     },
+  { "bd_amoeba.part4.frames",                  "1"                     },
 
   { "sokoban_object",                          "RocksElements.pcx"     },
   { "sokoban_object.xpos",                     "9"                     },
@@ -545,6 +565,14 @@ struct ConfigInfo image_config[] =
   { "magic_wall.active.xpos",                  "0"                     },
   { "magic_wall.active.ypos",                  "8"                     },
   { "magic_wall.active.frames",                        "4"                     },
+  { "magic_wall.filling",                      "RocksElements.pcx"     },
+  { "magic_wall.filling.xpos",                 "0"                     },
+  { "magic_wall.filling.ypos",                 "8"                     },
+  { "magic_wall.filling.frames",               "4"                     },
+  { "magic_wall.emptying",                     "RocksElements.pcx"     },
+  { "magic_wall.emptying.xpos",                        "0"                     },
+  { "magic_wall.emptying.ypos",                        "8"                     },
+  { "magic_wall.emptying.frames",              "4"                     },
 
   { "bd_magic_wall",                           "RocksElements.pcx"     },
   { "bd_magic_wall.xpos",                      "12"                    },
@@ -554,6 +582,14 @@ struct ConfigInfo image_config[] =
   { "bd_magic_wall.active.xpos",               "12"                    },
   { "bd_magic_wall.active.ypos",               "10"                    },
   { "bd_magic_wall.active.frames",             "4"                     },
+  { "bd_magic_wall.filling",                   "RocksElements.pcx"     },
+  { "bd_magic_wall.filling.xpos",              "12"                    },
+  { "bd_magic_wall.filling.ypos",              "10"                    },
+  { "bd_magic_wall.filling.frames",            "4"                     },
+  { "bd_magic_wall.emptying",                  "RocksElements.pcx"     },
+  { "bd_magic_wall.emptying.xpos",             "12"                    },
+  { "bd_magic_wall.emptying.ypos",             "10"                    },
+  { "bd_magic_wall.emptying.frames",           "4"                     },
 
   { "wall_emerald",                            "RocksElements.pcx"     },
   { "wall_emerald.xpos",                       "4"                     },
@@ -685,23 +721,6 @@ struct ConfigInfo image_config[] =
   { "dynabomb_sz.ypos",                                "11"                    },
   { "dynabomb_sz.frames",                      "1"                     },
 
-  { "arrow_left",                              "RocksElements.pcx"     },
-  { "arrow_left.xpos",                         "0"                     },
-  { "arrow_left.ypos",                         "12"                    },
-  { "arrow_left.frames",                       "1"                     },
-  { "arrow_right",                             "RocksElements.pcx"     },
-  { "arrow_right.xpos",                                "1"                     },
-  { "arrow_right.ypos",                                "12"                    },
-  { "arrow_right.frames",                      "1"                     },
-  { "arrow_up",                                        "RocksElements.pcx"     },
-  { "arrow_up.xpos",                           "2"                     },
-  { "arrow_up.ypos",                           "12"                    },
-  { "arrow_up.frames",                         "1"                     },
-  { "arrow_down",                              "RocksElements.pcx"     },
-  { "arrow_down.xpos",                         "3"                     },
-  { "arrow_down.ypos",                         "12"                    },
-  { "arrow_down.frames",                       "1"                     },
-
   { "bd_butterfly",                            "RocksElements.pcx"     },
   { "bd_butterfly.xpos",                       "4"                     },
   { "bd_butterfly.ypos",                       "12"                    },
@@ -769,39 +788,51 @@ struct ConfigInfo image_config[] =
   { "steelwall_topright.ypos",                 "13"                    },
   { "steelwall_topright.frames",               "1"                     },
   { "steelwall_bottomleft",                    "RocksElements.pcx"     },
-  { "steelwall_bottomleft.xpos",               "1"                     },
+  { "steelwall_bottomleft.xpos",               "2"                     },
   { "steelwall_bottomleft.ypos",               "13"                    },
   { "steelwall_bottomleft.frames",             "1"                     },
   { "steelwall_bottomright",                   "RocksElements.pcx"     },
-  { "steelwall_bottomright.xpos",              "1"                     },
+  { "steelwall_bottomright.xpos",              "3"                     },
   { "steelwall_bottomright.ypos",              "13"                    },
   { "steelwall_bottomright.frames",            "1"                     },
   { "steelwall_horizontal",                    "RocksElements.pcx"     },
-  { "steelwall_horizontal.xpos",               "1"                     },
+  { "steelwall_horizontal.xpos",               "4"                     },
   { "steelwall_horizontal.ypos",               "13"                    },
   { "steelwall_horizontal.frames",             "1"                     },
+  { "steelwall_vertical",                      "RocksElements.pcx"     },
+  { "steelwall_vertical.xpos",                 "5"                     },
+  { "steelwall_vertical.ypos",                 "13"                    },
+  { "steelwall_vertical.frames",               "1"                     },
 
   { "invisible_steelwall_topleft",             "RocksElements.pcx"     },
-  { "invisible_steelwall_topleft.xpos",                "0"                     },
+  { "invisible_steelwall_topleft.xpos",                "6"                     },
   { "invisible_steelwall_topleft.ypos",                "13"                    },
   { "invisible_steelwall_topleft.frames",      "1"                     },
   { "invisible_steelwall_topright",            "RocksElements.pcx"     },
-  { "invisible_steelwall_topright.xpos",       "1"                     },
+  { "invisible_steelwall_topright.xpos",       "7"                     },
   { "invisible_steelwall_topright.ypos",       "13"                    },
   { "invisible_steelwall_topright.frames",     "1"                     },
   { "invisible_steelwall_bottomleft",          "RocksElements.pcx"     },
-  { "invisible_steelwall_bottomleft.xpos",     "1"                     },
+  { "invisible_steelwall_bottomleft.xpos",     "8"                     },
   { "invisible_steelwall_bottomleft.ypos",     "13"                    },
   { "invisible_steelwall_bottomleft.frames",   "1"                     },
   { "invisible_steelwall_bottomright",         "RocksElements.pcx"     },
-  { "invisible_steelwall_bottomright.xpos",    "1"                     },
+  { "invisible_steelwall_bottomright.xpos",    "9"                     },
   { "invisible_steelwall_bottomright.ypos",    "13"                    },
   { "invisible_steelwall_bottomright.frames",  "1"                     },
   { "invisible_steelwall_horizontal",          "RocksElements.pcx"     },
-  { "invisible_steelwall_horizontal.xpos",     "1                    },
+  { "invisible_steelwall_horizontal.xpos",     "10"                    },
   { "invisible_steelwall_horizontal.ypos",     "13"                    },
   { "invisible_steelwall_horizontal.frames",   "1"                     },
-
+  { "invisible_steelwall_vertical",            "RocksElements.pcx"     },
+  { "invisible_steelwall_vertical.xpos",       "11"                    },
+  { "invisible_steelwall_vertical.ypos",       "13"                    },
+  { "invisible_steelwall_vertical.frames",     "1"                     },
+
+  { "player1",                                 "RocksHeroes.pcx"       },
+  { "player1.xpos",                            "0"                     },
+  { "player1.ypos",                            "0"                     },
+  { "player1.frames",                          "1"                     },
   { "player1_down",                            "RocksHeroes.pcx"       },
   { "player1_down.xpos",                       "0"                     },
   { "player1_down.ypos",                       "0"                     },
@@ -859,6 +890,10 @@ struct ConfigInfo image_config[] =
   { "player1_right.pushing.ypos",              "2"                     },
   { "player1_right.pushing.frames",            "4"                     },
 
+  { "player2",                                 "RocksHeroes.pcx"       },
+  { "player2.xpos",                            "0"                     },
+  { "player2.ypos",                            "3"                     },
+  { "player2.frames",                          "1"                     },
   { "player2_down",                            "RocksHeroes.pcx"       },
   { "player2_down.xpos",                       "0"                     },
   { "player2_down.ypos",                       "3"                     },
@@ -916,6 +951,10 @@ struct ConfigInfo image_config[] =
   { "player2_right.pushing.ypos",              "5"                     },
   { "player2_right.pushing.frames",            "4"                     },
 
+  { "player3",                                 "RocksHeroes.pcx"       },
+  { "player3.xpos",                            "0"                     },
+  { "player3.ypos",                            "6"                     },
+  { "player3.frames",                          "1"                     },
   { "player3_down",                            "RocksHeroes.pcx"       },
   { "player3_down.xpos",                       "0"                     },
   { "player3_down.ypos",                       "6"                     },
@@ -973,6 +1012,10 @@ struct ConfigInfo image_config[] =
   { "player3_right.pushing.ypos",              "8"                     },
   { "player3_right.pushing.frames",            "4"                     },
 
+  { "player4",                                 "RocksHeroes.pcx"       },
+  { "player4.xpos",                            "0"                     },
+  { "player4.ypos",                            "9"                     },
+  { "player4.frames",                          "1"                     },
   { "player4_down",                            "RocksHeroes.pcx"       },
   { "player4_down.xpos",                       "0"                     },
   { "player4_down.ypos",                       "9"                     },
@@ -1250,68 +1293,68 @@ struct ConfigInfo image_config[] =
   { "acid.splashing_right.ypos",               "10"                    },
   { "acid.splashing_right.frames",             "4"                     },
 
-  { "spark_blue",                              "RocksHeroes.pcx"       },
-  { "spark_blue.xpos",                         "8"                     },
-  { "spark_blue.ypos",                         "11"                    },
-  { "spark_blue.frames",                       "3"                     },
-  { "spark_blue.pingpong",                     "1"                     },
-  { "spark_white",                             "RocksHeroes.pcx"       },
-  { "spark_white.xpos",                                "8"                     },
-  { "spark_white.ypos",                                "11"                    },
-  { "spark_white.frames",                      "3"                     },
-  { "spark_white.pingpong",                    "1"                     },
-
-  { "flames_left1",                            "RocksHeroes.pcx"       },
-  { "flames_left1.xpos",                       "8"                     },
-  { "flames_left1.ypos",                       "12"                    },
-  { "flames_left1.frames",                     "2"                     },
-  { "flames_left2",                            "RocksHeroes.pcx"       },
-  { "flames_left2.xpos",                       "9"                     },
-  { "flames_left2.ypos",                       "12"                    },
-  { "flames_left2.frames",                     "2"                     },
-  { "flames_left3",                            "RocksHeroes.pcx"       },
-  { "flames_left3.xpos",                       "10"                    },
-  { "flames_left3.ypos",                       "12"                    },
-  { "flames_left3.frames",                     "2"                     },
-
-  { "flames_right1",                           "RocksHeroes.pcx"       },
-  { "flames_right1.xpos",                      "8"                     },
-  { "flames_right1.ypos",                      "13"                    },
-  { "flames_right1.frames",                    "2"                     },
-  { "flames_right2",                           "RocksHeroes.pcx"       },
-  { "flames_right2.xpos",                      "9"                     },
-  { "flames_right2.ypos",                      "13"                    },
-  { "flames_right2.frames",                    "2"                     },
-  { "flames_right3",                           "RocksHeroes.pcx"       },
-  { "flames_right3.xpos",                      "10"                    },
-  { "flames_right3.ypos",                      "13"                    },
-  { "flames_right3.frames",                    "2"                     },
-
-  { "flames_up1",                              "RocksHeroes.pcx"       },
-  { "flames_up1.xpos",                         "8"                     },
-  { "flames_up1.ypos",                         "14"                    },
-  { "flames_up1.frames",                       "2"                     },
-  { "flames_up2",                              "RocksHeroes.pcx"       },
-  { "flames_up2.xpos",                         "9"                     },
-  { "flames_up2.ypos",                         "14"                    },
-  { "flames_up2.frames",                       "2"                     },
-  { "flames_up3",                              "RocksHeroes.pcx"       },
-  { "flames_up3.xpos",                         "10"                    },
-  { "flames_up3.ypos",                         "14"                    },
-  { "flames_up3.frames",                       "2"                     },
-
-  { "flames_down1",                            "RocksHeroes.pcx"       },
-  { "flames_down1.xpos",                       "8"                     },
-  { "flames_down1.ypos",                       "15"                    },
-  { "flames_down1.frames",                     "2"                     },
-  { "flames_down2",                            "RocksHeroes.pcx"       },
-  { "flames_down2.xpos",                       "9"                     },
-  { "flames_down2.ypos",                       "15"                    },
-  { "flames_down2.frames",                     "2"                     },
-  { "flames_down3",                            "RocksHeroes.pcx"       },
-  { "flames_down3.xpos",                       "10"                    },
-  { "flames_down3.ypos",                       "15"                    },
-  { "flames_down3.frames",                     "2"                     },
+  { "twinkle_blue",                            "RocksHeroes.pcx"       },
+  { "twinkle_blue.xpos",                       "8"                     },
+  { "twinkle_blue.ypos",                       "11"                    },
+  { "twinkle_blue.frames",                     "3"                     },
+  { "twinkle_blue.pingpong",                   "1"                     },
+  { "twinkle_white",                           "RocksHeroes.pcx"       },
+  { "twinkle_white.xpos",                      "8"                     },
+  { "twinkle_white.ypos",                      "11"                    },
+  { "twinkle_white.frames",                    "3"                     },
+  { "twinkle_white.pingpong",                  "1"                     },
+
+  { "dragon_fire_left1",                       "RocksHeroes.pcx"       },
+  { "dragon_fire_left1.xpos",                  "8"                     },
+  { "dragon_fire_left1.ypos",                  "12"                    },
+  { "dragon_fire_left1.frames",                        "2"                     },
+  { "dragon_fire_left2",                       "RocksHeroes.pcx"       },
+  { "dragon_fire_left2.xpos",                  "9"                     },
+  { "dragon_fire_left2.ypos",                  "12"                    },
+  { "dragon_fire_left2.frames",                        "2"                     },
+  { "dragon_fire_left3",                       "RocksHeroes.pcx"       },
+  { "dragon_fire_left3.xpos",                  "10"                    },
+  { "dragon_fire_left3.ypos",                  "12"                    },
+  { "dragon_fire_left3.frames",                        "2"                     },
+
+  { "dragon_fire_right1",                      "RocksHeroes.pcx"       },
+  { "dragon_fire_right1.xpos",                 "8"                     },
+  { "dragon_fire_right1.ypos",                 "13"                    },
+  { "dragon_fire_right1.frames",               "2"                     },
+  { "dragon_fire_right2",                      "RocksHeroes.pcx"       },
+  { "dragon_fire_right2.xpos",                 "9"                     },
+  { "dragon_fire_right2.ypos",                 "13"                    },
+  { "dragon_fire_right2.frames",               "2"                     },
+  { "dragon_fire_right3",                      "RocksHeroes.pcx"       },
+  { "dragon_fire_right3.xpos",                 "10"                    },
+  { "dragon_fire_right3.ypos",                 "13"                    },
+  { "dragon_fire_right3.frames",               "2"                     },
+
+  { "dragon_fire_up1",                         "RocksHeroes.pcx"       },
+  { "dragon_fire_up1.xpos",                    "8"                     },
+  { "dragon_fire_up1.ypos",                    "14"                    },
+  { "dragon_fire_up1.frames",                  "2"                     },
+  { "dragon_fire_up2",                         "RocksHeroes.pcx"       },
+  { "dragon_fire_up2.xpos",                    "9"                     },
+  { "dragon_fire_up2.ypos",                    "14"                    },
+  { "dragon_fire_up2.frames",                  "2"                     },
+  { "dragon_fire_up3",                         "RocksHeroes.pcx"       },
+  { "dragon_fire_up3.xpos",                    "10"                    },
+  { "dragon_fire_up3.ypos",                    "14"                    },
+  { "dragon_fire_up3.frames",                  "2"                     },
+
+  { "dragon_fire_down1",                       "RocksHeroes.pcx"       },
+  { "dragon_fire_down1.xpos",                  "8"                     },
+  { "dragon_fire_down1.ypos",                  "15"                    },
+  { "dragon_fire_down1.frames",                        "2"                     },
+  { "dragon_fire_down2",                       "RocksHeroes.pcx"       },
+  { "dragon_fire_down2.xpos",                  "9"                     },
+  { "dragon_fire_down2.ypos",                  "15"                    },
+  { "dragon_fire_down2.frames",                        "2"                     },
+  { "dragon_fire_down3",                       "RocksHeroes.pcx"       },
+  { "dragon_fire_down3.xpos",                  "10"                    },
+  { "dragon_fire_down3.ypos",                  "15"                    },
+  { "dragon_fire_down3.frames",                        "2"                     },
 
   { "sp_empty_space",                          "RocksSP.pcx"           },
   { "sp_empty_space.xpos",                     "0"                     },
@@ -1582,19 +1625,19 @@ struct ConfigInfo image_config[] =
   { "sp_terminal.xpos",                                "8"                     },
   { "sp_terminal.ypos",                                "11"                    },
   { "sp_terminal.frames",                      "7"                     },
-  { "sp_terminal_active",                      "RocksSP.pcx"           },
-  { "sp_terminal_active.xpos",                 "8"                     },
-  { "sp_terminal_active.ypos",                 "12"                    },
-  { "sp_terminal_active.frames",               "7"                     },
+  { "sp_terminal.active",                      "RocksSP.pcx"           },
+  { "sp_terminal.active.xpos",                 "8"                     },
+  { "sp_terminal.active.ypos",                 "12"                    },
+  { "sp_terminal.active.frames",               "7"                     },
 
   { "sp_buggy_base",                           "RocksSP.pcx"           },
   { "sp_buggy_base.xpos",                      "1"                     },
   { "sp_buggy_base.ypos",                      "3"                     },
   { "sp_buggy_base.frames",                    "1"                     },
-  { "sp_buggy_base.activating",                        "RocksSP.pcx"           },
-  { "sp_buggy_base.activating.xpos",           "8"                     },
-  { "sp_buggy_base.activating.ypos",           "6"                     },
-  { "sp_buggy_base.activating.frames",         "4"                     },
+  { "sp_buggy_base.active",                    "RocksSP.pcx"           },
+  { "sp_buggy_base.active.xpos",               "8"                     },
+  { "sp_buggy_base.active.ypos",               "6"                     },
+  { "sp_buggy_base.active.frames",             "4"                     },
 
   { "sp_hard_base1",                           "RocksSP.pcx"           },
   { "sp_hard_base1.xpos",                      "4"                     },
@@ -1873,14 +1916,14 @@ struct ConfigInfo image_config[] =
   { "light_switch.active.ypos",                        "12"                    },
   { "light_switch.active.frames",              "1"                     },
 
-  { "timegate_wheel",                          "RocksDC.pcx"           },
-  { "timegate_wheel.xpos",                     "0"                     },
-  { "timegate_wheel.ypos",                     "15"                    },
-  { "timegate_wheel.frames",                   "1"                     },
-  { "timegate_wheel.active",                   "RocksDC.pcx"           },
-  { "timegate_wheel.active.xpos",              "0"                     },
-  { "timegate_wheel.active.ypos",              "15"                    },
-  { "timegate_wheel.active.frames",            "4"                     },
+  { "timegate_switch",                         "RocksDC.pcx"           },
+  { "timegate_switch.xpos",                    "0"                     },
+  { "timegate_switch.ypos",                    "15"                    },
+  { "timegate_switch.frames",                  "1"                     },
+  { "timegate_switch.active",                  "RocksDC.pcx"           },
+  { "timegate_switch.active.xpos",             "0"                     },
+  { "timegate_switch.active.ypos",             "15"                    },
+  { "timegate_switch.active.frames",           "4"                     },
 
   { "envelope",                                        "RocksDC.pcx"           },
   { "envelope.xpos",                           "4"                     },
@@ -1968,26 +2011,26 @@ struct ConfigInfo image_config[] =
   { "balloon.moving.frames",                   "4"                     },
   { "balloon.moving.pingpong",                 "1"                     },
 
-  { "balloon_windrose_left",                   "RocksDC.pcx"           },
-  { "balloon_windrose_left.xpos",              "8"                     },
-  { "balloon_windrose_left.ypos",              "7"                     },
-  { "balloon_windrose_left.frames",            "1"                     },
-  { "balloon_windrose_right",                  "RocksDC.pcx"           },
-  { "balloon_windrose_right.xpos",             "9"                     },
-  { "balloon_windrose_right.ypos",             "7"                     },
-  { "balloon_windrose_right.frames",           "1"                     },
-  { "balloon_windrose_up",                     "RocksDC.pcx"           },
-  { "balloon_windrose_up.xpos",                        "10"                    },
-  { "balloon_windrose_up.ypos",                        "7"                     },
-  { "balloon_windrose_up.frames",              "1"                     },
-  { "balloon_windrose_down",                   "RocksDC.pcx"           },
-  { "balloon_windrose_down.xpos",              "11"                    },
-  { "balloon_windrose_down.ypos",              "7"                     },
-  { "balloon_windrose_down.frames",            "1"                     },
-  { "balloon_windrose_all",                    "RocksDC.pcx"           },
-  { "balloon_windrose_all.xpos",               "7"                     },
-  { "balloon_windrose_all.ypos",               "0"                     },
-  { "balloon_windrose_all.frames",             "1"                     },
+  { "balloon_send_left",                       "RocksDC.pcx"           },
+  { "balloon_send_left.xpos",                  "8"                     },
+  { "balloon_send_left.ypos",                  "7"                     },
+  { "balloon_send_left.frames",                        "1"                     },
+  { "balloon_send_right",                      "RocksDC.pcx"           },
+  { "balloon_send_right.xpos",                 "9"                     },
+  { "balloon_send_right.ypos",                 "7"                     },
+  { "balloon_send_right.frames",               "1"                     },
+  { "balloon_send_up",                         "RocksDC.pcx"           },
+  { "balloon_send_up.xpos",                    "10"                    },
+  { "balloon_send_up.ypos",                    "7"                     },
+  { "balloon_send_up.frames",                  "1"                     },
+  { "balloon_send_down",                       "RocksDC.pcx"           },
+  { "balloon_send_down.xpos",                  "11"                    },
+  { "balloon_send_down.ypos",                  "7"                     },
+  { "balloon_send_down.frames",                        "1"                     },
+  { "balloon_send_any_direction",              "RocksDC.pcx"           },
+  { "balloon_send_any_direction.xpos",         "7"                     },
+  { "balloon_send_any_direction.ypos",         "0"                     },
+  { "balloon_send_any_direction.frames",       "1"                     },
 
   { "emc_steelwall1",                          "RocksDC.pcx"           },
   { "emc_steelwall1.xpos",                     "14"                    },
@@ -2175,18 +2218,14 @@ struct ConfigInfo image_config[] =
   { "tube_left_up.ypos",                       "7"                     },
   { "tube_left_up.frames",                     "1"                     },
 
-  { "trap_inactive",                           "RocksMore.pcx"         },
-  { "trap_inactive.xpos",                      "4"                     },
-  { "trap_inactive.ypos",                      "0"                     },
-  { "trap_inactive.frames",                    "1"                     },
-  { "trap_active",                             "RocksMore.pcx"         },
-  { "trap_active.xpos",                                "7"                     },
-  { "trap_active.ypos",                                "0"                     },
-  { "trap_active.frames",                      "1"                     },
-  { "trap.activating",                         "RocksMore.pcx"         },
-  { "trap.activating.xpos",                    "4"                     },
-  { "trap.activating.ypos",                    "0"                     },
-  { "trap.activating.frames",                  "4"                     },
+  { "trap",                                    "RocksMore.pcx"         },
+  { "trap.xpos",                               "4"                     },
+  { "trap.ypos",                               "0"                     },
+  { "trap.frames",                             "1"                     },
+  { "trap.active",                             "RocksMore.pcx"         },
+  { "trap.active.xpos",                                "4"                     },
+  { "trap.active.ypos",                                "0"                     },
+  { "trap.active.frames",                      "4"                     },
 
   { "bd_wall",                                 "RocksMore.pcx"         },
   { "bd_wall.xpos",                            "4"                     },
@@ -2206,10 +2245,10 @@ struct ConfigInfo image_config[] =
   { "bd_rock.pushing.ypos",                    "2"                     },
   { "bd_rock.pushing.frames",                  "4"                     },
 
-  { "dx_bomb",                                 "RocksMore.pcx"         },
-  { "dx_bomb.xpos",                            "7"                     },
-  { "dx_bomb.ypos",                            "1"                     },
-  { "dx_bomb.frames",                          "1"                     },
+  { "dx_supabomb",                             "RocksMore.pcx"         },
+  { "dx_supabomb.xpos",                                "7"                     },
+  { "dx_supabomb.ypos",                                "1"                     },
+  { "dx_supabomb.frames",                      "1"                     },
 
   { NULL,                                      NULL                    }
 };
@@ -2240,7 +2279,7 @@ struct ConfigInfo sound_config[] =
   { "sp_empty_space.digging",          "empty.wav"             },
   { "sp_base.digging",                 "base.wav"              },
   { "sp_buggy_base.digging",           "base.wav"              },
-  { "sp_buggy_base.activating",                "bug.wav"               },
+  { "sp_buggy_base.active",            "bug.wav"               },
   { "sp_infotron.collecting",          "infotron.wav"          },
   { "sp_infotron.impact",              "pling.wav"             },
   { "sp_zonk.pushing",                 "zonkpush.wav"          },
@@ -2338,8 +2377,8 @@ struct ConfigInfo sound_config[] =
   { "switchgate.opening",              "oeffnen.wav"           },
   { "switchgate.closing",              "oeffnen.wav"           },
   { "switchgate.passing",              "gate.wav"              },
-  { "timegate_wheel.activating",       "deng.wav"              },
-  { "timegate_wheel.active",           "miep.wav"              },
+  { "timegate_switch.activating",      "deng.wav"              },
+  { "timegate_switch.active",          "miep.wav"              },
   { "timegate.opening",                        "oeffnen.wav"           },
   { "timegate.closing",                        "oeffnen.wav"           },
   { "timegate.passing",                        "gate.wav"              },
@@ -2768,11 +2807,11 @@ struct ElementInfo element_info[MAX_ELEMENTS] =
   { "shield_deadly",           "shield (deadly, kills enemies)"},
   { "timegate",                        "time gate (open)"              },
   { "timegate",                        "time gate (closed)"            },
-  { "timegate_wheel",          "switch for time gate"          },
-  { "timegate_wheel",          "switch for time gate"          },
+  { "timegate_switch",         "switch for time gate"          },
+  { "timegate_switch",         "switch for time gate"          },
   { "balloon",                 "balloon"                       },
-  { "wall",                    "send balloon to the left"      },
-  { "wall",                    "send balloon to the right"     },
+  { "balloon_switch",          "send balloon to the left"      },
+  { "balloon_switch",          "send balloon to the right"     },
   { "balloon_switch",          "send balloon up"               },
   { "balloon_switch",          "send balloon down"             },    /* 330 */
   { "balloon_switch",          "send balloon in any direction" },
index 8677d23073fce777b085334e2028bd5af1cbea61..df5ea274b67d22efa38184d0651276a52e349bb8 100644 (file)
 #define PIX_SP                 5
 #define PIX_DC                 6
 #define PIX_MORE               7
-#define        PIX_FONT_BIG            8
+#define PIX_FONT_BIG           8
 #define PIX_FONT_SMALL         9
 #define PIX_FONT_MEDIUM                10
 #define PIX_FONT_EM            11
 /* "real" level elements */
 #define EL_EMPTY_SPACE                 0
 #define EL_EMPTY                       EL_EMPTY_SPACE
-#define        EL_SAND                         1
-#define        EL_WALL                         2
-#define        EL_WALL_CRUMBLED                3
-#define        EL_ROCK                         4
-#define        EL_KEY                          5
-#define        EL_EMERALD                      6
-#define        EL_EXIT_CLOSED                  7
-#define        EL_PLAYER                       8
+#define EL_SAND                                1
+#define EL_WALL                                2
+#define EL_WALL_CRUMBLED               3
+#define EL_ROCK                                4
+
+#define EL_UNUSED_5                    5
+
+#define EL_EMERALD                     6
+#define EL_EXIT_CLOSED                 7
+#define EL_PLAYER                      8
 #define EL_BUG                         9
 #define EL_SPACESHIP                   10
 #define EL_YAMYAM                      11
 #define EL_WALL_BD_DIAMOND             58
 #define EL_WALL_EMERALD_YELLOW         59
 #define EL_DARK_YAMYAM                 60
-#define EL_MAGIC_WALL_BD_OFF           61
+#define EL_BD_MAGIC_WALL               61
 #define EL_INVISIBLE_STEELWALL         62
 
 #define EL_UNUSED_63                   63
 #define EL_DYNABOMB_NR                 64
 #define EL_DYNABOMB_SZ                 65
 #define EL_DYNABOMB_XL                 66
-#define EL_SOKOBAN_OBJEKT              67
-#define EL_SOKOBAN_FELD_LEER           68
-#define EL_SOKOBAN_FELD_VOLL           69
-#define EL_BUTTERFLY_RIGHT             70
-#define EL_BUTTERFLY_UP                        71
-#define EL_BUTTERFLY_LEFT              72
-#define EL_BUTTERFLY_DOWN              73
-#define EL_FIREFLY_RIGHT               74
-#define EL_FIREFLY_UP                  75
-#define EL_FIREFLY_LEFT                        76
-#define EL_FIREFLY_DOWN                        77
-#define EL_BUTTERFLY_1                 EL_BUTTERFLY_DOWN
-#define EL_BUTTERFLY_2                 EL_BUTTERFLY_LEFT
-#define EL_BUTTERFLY_3                 EL_BUTTERFLY_UP
-#define EL_BUTTERFLY_4                 EL_BUTTERFLY_RIGHT
-#define EL_FIREFLY_1                   EL_FIREFLY_LEFT
-#define EL_FIREFLY_2                   EL_FIREFLY_DOWN
-#define EL_FIREFLY_3                   EL_FIREFLY_RIGHT
-#define EL_FIREFLY_4                   EL_FIREFLY_UP
-#define EL_BUTTERFLY                   78
-#define EL_FIREFLY                     79
+#define EL_SOKOBAN_OBJECT              67
+#define EL_SOKOBAN_FIELD_EMPTY         68
+#define EL_SOKOBAN_FIELD_FULL          69
+#define EL_BD_BUTTERFLY_RIGHT          70
+#define EL_BD_BUTTERFLY_UP             71
+#define EL_BD_BUTTERFLY_LEFT           72
+#define EL_BD_BUTTERFLY_DOWN           73
+#define EL_BD_FIREFLY_RIGHT            74
+#define EL_BD_FIREFLY_UP               75
+#define EL_BD_FIREFLY_LEFT             76
+#define EL_BD_FIREFLY_DOWN             77
+#define EL_BD_BUTTERFLY_1              EL_BD_BUTTERFLY_DOWN
+#define EL_BD_BUTTERFLY_2              EL_BD_BUTTERFLY_LEFT
+#define EL_BD_BUTTERFLY_3              EL_BD_BUTTERFLY_UP
+#define EL_BD_BUTTERFLY_4              EL_BD_BUTTERFLY_RIGHT
+#define EL_BD_FIREFLY_1                        EL_BD_FIREFLY_LEFT
+#define EL_BD_FIREFLY_2                        EL_BD_FIREFLY_DOWN
+#define EL_BD_FIREFLY_3                        EL_BD_FIREFLY_RIGHT
+#define EL_BD_FIREFLY_4                        EL_BD_FIREFLY_UP
+#define EL_BD_BUTTERFLY                        78
+#define EL_BD_FIREFLY                  79
 #define EL_PLAYER1                     80
 #define EL_PLAYER2                     81
 #define EL_PLAYER3                     82
 #define EL_MOLE                                110
 #define EL_PENGUIN                     111
 #define EL_SATELLITE                   112
-#define EL_ARROW_LEFT                  113
-#define EL_ARROW_RIGHT                 114
-#define EL_ARROW_UP                    115
-#define EL_ARROW_DOWN                  116
+#define EL_ARROW_BLUE_LEFT             113
+#define EL_ARROW_BLUE_RIGHT            114
+#define EL_ARROW_BLUE_UP               115
+#define EL_ARROW_BLUE_DOWN             116
 #define EL_PIG                         117
 #define EL_DRAGON                      118
 
 #define EL_SP_PORT_X                   (EL_SP_START + 22)
 #define EL_SP_PORT_XY                  (EL_SP_START + 23)
 #define EL_SP_ELECTRON                 (EL_SP_START + 24)
-#define EL_SP_BUG                      (EL_SP_START + 25)
+#define EL_SP_BUGGY_BASE               (EL_SP_START + 25)
 #define EL_SP_CHIP_LEFT                        (EL_SP_START + 26)
 #define EL_SP_CHIP_RIGHT               (EL_SP_START + 27)
 #define EL_SP_HARD_BASE1               (EL_SP_START + 28)
 #define EL_MOLE_UP                     313
 #define EL_MOLE_DOWN                   314
 #define EL_STEELWALL_SLANTED           315
-#define EL_SAND_INVISIBLE              316
+#define EL_INVISIBLE_SAND              316
 #define EL_DX_UNKNOWN_15               317
 #define EL_DX_UNKNOWN_42               318
 
 #define EL_UNUSED_319                  319
 #define EL_UNUSED_320                  320
 
-#define EL_SHIELD_ACTIVE               321
+#define EL_SHIELD_DEADLY               321
 #define EL_TIMEGATE_OPEN               322
 #define EL_TIMEGATE_CLOSED             323
-#define EL_TIMEGATE_SWITCH_ON          324
-#define EL_TIMEGATE_SWITCH_OFF         325
+#define EL_TIMEGATE_SWITCH_ACTIVE      324
+#define EL_TIMEGATE_SWITCH             325
 
 #define EL_BALLOON                     326
 #define EL_BALLOON_SEND_LEFT           327
 #define EL_BALLOON_SEND_RIGHT          328
 #define EL_BALLOON_SEND_UP             329
 #define EL_BALLOON_SEND_DOWN           330
-#define EL_BALLOON_SEND_ANY            331
+#define EL_BALLOON_SEND_ANY_DIRECTION  331
 
 #define EL_EMC_STEELWALL1              332
 #define EL_EMC_STEELWALL2              333
 #define EL_EMC_WALL7                   342
 #define EL_EMC_WALL8                   343
 
-#define EL_TUBE_CROSS                  344
+#define EL_TUBE_ALL                    344
 #define EL_TUBE_VERTICAL               345
 #define EL_TUBE_HORIZONTAL             346
-#define EL_TUBE_VERT_LEFT              347
-#define EL_TUBE_VERT_RIGHT             348
-#define EL_TUBE_HORIZ_UP               349
-#define EL_TUBE_HORIZ_DOWN             350
+#define EL_TUBE_VERTICAL_LEFT          347
+#define EL_TUBE_VERTICAL_RIGHT         348
+#define EL_TUBE_HORIZONTAL_UP          349
+#define EL_TUBE_HORIZONTAL_DOWN                350
 #define EL_TUBE_LEFT_UP                        351
 #define EL_TUBE_LEFT_DOWN              352
 #define EL_TUBE_RIGHT_UP               353
 #define EL_TUBE_RIGHT_DOWN             354
 #define EL_SPRING                      355
-#define EL_TRAP_INACTIVE               356
+#define EL_TRAP                                356
 #define EL_DX_SUPABOMB                 357
 
 #define NUM_FILE_ELEMENTS              358
 
 
 /* "real" (and therefore drawable) runtime elements */
-#define EL_FIRST_RUNTIME               NUM_FILE_ELEMENTS
-
-#define EL_MAGIC_WALL_EMPTY            (EL_FIRST_RUNTIME + 0)
-#define EL_MAGIC_WALL_BD_EMPTY         (EL_FIRST_RUNTIME + 1)
-#define EL_MAGIC_WALL_FULL             (EL_FIRST_RUNTIME + 2)
-#define EL_MAGIC_WALL_BD_FULL          (EL_FIRST_RUNTIME + 3)
-#define EL_MAGIC_WALL_DEAD             (EL_FIRST_RUNTIME + 4)
-#define EL_MAGIC_WALL_BD_DEAD          (EL_FIRST_RUNTIME + 5)
-#define EL_AUSGANG_ACT                 (EL_FIRST_RUNTIME + 6)
-#define EL_SP_TERMINAL_ACTIVE          (EL_FIRST_RUNTIME + 7)
-#define EL_SP_BUG_ACTIVE               (EL_FIRST_RUNTIME + 8)
-#define EL_EM_KEY1                     (EL_FIRST_RUNTIME + 9)
-#define EL_EM_KEY2                     (EL_FIRST_RUNTIME + 10)
-#define EL_EM_KEY3                     (EL_FIRST_RUNTIME + 11)
-#define EL_EM_KEY4                     (EL_FIRST_RUNTIME + 12)
-#define EL_DYNABOMB_ACTIVE_1           (EL_FIRST_RUNTIME + 13)
-#define EL_DYNABOMB_ACTIVE_2           (EL_FIRST_RUNTIME + 14)
-#define EL_DYNABOMB_ACTIVE_3           (EL_FIRST_RUNTIME + 15)
-#define EL_DYNABOMB_ACTIVE_4           (EL_FIRST_RUNTIME + 16)
-#define EL_SWITCHGATE_OPENING          (EL_FIRST_RUNTIME + 17)
-#define EL_SWITCHGATE_CLOSING          (EL_FIRST_RUNTIME + 18)
-#define EL_TIMEGATE_OPENING            (EL_FIRST_RUNTIME + 19)
-#define EL_TIMEGATE_CLOSING            (EL_FIRST_RUNTIME + 20)
-#define EL_PEARL_BREAKING              (EL_FIRST_RUNTIME + 21)
-#define EL_TRAP_ACTIVE                 (EL_FIRST_RUNTIME + 22)
-#define EL_SPRING_MOVING               (EL_FIRST_RUNTIME + 23)
-#define EL_SP_MURPHY_CLONE             (EL_FIRST_RUNTIME + 24)
-#define EL_QUICKSAND_EMPTYING          (EL_FIRST_RUNTIME + 25)
-#define EL_MAGIC_WALL_EMPTYING         (EL_FIRST_RUNTIME + 26)
-#define EL_MAGIC_WALL_BD_EMPTYING      (EL_FIRST_RUNTIME + 27)
-#define EL_AMOEBA_DRIPPING             (EL_FIRST_RUNTIME + 28)
-#define EL_SP_EXIT_OPEN                        (EL_FIRST_RUNTIME + 29)
-
-#define NUM_RUNTIME_ELEMENTS           (EL_FIRST_RUNTIME + 30)
+#define EL_FIRST_RUNTIME_REAL          NUM_FILE_ELEMENTS
+
+#define EL_MAGIC_WALL_EMPTY            (EL_FIRST_RUNTIME_REAL + 0)
+#define EL_BD_MAGIC_WALL_EMPTY         (EL_FIRST_RUNTIME_REAL + 1)
+#define EL_MAGIC_WALL_FULL             (EL_FIRST_RUNTIME_REAL + 2)
+#define EL_BD_MAGIC_WALL_FULL          (EL_FIRST_RUNTIME_REAL + 3)
+#define EL_MAGIC_WALL_DEAD             (EL_FIRST_RUNTIME_REAL + 4)
+#define EL_BD_MAGIC_WALL_DEAD          (EL_FIRST_RUNTIME_REAL + 5)
+#define EL_EXIT_OPENING                        (EL_FIRST_RUNTIME_REAL + 6)
+#define EL_SP_TERMINAL_ACTIVE          (EL_FIRST_RUNTIME_REAL + 7)
+#define EL_SP_BUGGY_BASE_ACTIVE                (EL_FIRST_RUNTIME_REAL + 8)
+#define EL_EM_KEY1                     (EL_FIRST_RUNTIME_REAL + 9)
+#define EL_EM_KEY2                     (EL_FIRST_RUNTIME_REAL + 10)
+#define EL_EM_KEY3                     (EL_FIRST_RUNTIME_REAL + 11)
+#define EL_EM_KEY4                     (EL_FIRST_RUNTIME_REAL + 12)
+#define EL_DYNABOMB_ACTIVE_1           (EL_FIRST_RUNTIME_REAL + 13)
+#define EL_DYNABOMB_ACTIVE_2           (EL_FIRST_RUNTIME_REAL + 14)
+#define EL_DYNABOMB_ACTIVE_3           (EL_FIRST_RUNTIME_REAL + 15)
+#define EL_DYNABOMB_ACTIVE_4           (EL_FIRST_RUNTIME_REAL + 16)
+#define EL_SWITCHGATE_OPENING          (EL_FIRST_RUNTIME_REAL + 17)
+#define EL_SWITCHGATE_CLOSING          (EL_FIRST_RUNTIME_REAL + 18)
+#define EL_TIMEGATE_OPENING            (EL_FIRST_RUNTIME_REAL + 19)
+#define EL_TIMEGATE_CLOSING            (EL_FIRST_RUNTIME_REAL + 20)
+#define EL_PEARL_BREAKING              (EL_FIRST_RUNTIME_REAL + 21)
+#define EL_TRAP_ACTIVE                 (EL_FIRST_RUNTIME_REAL + 22)
+#define EL_SPRING_MOVING               (EL_FIRST_RUNTIME_REAL + 23)
+#define EL_SP_MURPHY_CLONE             (EL_FIRST_RUNTIME_REAL + 24)
+#define EL_QUICKSAND_EMPTYING          (EL_FIRST_RUNTIME_REAL + 25)
+#define EL_MAGIC_WALL_EMPTYING         (EL_FIRST_RUNTIME_REAL + 26)
+#define EL_BD_MAGIC_WALL_EMPTYING      (EL_FIRST_RUNTIME_REAL + 27)
+#define EL_AMOEBA_DRIPPING             (EL_FIRST_RUNTIME_REAL + 28)
+#define EL_SP_EXIT_OPEN                        (EL_FIRST_RUNTIME_REAL + 29)
 
 /* "unreal" (and therefore not drawable) runtime elements */
-#define EL_FIRST_RUNTIME_UNREAL                NUM_RUNTIME_ELEMENTS
+#define EL_FIRST_RUNTIME_UNREAL                (EL_FIRST_RUNTIME_REAL + 30)
 
 #define EL_BLOCKED                     (EL_FIRST_RUNTIME_UNREAL + 0)
-#define EL_EXPLODING                   (EL_FIRST_RUNTIME_UNREAL + 1)
+#define EL_EXPLOSION                   (EL_FIRST_RUNTIME_UNREAL + 1)
 #define EL_CRACKINGNUT                 (EL_FIRST_RUNTIME_UNREAL + 2)
-#define EL_BLURB_LEFT                  (EL_FIRST_RUNTIME_UNREAL + 3)
-#define EL_BLURB_RIGHT                 (EL_FIRST_RUNTIME_UNREAL + 4)
-#define EL_AMOEBING                    (EL_FIRST_RUNTIME_UNREAL + 5)
-#define EL_DEAMOEBING                  (EL_FIRST_RUNTIME_UNREAL + 6)
-#define EL_MAUERND                     (EL_FIRST_RUNTIME_UNREAL + 7)
-#define EL_BURNING                     (EL_FIRST_RUNTIME_UNREAL + 8)
+#define EL_ACID_SPLASHING_LEFT         (EL_FIRST_RUNTIME_UNREAL + 3)
+#define EL_ACID_SPLASHING_RIGHT                (EL_FIRST_RUNTIME_UNREAL + 4)
+#define EL_AMOEBA_CREATING             (EL_FIRST_RUNTIME_UNREAL + 5)
+#define EL_AMOEBA_SHRINKING            (EL_FIRST_RUNTIME_UNREAL + 6)
+#define EL_WALL_GROWING_ACTIVE         (EL_FIRST_RUNTIME_UNREAL + 7)
+#define EL_DRAGON_FIRE                 (EL_FIRST_RUNTIME_UNREAL + 8)
 #define EL_PLAYER_IS_LEAVING           (EL_FIRST_RUNTIME_UNREAL + 9)
 #define EL_QUICKSAND_FILLING           (EL_FIRST_RUNTIME_UNREAL + 10)
 #define EL_MAGIC_WALL_FILLING          (EL_FIRST_RUNTIME_UNREAL + 11)
-#define EL_MAGIC_WALL_BD_FILLING       (EL_FIRST_RUNTIME_UNREAL + 12)
-
-#define MAX_NUM_ELEMENTS               (EL_FIRST_RUNTIME_UNREAL + 13)
+#define EL_BD_MAGIC_WALL_FILLING       (EL_FIRST_RUNTIME_UNREAL + 12)
+
+/* dummy (not drawable) runtime elements (internal use only) */
+#define EL_FIRST_DUMMY                 (EL_FIRST_RUNTIME_UNREAL + 13)
+
+#define EL_STEELWALL_TOPLEFT                   (EL_FIRST_DUMMY + 0)
+#define EL_STEELWALL_TOPRIGHT                  (EL_FIRST_DUMMY + 1)
+#define EL_STEELWALL_BOTTOMLEFT                        (EL_FIRST_DUMMY + 2)
+#define EL_STEELWALL_BOTTOMRIGHT               (EL_FIRST_DUMMY + 3)
+#define EL_STEELWALL_HORIZONTAL                        (EL_FIRST_DUMMY + 4)
+#define EL_STEELWALL_VERTICAL                  (EL_FIRST_DUMMY + 5)
+#define EL_INVISIBLE_STEELWALL_TOPLEFT         (EL_FIRST_DUMMY + 6)
+#define EL_INVISIBLE_STEELWALL_TOPRIGHT                (EL_FIRST_DUMMY + 7)
+#define EL_INVISIBLE_STEELWALL_BOTTOMLEFT      (EL_FIRST_DUMMY + 8)
+#define EL_INVISIBLE_STEELWALL_BOTTOMRIGHT     (EL_FIRST_DUMMY + 9)
+#define EL_INVISIBLE_STEELWALL_HORIZONTAL      (EL_FIRST_DUMMY + 10)
+#define EL_INVISIBLE_STEELWALL_VERTICAL                (EL_FIRST_DUMMY + 11)
+#define EL_SAND_CRUMBLED                       (EL_FIRST_DUMMY + 12)
+#define EL_BD_AMOEBA_PART1                     (EL_FIRST_DUMMY + 13)
+#define EL_BD_AMOEBA_PART2                     (EL_FIRST_DUMMY + 14)
+#define EL_BD_AMOEBA_PART3                     (EL_FIRST_DUMMY + 15)
+#define EL_BD_AMOEBA_PART4                     (EL_FIRST_DUMMY + 16)
+#define EL_AMOEBA_PART1                                (EL_FIRST_DUMMY + 17)
+#define EL_AMOEBA_PART2                                (EL_FIRST_DUMMY + 18)
+#define EL_AMOEBA_PART3                                (EL_FIRST_DUMMY + 19)
+#define EL_AMOEBA_PART4                                (EL_FIRST_DUMMY + 20)
+#define EL_AMOEBA_DEAD_PART1                   (EL_FIRST_DUMMY + 21)
+#define EL_AMOEBA_DEAD_PART2                   (EL_FIRST_DUMMY + 22)
+#define EL_AMOEBA_DEAD_PART3                   (EL_FIRST_DUMMY + 23)
+#define EL_AMOEBA_DEAD_PART4                   (EL_FIRST_DUMMY + 24)
+#define EL_DYNABOMB_ACTIVE                     (EL_FIRST_DUMMY + 25)
+#define EL_SHIELD_NORMAL_ACTIVE                        (EL_FIRST_DUMMY + 26)
+#define EL_SHIELD_DEADLY_ACTIVE                        (EL_FIRST_DUMMY + 27)
+#define EL_ARROW_RED_LEFT                      (EL_FIRST_DUMMY + 28)
+#define EL_ARROW_RED_RIGHT                     (EL_FIRST_DUMMY + 29)
+#define EL_ARROW_RED_UP                                (EL_FIRST_DUMMY + 30)
+#define EL_ARROW_RED_DOWN                      (EL_FIRST_DUMMY + 31)
+
+#define MAX_NUM_ELEMENTS                       (EL_FIRST_DUMMY + 32)
 
 
 /* game graphics:
 /* graphics from "RocksScreen" */
 /* Zeile 0 (0) */
 #define GFX_LEERRAUM                   (-1)
-#define        GFX_ERDREICH                    0
+#define GFX_ERDREICH                   0
 #define GFX_ERDENRAND                  1
 #define GFX_MORAST_LEER                        2
 #define GFX_MORAST_VOLL                        3
 #define GFX_BETON                      4
-#define        GFX_MAUERWERK                   5
-#define        GFX_FELSBODEN                   6
-#define        GFX_EDELSTEIN                   8
+#define GFX_MAUERWERK                  5
+#define GFX_FELSBODEN                  6
+#define GFX_EDELSTEIN                  8
 #define GFX_DIAMANT                    10
-#define        GFX_FELSBROCKEN                 12
+#define GFX_FELSBROCKEN                        12
 /* Zeile 1 (16) */
 #define GFX_BADEWANNE1                 16
 #define GFX_SALZSAEURE                 17
 #define GFX_BADEWANNE3                 32
 #define GFX_BADEWANNE4                 33
 #define GFX_BADEWANNE5                 34
-#define        GFX_SMILEY                      35
+#define GFX_SMILEY                     35
 #define GFX_PFORTE1                    36
 #define GFX_PFORTE2                    37
 #define GFX_PFORTE3                    38
 #define GFX_MAGIC_WALL_BD_FULL         GFX_MAGIC_WALL_BD_OFF
 #define GFX_MAGIC_WALL_BD_DEAD         GFX_MAGIC_WALL_BD_OFF
 /* Zeile 11 (176) */
-#define        GFX_AUSGANG_ZU                  176
-#define        GFX_AUSGANG_ACT                 177
-#define        GFX_AUSGANG_AUF                 180
+#define GFX_AUSGANG_ZU                 176
+#define GFX_AUSGANG_ACT                        177
+#define GFX_AUSGANG_AUF                        180
 #define GFX_MAMPFER2                   184
 #define GFX_DYNABOMB                   188
 #define GFX_DYNABOMB_NR                        188
 #define GFX_ACTION_IMPACT              9
 #define GFX_ACTION_CRACKING            10
 #define GFX_ACTION_ACTIVATING          11
-#define GFX_ACTION_ACTIVE              12
+#define GFX_ACTION_EATING              12
 #define GFX_ACTION_OTHER               13
 
 #define NUM_GFX_ACTIONS                        14
 #define IMG_SAND                               1
 #define IMG_SAND_CRUMBLED                      2
 #define IMG_QUICKSAND_EMPTY                    3
-#define IMG_QUICKSAND_FULL                     4
-#define IMG_QUICKSAND_SLIPPING                 5
-#define IMG_STEELWALL                          6
-#define IMG_WALL                               7
-#define IMG_WALL_CRUMBLED                      8
-#define IMG_EMERALD                            9
-#define IMG_EMERALD_FALLING                    10
-#define IMG_DIAMOND                            11
-#define IMG_DIAMOND_FALLING                    12
-#define IMG_ROCK                               13
-#define IMG_ROCK_FALLING                       14
-#define IMG_ROCK_PUSHING                       15
-#define IMG_ACIDPOOL_TOPLEFT                   16
-#define IMG_ACIDPOOL_TOPRIGHT                  17
-#define IMG_ACIDPOOL_BOTTOMLEFT                        18
-#define IMG_ACIDPOOL_BOTTOM                    19
-#define IMG_ACIDPOOL_BOTTOMRIGHT               20
-#define IMG_ACID                               21
-#define IMG_KEY1                               22
-#define IMG_KEY2                               23
-#define IMG_KEY3                               24
-#define IMG_KEY4                               25
-#define IMG_GAMEOFLIFE                         26
-#define IMG_BIOMAZE                            27
-#define IMG_BOMB                               28
-#define IMG_NUT                                        29
-#define IMG_NUT_CRACKING                       30
-#define IMG_GATE1                              31
-#define IMG_GATE2                              32
-#define IMG_GATE3                              33
-#define IMG_GATE4                              34
-#define IMG_GATE1_GRAY                         35
-#define IMG_GATE2_GRAY                         36
-#define IMG_GATE3_GRAY                         37
-#define IMG_GATE4_GRAY                         38
-#define IMG_DYNAMITE                           39
-#define IMG_DYNAMITE_ACTICE                    40
-#define IMG_SPACESHIP_RIGHT                    41
-#define IMG_SPACESHIP_UP                       42
-#define IMG_SPACESHIP_LEFT                     43
-#define IMG_SPACESHIP_DOWN                     44
-#define IMG_BUG_RIGHT                          45
-#define IMG_BUG_UP                             46
-#define IMG_BUG_LEFT                           47
-#define IMG_BUG_DOWN                           48
-#define IMG_PACMAN_RIGHT                       49
-#define IMG_PACMAN_UP                          50
-#define IMG_PACMAN_LEFT                                51
-#define IMG_PACMAN_DOWN                                52
-#define IMG_EXPLOSION                          53
-#define IMG_YAMYAM                             54
-#define IMG_YAMYAM_MOVING                      55
-#define IMG_ROBOT                              56
-#define IMG_ROBOT_WHEEL                                57
-#define IMG_ROBOT_WHEEL_ACTIVE                 58
-#define IMG_AMOEBA_DROP                                59
-#define IMG_AMOEBA_CREATING                    60
-#define IMG_AMOEBA1                            61
-#define IMG_AMOEBA2                            62
-#define IMG_AMOEBA3                            63
-#define IMG_AMOEBA4                            64
-#define IMG_AMOEBA_DEAD1                       65
-#define IMG_AMOEBA_DEAD2                       66
-#define IMG_AMOEBA_DEAD3                       67
-#define IMG_AMOEBA_DEAD4                       68
-#define IMG_LAMP                               69
-#define IMG_LAMP_ACTIVE                                70
-#define IMG_TIME_ORB_FULL                      71
-#define IMG_TIME_ORB_EMPTY                     72
-#define IMG_BD_AMOEBA                          73
-#define IMG_SOKOBAN_OBJECT                     74
-#define IMG_SOKOBAN_FIELD_EMPTY                        75
-#define IMG_SOKOBAN_FIELD_FULL                 76
-#define IMG_MAGIC_WALL                         77
-#define IMG_MAGIC_WALL_ACTIVE                  78
-#define IMG_BD_MAGIC_WALL                      79
-#define IMG_BD_MAGIC_WALL_ACTIVE               80
-#define IMG_WALL_EMERALD                       81
-#define IMG_WALL_DIAMOND                       82
-#define IMG_WALL_EMERALD_RED                   83
-#define IMG_WALL_EMERALD_PURPLE                        84
-#define IMG_WALL_EMERALD_YELLOW                        85
-#define IMG_WALL_BD_DIAMOND                    86
-#define IMG_EMERALD_RED                                87
-#define IMG_EMERALD_RED_FALLING                        88
-#define IMG_EMERALD_PURPLE                     89
-#define IMG_EMERALD_PURPLE_FALLING             90
-#define IMG_EMERALD_YELLOW                     91
-#define IMG_EMERALD_YELLOW_FALLING             92
-#define IMG_WALL_GROWING_XY                    93
-#define IMG_WALL_GROWING_X                     94
-#define IMG_WALL_GROWING_Y                     95
-#define IMG_DYNABOMB_XL                                96
-#define IMG_BLACK_ORB                          97
-#define IMG_SPEED_PILL                         98
-#define IMG_BD_DIAMOND                         99
-#define IMG_BD_DIAMOND_FALLING                 100
-#define IMG_WALL_GROWING_RIGHT                 101
-#define IMG_WALL_GROWING_LEFT                  102
-#define IMG_EXIT_CLOSED                                103
-#define IMG_EXIT_OPENING                       104
-#define IMG_EXIT_OPEN                          105
-#define IMG_DARK_YAMYAM                                106
-#define IMG_DYNABOMB_ACTICE                    107
-#define IMG_DYNABOMB_NR                                108
-#define IMG_DYNABOMB_SZ                                109
-#define IMG_ARROW_LEFT                         110
-#define IMG_ARROW_RIGHT                                111
-#define IMG_ARROW_UP                           112
-#define IMG_ARROW_DOWN                         113
-#define IMG_BD_BUTTERFLY                       114
-#define IMG_BD_BUTTERFLY_MOVING                        115
-#define IMG_BD_BUTTERFLY_RIGHT                 116
-#define IMG_BD_BUTTERFLY_UP                    117
-#define IMG_BD_BUTTERFLY_LEFT                  118
-#define IMG_BD_BUTTERFLY_DOWN                  119
-#define IMG_BD_FIREFLY                         120
-#define IMG_BD_FIREFLY_MOVING                  121
-#define IMG_BD_FIREFLY_RIGHT                   122
-#define IMG_BD_FIREFLY_UP                      123
-#define IMG_BD_FIREFLY_LEFT                    124
-#define IMG_BD_FIREFLY_DOWN                    125
-#define IMG_STEELWALL_TOPLEFT                  126
-#define IMG_STEELWALL_TOPRIGHT                 127
-#define IMG_STEELWALL_BOTTOMLEFT               128
-#define IMG_STEELWALL_BOTTOMRIGHT              129
-#define IMG_STEELWALL_HORIZONTAL               130
-#define IMG_INVISIBLE_STEELWALL_TOPLEFT                131
-#define IMG_INVISIBLE_STEELWALL_TOPRIGHT       132
-#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT     133
-#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT    134
-#define IMG_INVISIBLE_STEELWALL_HORIZONTAL     135
-#define IMG_PLAYER1_DOWN                       136
-#define IMG_PLAYER1_DOWN_MOVING                        137
-#define IMG_PLAYER1_DOWN_DIGGING               138
-#define IMG_PLAYER1_UP                         139
-#define IMG_PLAYER1_UP_MOVING                  140
-#define IMG_PLAYER1_UP_DIGGING                 141
-#define IMG_PLAYER1_LEFT                       142
-#define IMG_PLAYER1_LEFT_MOVING                        143
-#define IMG_PLAYER1_LEFT_DIGGING               144
-#define IMG_PLAYER1_LEFT_PUSHING               145
-#define IMG_PLAYER1_RIGHT                      146
-#define IMG_PLAYER1_RIGHT_MOVING               147
-#define IMG_PLAYER1_RIGHT_DIGGING              148
-#define IMG_PLAYER1_RIGHT_PUSHING              149
-#define IMG_PLAYER2_DOWN                       150
-#define IMG_PLAYER2_DOWN_MOVING                        151
-#define IMG_PLAYER2_DOWN_DIGGING               152
-#define IMG_PLAYER2_UP                         153
-#define IMG_PLAYER2_UP_MOVING                  154
-#define IMG_PLAYER2_UP_DIGGING                 155
-#define IMG_PLAYER2_LEFT                       156
-#define IMG_PLAYER2_LEFT_MOVING                        157
-#define IMG_PLAYER2_LEFT_DIGGING               158
-#define IMG_PLAYER2_LEFT_PUSHING               159
-#define IMG_PLAYER2_RIGHT                      160
-#define IMG_PLAYER2_RIGHT_MOVING               161
-#define IMG_PLAYER2_RIGHT_DIGGING              162
-#define IMG_PLAYER2_RIGHT_PUSHING              163
-#define IMG_PLAYER3_DOWN                       164
-#define IMG_PLAYER3_DOWN_MOVING                        165
-#define IMG_PLAYER3_DOWN_DIGGING               166
-#define IMG_PLAYER3_UP                         167
-#define IMG_PLAYER3_UP_MOVING                  168
-#define IMG_PLAYER3_UP_DIGGING                 169
-#define IMG_PLAYER3_LEFT                       170
-#define IMG_PLAYER3_LEFT_MOVING                        171
-#define IMG_PLAYER3_LEFT_DIGGING               172
-#define IMG_PLAYER3_LEFT_PUSHING               173
-#define IMG_PLAYER3_RIGHT                      174
-#define IMG_PLAYER3_RIGHT_MOVING               175
-#define IMG_PLAYER3_RIGHT_DIGGING              176
-#define IMG_PLAYER3_RIGHT_PUSHING              177
-#define IMG_PLAYER4_DOWN                       178
-#define IMG_PLAYER4_DOWN_MOVING                        179
-#define IMG_PLAYER4_DOWN_DIGGING               180
-#define IMG_PLAYER4_UP                         181
-#define IMG_PLAYER4_UP_MOVING                  182
-#define IMG_PLAYER4_UP_DIGGING                 183
-#define IMG_PLAYER4_LEFT                       184
-#define IMG_PLAYER4_LEFT_MOVING                        185
-#define IMG_PLAYER4_LEFT_DIGGING               186
-#define IMG_PLAYER4_LEFT_PUSHING               187
-#define IMG_PLAYER4_RIGHT                      188
-#define IMG_PLAYER4_RIGHT_MOVING               189
-#define IMG_PLAYER4_RIGHT_DIGGING              190
-#define IMG_PLAYER4_RIGHT_PUSHING              191
-#define IMG_WALL_GROWING_DOWN                  192
-#define IMG_WALL_GROWING_UP                    193
-#define IMG_SHIELD_NORMAL_ACTIVE               194
-#define IMG_SHIELD_DEADLY_ACTIVE               195
-#define IMG_PIG_DOWN                           196
-#define IMG_PIG_DOWN_MOVING                    197
-#define IMG_PIG_DOWN_EATING                    198
-#define IMG_PIG_UP                             199
-#define IMG_PIG_UP_MOVING                      200
-#define IMG_PIG_UP_EATING                      201
-#define IMG_PIG_LEFT                           202
-#define IMG_PIG_LEFT_MOVING                    203
-#define IMG_PIG_LEFT_EATING                    204
-#define IMG_PIG_RIGHT                          205
-#define IMG_PIG_RIGHT_MOVING                   206
-#define IMG_PIG_RIGHT_EATING                   207
-#define IMG_DRAGON_DOWN                                208
-#define IMG_DRAGON_DOWN_MOVING                 209
-#define IMG_DRAGON_DOWN_ATTACKING              210
-#define IMG_DRAGON_UP                          211
-#define IMG_DRAGON_UP_MOVING                   212
-#define IMG_DRAGON_UP_ATTACKING                        213
-#define IMG_DRAGON_LEFT                                214
-#define IMG_DRAGON_LEFT_MOVING                 215
-#define IMG_DRAGON_LEFT_ATTACKING              216
-#define IMG_DRAGON_RIGHT                       217
-#define IMG_DRAGON_RIGHT_MOVING                        218
-#define IMG_DRAGON_RIGHT_ATTACKING             219
-#define IMG_MOLE_DOWN                          220
-#define IMG_MOLE_DOWN_MOVING                   221
-#define IMG_MOLE_DOWN_DIGGING                  222
-#define IMG_MOLE_UP                            223
-#define IMG_MOLE_UP_MOVING                     224
-#define IMG_MOLE_UP_DIGGING                    225
-#define IMG_MOLE_LEFT                          226
-#define IMG_MOLE_LEFT_MOVING                   227
-#define IMG_MOLE_LEFT_DIGGING                  228
-#define IMG_MOLE_RIGHT                         229
-#define IMG_MOLE_RIGHT_MOVING                  230
-#define IMG_MOLE_RIGHT_DIGGING                 231
-#define IMG_PENGUIN_DOWN                       232
-#define IMG_PENGUIN_DOWN_MOVING                        233
-#define IMG_PENGUIN_UP                         234
-#define IMG_PENGUIN_UP_MOVING                  235
-#define IMG_PENGUIN_LEFT                       236
-#define IMG_PENGUIN_LEFT_MOVING                        237
-#define IMG_PENGUIN_RIGHT                      238
-#define IMG_PENGUIN_RIGHT_MOVING               239
-#define IMG_SATELLITE                          240
-#define IMG_SATELLITE_MOVING                   241
-#define IMG_ACID_SPLASHING_LEFT                        242
-#define IMG_ACID_SPLASHING_RIGHT               243
-#define IMG_SPARK_BLUE                         244
-#define IMG_SPARK_WHITE                                245
-#define IMG_FLAMES_LEFT1                       246
-#define IMG_FLAMES_LEFT2                       247
-#define IMG_FLAMES_LEFT3                       248
-#define IMG_FLAMES_RIGHT1                      249
-#define IMG_FLAMES_RIGHT2                      250
-#define IMG_FLAMES_RIGHT3                      251
-#define IMG_FLAMES_UP1                         252
-#define IMG_FLAMES_UP2                         253
-#define IMG_FLAMES_UP3                         254
-#define IMG_FLAMES_DOWN1                       255
-#define IMG_FLAMES_DOWN2                       256
-#define IMG_FLAMES_DOWN3                       257
-#define IMG_SP_EMPTY_SPACE                     258
-#define IMG_SP_ZONK                            259
-#define IMG_SP_ZONK_FALLING                    260
-#define IMG_SP_ZONK_PUSHING                    261
-#define IMG_SP_BASE                            262
-#define IMG_SP_MURPHY                          263
-#define IMG_SP_MURPHY_LEFT                     264
-#define IMG_SP_MURPHY_LEFT_MOVING              265
-#define IMG_SP_MURPHY_LEFT_DIGGING             266
-#define IMG_SP_MURPHY_LEFT_PUSHING             267
-#define IMG_SP_MURPHY_LEFT_SNAPPING            268
-#define IMG_SP_MURPHY_RIGHT                    269
-#define IMG_SP_MURPHY_RIGHT_MOVING             270
-#define IMG_SP_MURPHY_RIGHT_DIGGING            271
-#define IMG_SP_MURPHY_RIGHT_PUSHING            272
-#define IMG_SP_MURPHY_RIGHT_SNAPPING           273
-#define IMG_SP_MURPHY_UP                       274
-#define IMG_SP_MURPHY_UP_SNAPPING              275
-#define IMG_SP_MURPHY_DOWN                     276
-#define IMG_SP_MURPHY_DOWN_SNAPPING            277
-#define IMG_SP_MURPHY_CLONE                    278
-#define IMG_SP_INFOTRON                                279
-#define IMG_SP_INFOTRON_FALLING                        280
-#define IMG_SP_CHIP_SINGLE                     281
-#define IMG_SP_CHIP_LEFT                       282
-#define IMG_SP_CHIP_RIGHT                      283
-#define IMG_SP_CHIP_UPPER                      284
-#define IMG_SP_CHIP_LOWER                      285
-#define IMG_SP_HARD_GRAY                       286
-#define IMG_SP_HARD_GREEN                      287
-#define IMG_SP_HARD_BLUE                       288
-#define IMG_SP_HARD_RED                                289
-#define IMG_SP_HARD_YELLOW                     290
-#define IMG_SP_EXIT_CLOSED                     291
-#define IMG_SP_EXIT_OPEN                       292
-#define IMG_SP_DISK_ORANGE                     293
-#define IMG_SP_DISK_ORANGE_FALLING             294
-#define IMG_SP_DISK_ORANGE_PUSHING             295
-#define IMG_SP_DISK_YELLOW                     296
-#define IMG_SP_DISK_YELLOW_PUSHING             297
-#define IMG_SP_DISK_RED                                298
-#define IMG_SP_DISK_RED_COLLECTING             299
-#define IMG_SP_PORT1_RIGHT                     300
-#define IMG_SP_PORT1_DOWN                      301
-#define IMG_SP_PORT1_LEFT                      302
-#define IMG_SP_PORT1_UP                                303
-#define IMG_SP_PORT2_RIGHT                     304
-#define IMG_SP_PORT2_DOWN                      305
-#define IMG_SP_PORT2_LEFT                      306
-#define IMG_SP_PORT2_UP                                307
-#define IMG_SP_PORT_X                          308
-#define IMG_SP_PORT_Y                          309
-#define IMG_SP_PORT_XY                         310
-#define IMG_SP_SNIKSNAK                                311
-#define IMG_SP_SNIKSNAK_LEFT                   312
-#define IMG_SP_SNIKSNAK_RIGHT                  313
-#define IMG_SP_SNIKSNAK_UP                     314
-#define IMG_SP_SNIKSNAK_DOWN                   315
-#define IMG_SP_ELECTRON                                316
-#define IMG_SP_TERMINAL                                317
-#define IMG_SP_TERMINAL_ACTIVE                 318
-#define IMG_SP_BUGGY_BASE                      319
-#define IMG_SP_BUGGY_BASE_ACTIVATING           320
-#define IMG_SP_HARD_BASE1                      321
-#define IMG_SP_HARD_BASE2                      322
-#define IMG_SP_HARD_BASE3                      323
-#define IMG_SP_HARD_BASE4                      324
-#define IMG_SP_HARD_BASE5                      325
-#define IMG_SP_HARD_BASE6                      326
-#define IMG_INVISIBLE_STEELWALL                        327
-#define IMG_INVISIBLE_STEELWALL_ACTIVE         328
-#define IMG_INVISIBLE_SAND                     329
-#define IMG_INVISIBLE_SAND_ACTIVE              330
-#define IMG_INVISIBLE_WALL                     331
-#define IMG_INVISIBLE_WALL_ACTIVE              332
-#define IMG_EM_KEY1                            333
-#define IMG_EM_KEY2                            334
-#define IMG_EM_KEY3                            335
-#define IMG_EM_KEY4                            336
-#define IMG_EM_GATE1                           337
-#define IMG_EM_GATE2                           338
-#define IMG_EM_GATE3                           339
-#define IMG_EM_GATE4                           340
-#define IMG_EM_GATE1_GRAY                      341
-#define IMG_EM_GATE2_GRAY                      342
-#define IMG_EM_GATE3_GRAY                      343
-#define IMG_EM_GATE4_GRAY                      344
-#define IMG_SP_EXPLOSION                       345
-#define IMG_SP_EXPLOSION_INFOTRON              346
-#define IMG_CONVEYOR_BELT1_MIDDLE              347
-#define IMG_CONVEYOR_BELT1_MIDDLE_ACTIVE       348
-#define IMG_CONVEYOR_BELT1_LEFT                        349
-#define IMG_CONVEYOR_BELT1_LEFT_ACTIVE         350
-#define IMG_CONVEYOR_BELT1_RIGHT               351
-#define IMG_CONVEYOR_BELT1_RIGHT_ACTIVE                352
-#define IMG_CONVEYOR_BELT1_SWITCH_LEFT         353
-#define IMG_CONVEYOR_BELT1_SWITCH_MIDDLE       354
-#define IMG_CONVEYOR_BELT1_SWITCH_RIGHT                355
-#define IMG_CONVEYOR_BELT2_MIDDLE              356
-#define IMG_CONVEYOR_BELT2_MIDDLE_ACTIVE       357
-#define IMG_CONVEYOR_BELT2_LEFT                        358
-#define IMG_CONVEYOR_BELT2_LEFT_ACTIVE         359
-#define IMG_CONVEYOR_BELT2_RIGHT               360
-#define IMG_CONVEYOR_BELT2_RIGHT_ACTIVE                361
-#define IMG_CONVEYOR_BELT2_SWITCH_LEFT         362
-#define IMG_CONVEYOR_BELT2_SWITCH_MIDDLE       363
-#define IMG_CONVEYOR_BELT2_SWITCH_RIGHT                364
-#define IMG_CONVEYOR_BELT3_MIDDLE              365
-#define IMG_CONVEYOR_BELT3_MIDDLE_ACTIVE       366
-#define IMG_CONVEYOR_BELT3_LEFT                        367
-#define IMG_CONVEYOR_BELT3_LEFT_ACTIVE         368
-#define IMG_CONVEYOR_BELT3_RIGHT               369
-#define IMG_CONVEYOR_BELT3_RIGHT_ACTIVE                370
-#define IMG_CONVEYOR_BELT3_SWITCH_LEFT         371
-#define IMG_CONVEYOR_BELT3_SWITCH_MIDDLE       372
-#define IMG_CONVEYOR_BELT3_SWITCH_RIGHT                373
-#define IMG_CONVEYOR_BELT4_MIDDLE              374
-#define IMG_CONVEYOR_BELT4_MIDDLE_ACTIVE       375
-#define IMG_CONVEYOR_BELT4_LEFT                        376
-#define IMG_CONVEYOR_BELT4_LEFT_ACTIVE         377
-#define IMG_CONVEYOR_BELT4_RIGHT               378
-#define IMG_CONVEYOR_BELT4_RIGHT_ACTIVE                379
-#define IMG_CONVEYOR_BELT4_SWITCH_LEFT         380
-#define IMG_CONVEYOR_BELT4_SWITCH_MIDDLE       381
-#define IMG_CONVEYOR_BELT4_SWITCH_RIGHT                382
-#define IMG_SWITCHGATE_SWITCH_UP               383
-#define IMG_SWITCHGATE_SWITCH_DOWN             384
-#define IMG_LIGHT_SWITCH                       385
-#define IMG_LIGHT_SWITCH_ACTIVE                        386
-#define IMG_TIMEGATE_WHEEL                     387
-#define IMG_TIMEGATE_WHEEL_ACTIVE              388
-#define IMG_ENVELOPE                           389
-#define IMG_SIGN_EXCLAMATION                   390
-#define IMG_SIGN_STOP                          391
-#define IMG_LANDMINE                           392
-#define IMG_STEELWALL_SLANTED                  393
-#define IMG_EXTRA_TIME                         394
-#define IMG_SHIELD_DEADLY                      395
-#define IMG_SHIELD_NORMAL                      396
-#define IMG_SWITCHGATE_CLOSED                  397
-#define IMG_SWITCHGATE_OPENING                 398
-#define IMG_SWITCHGATE_OPEN                    399
-#define IMG_SWITCHGATE_CLOSING                 400
-#define IMG_TIMEGATE_CLOSED                    401
-#define IMG_TIMEGATE_OPENING                   402
-#define IMG_TIMEGATE_OPEN                      403
-#define IMG_TIMEGATE_CLOSING                   404
-#define IMG_BALLOON                            405
-#define IMG_BALLOON_MOVING                     406
-#define IMG_BALLOON_WINDROSE_LEFT              407
-#define IMG_BALLOON_WINDROSE_RIGHT             408
-#define IMG_BALLOON_WINDROSE_UP                        409
-#define IMG_BALLOON_WINDROSE_DOWN              410
-#define IMG_BALLOON_WINDROSE_ALL               411
-#define IMG_EMC_STEELWALL1                     412
-#define IMG_EMC_STEELWALL2                     413
-#define IMG_EMC_STEELWALL3                     414
-#define IMG_EMC_STEELWALL4                     415
-#define IMG_EMC_WALL_PILLAR_UPPER              416
-#define IMG_EMC_WALL_PILLAR_MIDDLE             417
-#define IMG_EMC_WALL_PILLAR_LOWER              418
-#define IMG_EMC_WALL4                          419
-#define IMG_EMC_WALL5                          420
-#define IMG_EMC_WALL6                          421
-#define IMG_EMC_WALL7                          422
-#define IMG_EMC_WALL8                          423
-#define IMG_ARROW_BLUE_LEFT                    424
-#define IMG_ARROW_BLUE_RIGHT                   425
-#define IMG_ARROW_BLUE_UP                      426
-#define IMG_ARROW_BLUE_DOWN                    427
-#define IMG_ARROW_RED_LEFT                     428
-#define IMG_ARROW_RED_RIGHT                    429
-#define IMG_ARROW_RED_UP                       430
-#define IMG_ARROW_RED_DOWN                     431
-#define IMG_SCROLLBAR_BLUE                     432
-#define IMG_SCROLLBAR_RED                      433
-#define IMG_SCROLLBAR_GREEN                    434
-#define IMG_SCROLLBAR_YELLOW                   435
-#define IMG_PEARL                              436
-#define IMG_PEARL_BREAKING                     437
-#define IMG_CRYSTAL                            438
-#define IMG_WALL_PEARL                         439
-#define IMG_WALL_CRYSTAL                       440
-#define IMG_SPRING                             441
-#define IMG_TUBE_RIGHT_DOWN                    442
-#define IMG_TUBE_HORIZONTAL_DOWN               443
-#define IMG_TUBE_LEFT_DOWN                     444
-#define IMG_TUBE_HORIZONTAL                    445
-#define IMG_TUBE_VERTICAL_RIGHT                        446
-#define IMG_TUBE_ALL                           447
-#define IMG_TUBE_VERTICAL_LEFT                 448
-#define IMG_TUBE_VERTICAL                      449
-#define IMG_TUBE_RIGHT_UP                      450
-#define IMG_TUBE_HORIZONTAL_UP                 451
-#define IMG_TUBE_LEFT_UP                       452
-#define IMG_TRAP_INACTIVE                      453
-#define IMG_TRAP_ACTIVE                                454
-#define IMG_TRAP_ACTIVATING                    455
-#define IMG_BD_WALL                            456
-#define IMG_BD_ROCK                            457
-#define IMG_BD_ROCK_FALLING                    458
-#define IMG_BD_ROCK_PUSHING                    459
-#define IMG_DX_BOMB                            460
-
-#define NUM_IMAGE_FILES                                461
+#define IMG_QUICKSAND_FILLING                  4
+#define IMG_QUICKSAND_FULL                     5
+#define IMG_QUICKSAND_EMPTYING                 6
+#define IMG_STEELWALL                          7
+#define IMG_WALL                               8
+#define IMG_WALL_CRUMBLED                      9
+#define IMG_EMERALD                            10
+#define IMG_EMERALD_FALLING                    11
+#define IMG_DIAMOND                            12
+#define IMG_DIAMOND_FALLING                    13
+#define IMG_ROCK                               14
+#define IMG_ROCK_FALLING                       15
+#define IMG_ROCK_PUSHING                       16
+#define IMG_ACIDPOOL_TOPLEFT                   17
+#define IMG_ACIDPOOL_TOPRIGHT                  18
+#define IMG_ACIDPOOL_BOTTOMLEFT                        19
+#define IMG_ACIDPOOL_BOTTOM                    20
+#define IMG_ACIDPOOL_BOTTOMRIGHT               21
+#define IMG_ACID                               22
+#define IMG_KEY1                               23
+#define IMG_KEY2                               24
+#define IMG_KEY3                               25
+#define IMG_KEY4                               26
+#define IMG_GAMEOFLIFE                         27
+#define IMG_BIOMAZE                            28
+#define IMG_BOMB                               29
+#define IMG_NUT                                        30
+#define IMG_NUT_CRACKING                       31
+#define IMG_GATE1                              32
+#define IMG_GATE2                              33
+#define IMG_GATE3                              34
+#define IMG_GATE4                              35
+#define IMG_GATE1_GRAY                         36
+#define IMG_GATE2_GRAY                         37
+#define IMG_GATE3_GRAY                         38
+#define IMG_GATE4_GRAY                         39
+#define IMG_DYNAMITE                           40
+#define IMG_DYNAMITE_ACTIVE                    41
+#define IMG_SPACESHIP_RIGHT                    42
+#define IMG_SPACESHIP_UP                       43
+#define IMG_SPACESHIP_LEFT                     44
+#define IMG_SPACESHIP_DOWN                     45
+#define IMG_BUG_RIGHT                          46
+#define IMG_BUG_UP                             47
+#define IMG_BUG_LEFT                           48
+#define IMG_BUG_DOWN                           49
+#define IMG_PACMAN_RIGHT                       50
+#define IMG_PACMAN_UP                          51
+#define IMG_PACMAN_LEFT                                52
+#define IMG_PACMAN_DOWN                                53
+#define IMG_EXPLOSION                          54
+#define IMG_YAMYAM                             55
+#define IMG_YAMYAM_MOVING                      56
+#define IMG_ROBOT                              57
+#define IMG_ROBOT_WHEEL                                58
+#define IMG_ROBOT_WHEEL_ACTIVE                 59
+#define IMG_AMOEBA_DROP                                60
+#define IMG_AMOEBA_CREATING                    61
+#define IMG_AMOEBA_PART1                       62
+#define IMG_AMOEBA_PART2                       63
+#define IMG_AMOEBA_PART3                       64
+#define IMG_AMOEBA_PART4                       65
+#define IMG_AMOEBA_DEAD_PART1                  66
+#define IMG_AMOEBA_DEAD_PART2                  67
+#define IMG_AMOEBA_DEAD_PART3                  68
+#define IMG_AMOEBA_DEAD_PART4                  69
+#define IMG_LAMP                               70
+#define IMG_LAMP_ACTIVE                                71
+#define IMG_TIME_ORB_FULL                      72
+#define IMG_TIME_ORB_EMPTY                     73
+#define IMG_BD_AMOEBA                          74
+#define IMG_BD_AMOEBA_PART1                    75
+#define IMG_BD_AMOEBA_PART2                    76
+#define IMG_BD_AMOEBA_PART3                    77
+#define IMG_BD_AMOEBA_PART4                    78
+#define IMG_SOKOBAN_OBJECT                     79
+#define IMG_SOKOBAN_FIELD_EMPTY                        80
+#define IMG_SOKOBAN_FIELD_FULL                 81
+#define IMG_MAGIC_WALL                         82
+#define IMG_MAGIC_WALL_ACTIVE                  83
+#define IMG_MAGIC_WALL_FILLING                 84
+#define IMG_MAGIC_WALL_EMPTYING                        85
+#define IMG_BD_MAGIC_WALL                      86
+#define IMG_BD_MAGIC_WALL_ACTIVE               87
+#define IMG_BD_MAGIC_WALL_FILLING              88
+#define IMG_BD_MAGIC_WALL_EMPTYING             89
+#define IMG_WALL_EMERALD                       90
+#define IMG_WALL_DIAMOND                       91
+#define IMG_WALL_EMERALD_RED                   92
+#define IMG_WALL_EMERALD_PURPLE                        93
+#define IMG_WALL_EMERALD_YELLOW                        94
+#define IMG_WALL_BD_DIAMOND                    95
+#define IMG_EMERALD_RED                                96
+#define IMG_EMERALD_RED_FALLING                        97
+#define IMG_EMERALD_PURPLE                     98
+#define IMG_EMERALD_PURPLE_FALLING             99
+#define IMG_EMERALD_YELLOW                     100
+#define IMG_EMERALD_YELLOW_FALLING             101
+#define IMG_WALL_GROWING_XY                    102
+#define IMG_WALL_GROWING_X                     103
+#define IMG_WALL_GROWING_Y                     104
+#define IMG_DYNABOMB_XL                                105
+#define IMG_BLACK_ORB                          106
+#define IMG_SPEED_PILL                         107
+#define IMG_BD_DIAMOND                         108
+#define IMG_BD_DIAMOND_FALLING                 109
+#define IMG_WALL_GROWING_RIGHT                 110
+#define IMG_WALL_GROWING_LEFT                  111
+#define IMG_EXIT_CLOSED                                112
+#define IMG_EXIT_OPENING                       113
+#define IMG_EXIT_OPEN                          114
+#define IMG_DARK_YAMYAM                                115
+#define IMG_DYNABOMB_ACTIVE                    116
+#define IMG_DYNABOMB_NR                                117
+#define IMG_DYNABOMB_SZ                                118
+#define IMG_ARROW_LEFT                         119
+#define IMG_ARROW_RIGHT                                120
+#define IMG_ARROW_UP                           121
+#define IMG_ARROW_DOWN                         122
+#define IMG_BD_BUTTERFLY                       123
+#define IMG_BD_BUTTERFLY_MOVING                        124
+#define IMG_BD_BUTTERFLY_RIGHT                 125
+#define IMG_BD_BUTTERFLY_UP                    126
+#define IMG_BD_BUTTERFLY_LEFT                  127
+#define IMG_BD_BUTTERFLY_DOWN                  128
+#define IMG_BD_FIREFLY                         129
+#define IMG_BD_FIREFLY_MOVING                  130
+#define IMG_BD_FIREFLY_RIGHT                   131
+#define IMG_BD_FIREFLY_UP                      132
+#define IMG_BD_FIREFLY_LEFT                    133
+#define IMG_BD_FIREFLY_DOWN                    134
+#define IMG_STEELWALL_TOPLEFT                  135
+#define IMG_STEELWALL_TOPRIGHT                 136
+#define IMG_STEELWALL_BOTTOMLEFT               137
+#define IMG_STEELWALL_BOTTOMRIGHT              138
+#define IMG_STEELWALL_HORIZONTAL               139
+#define IMG_STEELWALL_VERTICAL                 140
+#define IMG_INVISIBLE_STEELWALL_TOPLEFT                141
+#define IMG_INVISIBLE_STEELWALL_TOPRIGHT       142
+#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT     143
+#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT    144
+#define IMG_INVISIBLE_STEELWALL_HORIZONTAL     145
+#define IMG_INVISIBLE_STEELWALL_VERTICAL       146
+#define IMG_PLAYER1                            147
+#define IMG_PLAYER1_DOWN                       148
+#define IMG_PLAYER1_DOWN_MOVING                        149
+#define IMG_PLAYER1_DOWN_DIGGING               150
+#define IMG_PLAYER1_UP                         151
+#define IMG_PLAYER1_UP_MOVING                  152
+#define IMG_PLAYER1_UP_DIGGING                 153
+#define IMG_PLAYER1_LEFT                       154
+#define IMG_PLAYER1_LEFT_MOVING                        155
+#define IMG_PLAYER1_LEFT_DIGGING               156
+#define IMG_PLAYER1_LEFT_PUSHING               157
+#define IMG_PLAYER1_RIGHT                      158
+#define IMG_PLAYER1_RIGHT_MOVING               159
+#define IMG_PLAYER1_RIGHT_DIGGING              160
+#define IMG_PLAYER1_RIGHT_PUSHING              161
+#define IMG_PLAYER2                            162
+#define IMG_PLAYER2_DOWN                       163
+#define IMG_PLAYER2_DOWN_MOVING                        164
+#define IMG_PLAYER2_DOWN_DIGGING               165
+#define IMG_PLAYER2_UP                         166
+#define IMG_PLAYER2_UP_MOVING                  167
+#define IMG_PLAYER2_UP_DIGGING                 168
+#define IMG_PLAYER2_LEFT                       169
+#define IMG_PLAYER2_LEFT_MOVING                        170
+#define IMG_PLAYER2_LEFT_DIGGING               171
+#define IMG_PLAYER2_LEFT_PUSHING               172
+#define IMG_PLAYER2_RIGHT                      173
+#define IMG_PLAYER2_RIGHT_MOVING               174
+#define IMG_PLAYER2_RIGHT_DIGGING              175
+#define IMG_PLAYER2_RIGHT_PUSHING              176
+#define IMG_PLAYER3                            177
+#define IMG_PLAYER3_DOWN                       178
+#define IMG_PLAYER3_DOWN_MOVING                        179
+#define IMG_PLAYER3_DOWN_DIGGING               180
+#define IMG_PLAYER3_UP                         181
+#define IMG_PLAYER3_UP_MOVING                  182
+#define IMG_PLAYER3_UP_DIGGING                 183
+#define IMG_PLAYER3_LEFT                       184
+#define IMG_PLAYER3_LEFT_MOVING                        185
+#define IMG_PLAYER3_LEFT_DIGGING               186
+#define IMG_PLAYER3_LEFT_PUSHING               187
+#define IMG_PLAYER3_RIGHT                      188
+#define IMG_PLAYER3_RIGHT_MOVING               189
+#define IMG_PLAYER3_RIGHT_DIGGING              190
+#define IMG_PLAYER3_RIGHT_PUSHING              191
+#define IMG_PLAYER4                            192
+#define IMG_PLAYER4_DOWN                       193
+#define IMG_PLAYER4_DOWN_MOVING                        194
+#define IMG_PLAYER4_DOWN_DIGGING               195
+#define IMG_PLAYER4_UP                         196
+#define IMG_PLAYER4_UP_MOVING                  197
+#define IMG_PLAYER4_UP_DIGGING                 198
+#define IMG_PLAYER4_LEFT                       199
+#define IMG_PLAYER4_LEFT_MOVING                        200
+#define IMG_PLAYER4_LEFT_DIGGING               201
+#define IMG_PLAYER4_LEFT_PUSHING               202
+#define IMG_PLAYER4_RIGHT                      203
+#define IMG_PLAYER4_RIGHT_MOVING               204
+#define IMG_PLAYER4_RIGHT_DIGGING              205
+#define IMG_PLAYER4_RIGHT_PUSHING              206
+#define IMG_WALL_GROWING_DOWN                  207
+#define IMG_WALL_GROWING_UP                    208
+#define IMG_SHIELD_NORMAL_ACTIVE               209
+#define IMG_SHIELD_DEADLY_ACTIVE               210
+#define IMG_PIG_DOWN                           211
+#define IMG_PIG_DOWN_MOVING                    212
+#define IMG_PIG_DOWN_EATING                    213
+#define IMG_PIG_UP                             214
+#define IMG_PIG_UP_MOVING                      215
+#define IMG_PIG_UP_EATING                      216
+#define IMG_PIG_LEFT                           217
+#define IMG_PIG_LEFT_MOVING                    218
+#define IMG_PIG_LEFT_EATING                    219
+#define IMG_PIG_RIGHT                          220
+#define IMG_PIG_RIGHT_MOVING                   221
+#define IMG_PIG_RIGHT_EATING                   222
+#define IMG_DRAGON_DOWN                                223
+#define IMG_DRAGON_DOWN_MOVING                 224
+#define IMG_DRAGON_DOWN_ATTACKING              225
+#define IMG_DRAGON_UP                          226
+#define IMG_DRAGON_UP_MOVING                   227
+#define IMG_DRAGON_UP_ATTACKING                        228
+#define IMG_DRAGON_LEFT                                229
+#define IMG_DRAGON_LEFT_MOVING                 230
+#define IMG_DRAGON_LEFT_ATTACKING              231
+#define IMG_DRAGON_RIGHT                       232
+#define IMG_DRAGON_RIGHT_MOVING                        233
+#define IMG_DRAGON_RIGHT_ATTACKING             234
+#define IMG_MOLE_DOWN                          235
+#define IMG_MOLE_DOWN_MOVING                   236
+#define IMG_MOLE_DOWN_DIGGING                  237
+#define IMG_MOLE_UP                            238
+#define IMG_MOLE_UP_MOVING                     239
+#define IMG_MOLE_UP_DIGGING                    240
+#define IMG_MOLE_LEFT                          241
+#define IMG_MOLE_LEFT_MOVING                   242
+#define IMG_MOLE_LEFT_DIGGING                  243
+#define IMG_MOLE_RIGHT                         244
+#define IMG_MOLE_RIGHT_MOVING                  245
+#define IMG_MOLE_RIGHT_DIGGING                 246
+#define IMG_PENGUIN_DOWN                       247
+#define IMG_PENGUIN_DOWN_MOVING                        248
+#define IMG_PENGUIN_UP                         249
+#define IMG_PENGUIN_UP_MOVING                  250
+#define IMG_PENGUIN_LEFT                       251
+#define IMG_PENGUIN_LEFT_MOVING                        252
+#define IMG_PENGUIN_RIGHT                      253
+#define IMG_PENGUIN_RIGHT_MOVING               254
+#define IMG_SATELLITE                          255
+#define IMG_SATELLITE_MOVING                   256
+#define IMG_ACID_SPLASHING_LEFT                        257
+#define IMG_ACID_SPLASHING_RIGHT               258
+#define IMG_SPARK_BLUE                         259
+#define IMG_SPARK_WHITE                                260
+#define IMG_DRAGON_FIRE_LEFT1                  261
+#define IMG_DRAGON_FIRE_LEFT2                  262
+#define IMG_DRAGON_FIRE_LEFT3                  263
+#define IMG_DRAGON_FIRE_RIGHT1                 264
+#define IMG_DRAGON_FIRE_RIGHT2                 265
+#define IMG_DRAGON_FIRE_RIGHT3                 266
+#define IMG_DRAGON_FIRE_UP1                    267
+#define IMG_DRAGON_FIRE_UP2                    268
+#define IMG_DRAGON_FIRE_UP3                    269
+#define IMG_DRAGON_FIRE_DOWN1                  270
+#define IMG_DRAGON_FIRE_DOWN2                  271
+#define IMG_DRAGON_FIRE_DOWN3                  272
+#define IMG_SP_EMPTY_SPACE                     273
+#define IMG_SP_ZONK                            274
+#define IMG_SP_ZONK_FALLING                    275
+#define IMG_SP_ZONK_PUSHING                    276
+#define IMG_SP_BASE                            277
+#define IMG_SP_MURPHY                          278
+#define IMG_SP_MURPHY_LEFT                     279
+#define IMG_SP_MURPHY_LEFT_MOVING              280
+#define IMG_SP_MURPHY_LEFT_DIGGING             281
+#define IMG_SP_MURPHY_LEFT_PUSHING             282
+#define IMG_SP_MURPHY_LEFT_SNAPPING            283
+#define IMG_SP_MURPHY_RIGHT                    284
+#define IMG_SP_MURPHY_RIGHT_MOVING             285
+#define IMG_SP_MURPHY_RIGHT_DIGGING            286
+#define IMG_SP_MURPHY_RIGHT_PUSHING            287
+#define IMG_SP_MURPHY_RIGHT_SNAPPING           288
+#define IMG_SP_MURPHY_UP                       289
+#define IMG_SP_MURPHY_UP_SNAPPING              290
+#define IMG_SP_MURPHY_DOWN                     291
+#define IMG_SP_MURPHY_DOWN_SNAPPING            292
+#define IMG_SP_MURPHY_CLONE                    293
+#define IMG_SP_INFOTRON                                294
+#define IMG_SP_INFOTRON_FALLING                        295
+#define IMG_SP_CHIP_SINGLE                     296
+#define IMG_SP_CHIP_LEFT                       297
+#define IMG_SP_CHIP_RIGHT                      298
+#define IMG_SP_CHIP_UPPER                      299
+#define IMG_SP_CHIP_LOWER                      300
+#define IMG_SP_HARD_GRAY                       301
+#define IMG_SP_HARD_GREEN                      302
+#define IMG_SP_HARD_BLUE                       303
+#define IMG_SP_HARD_RED                                304
+#define IMG_SP_HARD_YELLOW                     305
+#define IMG_SP_EXIT_CLOSED                     306
+#define IMG_SP_EXIT_OPEN                       307
+#define IMG_SP_DISK_ORANGE                     308
+#define IMG_SP_DISK_ORANGE_FALLING             309
+#define IMG_SP_DISK_ORANGE_PUSHING             310
+#define IMG_SP_DISK_YELLOW                     311
+#define IMG_SP_DISK_YELLOW_PUSHING             312
+#define IMG_SP_DISK_RED                                313
+#define IMG_SP_DISK_RED_COLLECTING             314
+#define IMG_SP_PORT1_RIGHT                     315
+#define IMG_SP_PORT1_DOWN                      316
+#define IMG_SP_PORT1_LEFT                      317
+#define IMG_SP_PORT1_UP                                318
+#define IMG_SP_PORT2_RIGHT                     319
+#define IMG_SP_PORT2_DOWN                      320
+#define IMG_SP_PORT2_LEFT                      321
+#define IMG_SP_PORT2_UP                                322
+#define IMG_SP_PORT_X                          323
+#define IMG_SP_PORT_Y                          324
+#define IMG_SP_PORT_XY                         325
+#define IMG_SP_SNIKSNAK                                326
+#define IMG_SP_SNIKSNAK_LEFT                   327
+#define IMG_SP_SNIKSNAK_RIGHT                  328
+#define IMG_SP_SNIKSNAK_UP                     329
+#define IMG_SP_SNIKSNAK_DOWN                   330
+#define IMG_SP_ELECTRON                                331
+#define IMG_SP_TERMINAL                                332
+#define IMG_SP_TERMINAL_ACTIVE                 333
+#define IMG_SP_BUGGY_BASE                      334
+#define IMG_SP_BUGGY_BASE_ACTIVATING           335
+#define IMG_SP_HARD_BASE1                      336
+#define IMG_SP_HARD_BASE2                      337
+#define IMG_SP_HARD_BASE3                      338
+#define IMG_SP_HARD_BASE4                      339
+#define IMG_SP_HARD_BASE5                      340
+#define IMG_SP_HARD_BASE6                      341
+#define IMG_INVISIBLE_STEELWALL                        342
+#define IMG_INVISIBLE_STEELWALL_ACTIVE         343
+#define IMG_INVISIBLE_SAND                     344
+#define IMG_INVISIBLE_SAND_ACTIVE              345
+#define IMG_INVISIBLE_WALL                     346
+#define IMG_INVISIBLE_WALL_ACTIVE              347
+#define IMG_EM_KEY1                            348
+#define IMG_EM_KEY2                            349
+#define IMG_EM_KEY3                            350
+#define IMG_EM_KEY4                            351
+#define IMG_EM_GATE1                           352
+#define IMG_EM_GATE2                           353
+#define IMG_EM_GATE3                           354
+#define IMG_EM_GATE4                           355
+#define IMG_EM_GATE1_GRAY                      356
+#define IMG_EM_GATE2_GRAY                      357
+#define IMG_EM_GATE3_GRAY                      358
+#define IMG_EM_GATE4_GRAY                      359
+#define IMG_SP_EXPLOSION                       360
+#define IMG_SP_EXPLOSION_INFOTRON              361
+#define IMG_CONVEYOR_BELT1_MIDDLE              362
+#define IMG_CONVEYOR_BELT1_MIDDLE_ACTIVE       363
+#define IMG_CONVEYOR_BELT1_LEFT                        364
+#define IMG_CONVEYOR_BELT1_LEFT_ACTIVE         365
+#define IMG_CONVEYOR_BELT1_RIGHT               366
+#define IMG_CONVEYOR_BELT1_RIGHT_ACTIVE                367
+#define IMG_CONVEYOR_BELT1_SWITCH_LEFT         368
+#define IMG_CONVEYOR_BELT1_SWITCH_MIDDLE       369
+#define IMG_CONVEYOR_BELT1_SWITCH_RIGHT                370
+#define IMG_CONVEYOR_BELT2_MIDDLE              371
+#define IMG_CONVEYOR_BELT2_MIDDLE_ACTIVE       372
+#define IMG_CONVEYOR_BELT2_LEFT                        373
+#define IMG_CONVEYOR_BELT2_LEFT_ACTIVE         374
+#define IMG_CONVEYOR_BELT2_RIGHT               375
+#define IMG_CONVEYOR_BELT2_RIGHT_ACTIVE                376
+#define IMG_CONVEYOR_BELT2_SWITCH_LEFT         377
+#define IMG_CONVEYOR_BELT2_SWITCH_MIDDLE       378
+#define IMG_CONVEYOR_BELT2_SWITCH_RIGHT                379
+#define IMG_CONVEYOR_BELT3_MIDDLE              380
+#define IMG_CONVEYOR_BELT3_MIDDLE_ACTIVE       381
+#define IMG_CONVEYOR_BELT3_LEFT                        382
+#define IMG_CONVEYOR_BELT3_LEFT_ACTIVE         383
+#define IMG_CONVEYOR_BELT3_RIGHT               384
+#define IMG_CONVEYOR_BELT3_RIGHT_ACTIVE                385
+#define IMG_CONVEYOR_BELT3_SWITCH_LEFT         386
+#define IMG_CONVEYOR_BELT3_SWITCH_MIDDLE       387
+#define IMG_CONVEYOR_BELT3_SWITCH_RIGHT                388
+#define IMG_CONVEYOR_BELT4_MIDDLE              389
+#define IMG_CONVEYOR_BELT4_MIDDLE_ACTIVE       390
+#define IMG_CONVEYOR_BELT4_LEFT                        391
+#define IMG_CONVEYOR_BELT4_LEFT_ACTIVE         392
+#define IMG_CONVEYOR_BELT4_RIGHT               393
+#define IMG_CONVEYOR_BELT4_RIGHT_ACTIVE                394
+#define IMG_CONVEYOR_BELT4_SWITCH_LEFT         395
+#define IMG_CONVEYOR_BELT4_SWITCH_MIDDLE       396
+#define IMG_CONVEYOR_BELT4_SWITCH_RIGHT                397
+#define IMG_SWITCHGATE_SWITCH_UP               398
+#define IMG_SWITCHGATE_SWITCH_DOWN             399
+#define IMG_LIGHT_SWITCH                       400
+#define IMG_LIGHT_SWITCH_ACTIVE                        401
+#define IMG_TIMEGATE_SWITCH                    402
+#define IMG_TIMEGATE_SWITCH_ACTIVE             403
+#define IMG_ENVELOPE                           404
+#define IMG_SIGN_EXCLAMATION                   405
+#define IMG_SIGN_STOP                          406
+#define IMG_LANDMINE                           407
+#define IMG_STEELWALL_SLANTED                  408
+#define IMG_EXTRA_TIME                         409
+#define IMG_SHIELD_DEADLY                      410
+#define IMG_SHIELD_NORMAL                      411
+#define IMG_SWITCHGATE_CLOSED                  412
+#define IMG_SWITCHGATE_OPENING                 413
+#define IMG_SWITCHGATE_OPEN                    414
+#define IMG_SWITCHGATE_CLOSING                 415
+#define IMG_TIMEGATE_CLOSED                    416
+#define IMG_TIMEGATE_OPENING                   417
+#define IMG_TIMEGATE_OPEN                      418
+#define IMG_TIMEGATE_CLOSING                   419
+#define IMG_BALLOON                            420
+#define IMG_BALLOON_MOVING                     421
+#define IMG_BALLOON_SEND_LEFT                  422
+#define IMG_BALLOON_SEND_RIGHT                 423
+#define IMG_BALLOON_SEND_UP                    424
+#define IMG_BALLOON_SEND_DOWN                  425
+#define IMG_BALLOON_SEND_ANY_DIRECTION         426
+#define IMG_EMC_STEELWALL1                     427
+#define IMG_EMC_STEELWALL2                     428
+#define IMG_EMC_STEELWALL3                     429
+#define IMG_EMC_STEELWALL4                     430
+#define IMG_EMC_WALL_PILLAR_UPPER              431
+#define IMG_EMC_WALL_PILLAR_MIDDLE             432
+#define IMG_EMC_WALL_PILLAR_LOWER              433
+#define IMG_EMC_WALL4                          434
+#define IMG_EMC_WALL5                          435
+#define IMG_EMC_WALL6                          436
+#define IMG_EMC_WALL7                          437
+#define IMG_EMC_WALL8                          438
+#define IMG_ARROW_BLUE_LEFT                    439
+#define IMG_ARROW_BLUE_RIGHT                   440
+#define IMG_ARROW_BLUE_UP                      441
+#define IMG_ARROW_BLUE_DOWN                    442
+#define IMG_ARROW_RED_LEFT                     443
+#define IMG_ARROW_RED_RIGHT                    444
+#define IMG_ARROW_RED_UP                       445
+#define IMG_ARROW_RED_DOWN                     446
+#define IMG_SCROLLBAR_BLUE                     447
+#define IMG_SCROLLBAR_RED                      448
+#define IMG_SCROLLBAR_GREEN                    449
+#define IMG_SCROLLBAR_YELLOW                   450
+#define IMG_PEARL                              451
+#define IMG_PEARL_BREAKING                     452
+#define IMG_CRYSTAL                            453
+#define IMG_WALL_PEARL                         454
+#define IMG_WALL_CRYSTAL                       455
+#define IMG_SPRING                             456
+#define IMG_TUBE_RIGHT_DOWN                    457
+#define IMG_TUBE_HORIZONTAL_DOWN               458
+#define IMG_TUBE_LEFT_DOWN                     459
+#define IMG_TUBE_HORIZONTAL                    460
+#define IMG_TUBE_VERTICAL_RIGHT                        461
+#define IMG_TUBE_ALL                           462
+#define IMG_TUBE_VERTICAL_LEFT                 463
+#define IMG_TUBE_VERTICAL                      464
+#define IMG_TUBE_RIGHT_UP                      465
+#define IMG_TUBE_HORIZONTAL_UP                 466
+#define IMG_TUBE_LEFT_UP                       467
+#define IMG_TRAP_INACTIVE                      468
+#define IMG_TRAP_ACTIVE                                469
+#define IMG_TRAP_ACTIVATING                    470
+#define IMG_BD_WALL                            471
+#define IMG_BD_ROCK                            472
+#define IMG_BD_ROCK_FALLING                    473
+#define IMG_BD_ROCK_PUSHING                    474
+#define IMG_DX_BOMB                            475
+
+#define NUM_IMAGE_FILES                                476
 
 
 /* values for sound configuration suffixes */
 #define SND_SWITCHGATE_OPENING                 108
 #define SND_SWITCHGATE_CLOSING                 109
 #define SND_SWITCHGATE_PASSING                 110
-#define SND_TIMEGATE_WHEEL_ACTIVATING          111
-#define SND_TIMEGATE_WHEEL_ACTIVE              112
+#define SND_TIMEGATE_SWITCH_ACTIVATING         111
+#define SND_TIMEGATE_SWITCH_ACTIVE             112
 #define SND_TIMEGATE_OPENING                   113
 #define SND_TIMEGATE_CLOSING                   114
 #define SND_TIMEGATE_PASSING                   115
index d3ccdb0df065c0fb1fc1b86fa6d81bb7c80f00ef..16ceba09b07d049ee1e86e70a570be32e9233c35 100644 (file)
@@ -482,8 +482,8 @@ void DrawPlayer(struct PlayerInfo *player)
     {
       if (player->GfxPos)
       {
-       if (Feld[next_jx][next_jy] == EL_SOKOBAN_FELD_VOLL)
-         DrawLevelElement(next_jx, next_jy, EL_SOKOBAN_FELD_LEER);
+       if (Feld[next_jx][next_jy] == EL_SOKOBAN_FIELD_FULL)
+         DrawLevelElement(next_jx, next_jy, EL_SOKOBAN_FIELD_EMPTY);
        else
          DrawLevelElement(next_jx, next_jy, EL_EMPTY);
       }
@@ -605,8 +605,8 @@ void DrawPlayer(struct PlayerInfo *player)
   {
     int px = SCREENX(next_jx), py = SCREENY(next_jy);
 
-    if (element == EL_SOKOBAN_FELD_LEER ||
-       Feld[next_jx][next_jy] == EL_SOKOBAN_FELD_VOLL)
+    if (element == EL_SOKOBAN_FIELD_EMPTY ||
+       Feld[next_jx][next_jy] == EL_SOKOBAN_FIELD_FULL)
       DrawGraphicShiftedThruMask(px, py, sxx, syy, GFX_SOKOBAN_OBJEKT,
                                 NO_CUTTING);
     else
@@ -1376,7 +1376,7 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element,
   {
     graphic = GFX_GEBLUBBER + getGraphicAnimationPhase(4, 10, ANIM_NORMAL);
   }
-  else if (element == EL_BUTTERFLY || element == EL_FIREFLY)
+  else if (element == EL_BD_BUTTERFLY || element == EL_BD_FIREFLY)
   {
     graphic += !phase2;
   }
@@ -1410,10 +1410,10 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element,
   }
   else if (element == EL_MAGIC_WALL_EMPTY ||
           element == EL_MAGIC_WALL_EMPTYING ||
-          element == EL_MAGIC_WALL_BD_EMPTY ||
-          element == EL_MAGIC_WALL_BD_EMPTYING ||
+          element == EL_BD_MAGIC_WALL_EMPTY ||
+          element == EL_BD_MAGIC_WALL_EMPTYING ||
           element == EL_MAGIC_WALL_FULL ||
-          element == EL_MAGIC_WALL_BD_FULL)
+          element == EL_BD_MAGIC_WALL_FULL)
   {
     graphic += 3 + getGraphicAnimationPhase(4, 4, ANIM_REVERSE);
   }
@@ -1440,7 +1440,7 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element,
   }
   else if ((element == EL_INVISIBLE_STEELWALL ||
            element == EL_INVISIBLE_WALL ||
-           element == EL_SAND_INVISIBLE) && game.light_time_left)
+           element == EL_INVISIBLE_SAND) && game.light_time_left)
   {
     graphic = (element == EL_INVISIBLE_STEELWALL ? GFX_INVISIBLE_STEEL_ON :
               element == EL_INVISIBLE_WALL ? GFX_UNSICHTBAR_ON :
@@ -1542,7 +1542,7 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element,
     graphic = GFX_GEBLUBBER + getNewGraphicAnimationFrame(graphic, move_pos);
 #endif
   }
-  else if (element == EL_BUTTERFLY || element == EL_FIREFLY)
+  else if (element == EL_BD_BUTTERFLY || element == EL_BD_FIREFLY)
   {
     graphic += !phase2;
   }
@@ -1576,10 +1576,10 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element,
   }
   else if (element == EL_MAGIC_WALL_EMPTY ||
           element == EL_MAGIC_WALL_EMPTYING ||
-          element == EL_MAGIC_WALL_BD_EMPTY ||
-          element == EL_MAGIC_WALL_BD_EMPTYING ||
+          element == EL_BD_MAGIC_WALL_EMPTY ||
+          element == EL_BD_MAGIC_WALL_EMPTYING ||
           element == EL_MAGIC_WALL_FULL ||
-          element == EL_MAGIC_WALL_BD_FULL)
+          element == EL_BD_MAGIC_WALL_FULL)
   {
 #if 1
     graphic += 3 + getGraphicAnimationPhase(4, 4, ANIM_REVERSE);
@@ -1610,7 +1610,7 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element,
   }
   else if ((element == EL_INVISIBLE_STEELWALL ||
            element == EL_INVISIBLE_WALL ||
-           element == EL_SAND_INVISIBLE) && game.light_time_left)
+           element == EL_INVISIBLE_SAND) && game.light_time_left)
   {
     graphic = (element == EL_INVISIBLE_STEELWALL ? GFX_INVISIBLE_STEEL_ON :
               element == EL_INVISIBLE_WALL ? GFX_UNSICHTBAR_ON :
@@ -1718,7 +1718,7 @@ void ErdreichAnbroeckeln(int x, int y)
 
   if (element == EL_SAND ||
       element == EL_LANDMINE ||
-      element == EL_TRAP_INACTIVE ||
+      element == EL_TRAP ||
       element == EL_TRAP_ACTIVE)
   {
     if (!IN_SCR_FIELD(x, y))
@@ -1741,7 +1741,7 @@ void ErdreichAnbroeckeln(int x, int y)
 
       if (element == EL_SAND ||
          element == EL_LANDMINE ||
-         element == EL_TRAP_INACTIVE ||
+         element == EL_TRAP ||
          element == EL_TRAP_ACTIVE)
        continue;
 
@@ -1784,7 +1784,7 @@ void ErdreichAnbroeckeln(int x, int y)
       if (!IN_LEV_FIELD(uxx, uyy) ||
          (Feld[uxx][uyy] != EL_SAND &&
           Feld[uxx][uyy] != EL_LANDMINE &&
-          Feld[uxx][uyy] != EL_TRAP_INACTIVE &&
+          Feld[uxx][uyy] != EL_TRAP &&
           Feld[uxx][uyy] != EL_TRAP_ACTIVE) ||
          !IN_SCR_FIELD(xx, yy))
        continue;
@@ -1862,12 +1862,12 @@ void DrawScreenField(int x, int y)
 
     if (element == EL_QUICKSAND_EMPTYING ||
        element == EL_MAGIC_WALL_EMPTYING ||
-       element == EL_MAGIC_WALL_BD_EMPTYING ||
+       element == EL_BD_MAGIC_WALL_EMPTYING ||
        element == EL_AMOEBA_DRIPPING)
       cut_mode = CUT_ABOVE;
     else if (element == EL_QUICKSAND_FILLING ||
             element == EL_MAGIC_WALL_FILLING ||
-            element == EL_MAGIC_WALL_BD_FILLING)
+            element == EL_BD_MAGIC_WALL_FILLING)
       cut_mode = CUT_BELOW;
 
     if (cut_mode == CUT_ABOVE)
@@ -1904,7 +1904,7 @@ void DrawScreenField(int x, int y)
 
     if (element_old == EL_QUICKSAND_EMPTYING ||
        element_old == EL_MAGIC_WALL_EMPTYING ||
-       element_old == EL_MAGIC_WALL_BD_EMPTYING ||
+       element_old == EL_BD_MAGIC_WALL_EMPTYING ||
        element_old == EL_AMOEBA_DRIPPING)
       cut_mode = CUT_ABOVE;
 
@@ -1952,12 +1952,12 @@ void DrawNewScreenField(int x, int y)
 
     if (element == EL_QUICKSAND_EMPTYING ||
        element == EL_MAGIC_WALL_EMPTYING ||
-       element == EL_MAGIC_WALL_BD_EMPTYING ||
+       element == EL_BD_MAGIC_WALL_EMPTYING ||
        element == EL_AMOEBA_DRIPPING)
       cut_mode = CUT_ABOVE;
     else if (element == EL_QUICKSAND_FILLING ||
             element == EL_MAGIC_WALL_FILLING ||
-            element == EL_MAGIC_WALL_BD_FILLING)
+            element == EL_BD_MAGIC_WALL_FILLING)
       cut_mode = CUT_BELOW;
 
     if (cut_mode == CUT_ABOVE)
@@ -1994,7 +1994,7 @@ void DrawNewScreenField(int x, int y)
 
     if (element_old == EL_QUICKSAND_EMPTYING ||
        element_old == EL_MAGIC_WALL_EMPTYING ||
-       element_old == EL_MAGIC_WALL_BD_EMPTYING ||
+       element_old == EL_BD_MAGIC_WALL_EMPTYING ||
        element_old == EL_AMOEBA_DRIPPING)
       cut_mode = CUT_ABOVE;
 
@@ -3004,8 +3004,8 @@ int get_next_element(int element)
     case EL_QUICKSAND_EMPTYING:                return EL_QUICKSAND_EMPTY;
     case EL_MAGIC_WALL_FILLING:                return EL_MAGIC_WALL_FULL;
     case EL_MAGIC_WALL_EMPTYING:       return EL_MAGIC_WALL_EMPTY;
-    case EL_MAGIC_WALL_BD_FILLING:     return EL_MAGIC_WALL_BD_FULL;
-    case EL_MAGIC_WALL_BD_EMPTYING:    return EL_MAGIC_WALL_BD_EMPTY;
+    case EL_BD_MAGIC_WALL_FILLING:     return EL_BD_MAGIC_WALL_FULL;
+    case EL_BD_MAGIC_WALL_EMPTYING:    return EL_BD_MAGIC_WALL_EMPTY;
     case EL_AMOEBA_DRIPPING:           return EL_AMOEBA_WET;
 
     default:                           return element;
@@ -3021,10 +3021,9 @@ int el2gfx_OLD(int element)
     case EL_WALL:                      return GFX_MAUERWERK;
     case EL_WALL_CRUMBLED:             return GFX_FELSBODEN;
     case EL_ROCK:                      return GFX_FELSBROCKEN;
-    case EL_KEY:                       return GFX_SCHLUESSEL;
     case EL_EMERALD:                   return GFX_EDELSTEIN;
     case EL_EXIT_CLOSED:               return GFX_AUSGANG_ZU;
-    case EL_AUSGANG_ACT:               return GFX_AUSGANG_ACT;
+    case EL_EXIT_OPENING:              return GFX_AUSGANG_ACT;
     case EL_EXIT_OPEN:                 return GFX_AUSGANG_AUF;
     case EL_SP_EXIT_OPEN:              return GFX_SP_EXIT;
     case EL_PLAYER:                    return GFX_SPIELFIGUR;
@@ -3042,16 +3041,16 @@ int el2gfx_OLD(int element)
     case EL_SPACESHIP_UP:              return GFX_FLIEGER_UP;
     case EL_SPACESHIP_LEFT:            return GFX_FLIEGER_LEFT;
     case EL_SPACESHIP_DOWN:            return GFX_FLIEGER_DOWN;
-    case EL_BUTTERFLY:                 return GFX_BUTTERFLY;
-    case EL_BUTTERFLY_RIGHT:           return GFX_BUTTERFLY_RIGHT;
-    case EL_BUTTERFLY_UP:              return GFX_BUTTERFLY_UP;
-    case EL_BUTTERFLY_LEFT:            return GFX_BUTTERFLY_LEFT;
-    case EL_BUTTERFLY_DOWN:            return GFX_BUTTERFLY_DOWN;
-    case EL_FIREFLY:                   return GFX_FIREFLY;
-    case EL_FIREFLY_RIGHT:             return GFX_FIREFLY_RIGHT;
-    case EL_FIREFLY_UP:                        return GFX_FIREFLY_UP;
-    case EL_FIREFLY_LEFT:              return GFX_FIREFLY_LEFT;
-    case EL_FIREFLY_DOWN:              return GFX_FIREFLY_DOWN;
+    case EL_BD_BUTTERFLY:              return GFX_BUTTERFLY;
+    case EL_BD_BUTTERFLY_RIGHT:                return GFX_BUTTERFLY_RIGHT;
+    case EL_BD_BUTTERFLY_UP:           return GFX_BUTTERFLY_UP;
+    case EL_BD_BUTTERFLY_LEFT:         return GFX_BUTTERFLY_LEFT;
+    case EL_BD_BUTTERFLY_DOWN:         return GFX_BUTTERFLY_DOWN;
+    case EL_BD_FIREFLY:                        return GFX_FIREFLY;
+    case EL_BD_FIREFLY_RIGHT:          return GFX_FIREFLY_RIGHT;
+    case EL_BD_FIREFLY_UP:             return GFX_FIREFLY_UP;
+    case EL_BD_FIREFLY_LEFT:           return GFX_FIREFLY_LEFT;
+    case EL_BD_FIREFLY_DOWN:           return GFX_FIREFLY_DOWN;
     case EL_YAMYAM:                    return GFX_MAMPFER;
     case EL_ROBOT:                     return GFX_ROBOT;
     case EL_STEELWALL:                 return GFX_BETON;
@@ -3124,11 +3123,11 @@ int el2gfx_OLD(int element)
     case EL_WALL_EMERALD_RED:          return GFX_ERZ_EDEL_ROT;
     case EL_WALL_EMERALD_PURPLE:       return GFX_ERZ_EDEL_LILA;
     case EL_DARK_YAMYAM:               return GFX_MAMPFER2;
-    case EL_MAGIC_WALL_BD_OFF:         return GFX_MAGIC_WALL_BD_OFF;
-    case EL_MAGIC_WALL_BD_EMPTY:       return GFX_MAGIC_WALL_BD_EMPTY;
-    case EL_MAGIC_WALL_BD_EMPTYING:    return GFX_MAGIC_WALL_BD_EMPTY;
-    case EL_MAGIC_WALL_BD_FULL:                return GFX_MAGIC_WALL_BD_FULL;
-    case EL_MAGIC_WALL_BD_DEAD:                return GFX_MAGIC_WALL_BD_DEAD;
+    case EL_BD_MAGIC_WALL:             return GFX_MAGIC_WALL_BD_OFF;
+    case EL_BD_MAGIC_WALL_EMPTY:       return GFX_MAGIC_WALL_BD_EMPTY;
+    case EL_BD_MAGIC_WALL_EMPTYING:    return GFX_MAGIC_WALL_BD_EMPTY;
+    case EL_BD_MAGIC_WALL_FULL:                return GFX_MAGIC_WALL_BD_FULL;
+    case EL_BD_MAGIC_WALL_DEAD:                return GFX_MAGIC_WALL_BD_DEAD;
     case EL_DYNABOMB_ACTIVE_1:         return GFX_DYNABOMB;
     case EL_DYNABOMB_ACTIVE_2:         return GFX_DYNABOMB;
     case EL_DYNABOMB_ACTIVE_3:         return GFX_DYNABOMB;
@@ -3136,21 +3135,21 @@ int el2gfx_OLD(int element)
     case EL_DYNABOMB_NR:               return GFX_DYNABOMB_NR;
     case EL_DYNABOMB_SZ:               return GFX_DYNABOMB_SZ;
     case EL_DYNABOMB_XL:               return GFX_DYNABOMB_XL;
-    case EL_SOKOBAN_OBJEKT:            return GFX_SOKOBAN_OBJEKT;
-    case EL_SOKOBAN_FELD_LEER:         return GFX_SOKOBAN_FELD_LEER;
-    case EL_SOKOBAN_FELD_VOLL:         return GFX_SOKOBAN_FELD_VOLL;
+    case EL_SOKOBAN_OBJECT:            return GFX_SOKOBAN_OBJEKT;
+    case EL_SOKOBAN_FIELD_EMPTY:       return GFX_SOKOBAN_FELD_LEER;
+    case EL_SOKOBAN_FIELD_FULL:                return GFX_SOKOBAN_FELD_VOLL;
     case EL_MOLE:                      return GFX_MOLE;
     case EL_PENGUIN:                   return GFX_PINGUIN;
     case EL_PIG:                       return GFX_SCHWEIN;
     case EL_DRAGON:                    return GFX_DRACHE;
     case EL_SATELLITE:                 return GFX_SONDE;
-    case EL_ARROW_LEFT:                        return GFX_PFEIL_LEFT;
-    case EL_ARROW_RIGHT:               return GFX_PFEIL_RIGHT;
-    case EL_ARROW_UP:                  return GFX_PFEIL_UP;
-    case EL_ARROW_DOWN:                        return GFX_PFEIL_DOWN;
+    case EL_ARROW_BLUE_LEFT:           return GFX_PFEIL_LEFT;
+    case EL_ARROW_BLUE_RIGHT:          return GFX_PFEIL_RIGHT;
+    case EL_ARROW_BLUE_UP:             return GFX_PFEIL_UP;
+    case EL_ARROW_BLUE_DOWN:           return GFX_PFEIL_DOWN;
     case EL_SPEED_PILL:                        return GFX_SPEED_PILL;
     case EL_SP_TERMINAL_ACTIVE:                return GFX_SP_TERMINAL;
-    case EL_SP_BUG_ACTIVE:             return GFX_SP_BUG_ACTIVE;
+    case EL_SP_BUGGY_BASE_ACTIVE:      return GFX_SP_BUG_ACTIVE;
     case EL_SP_ZONK:                   return GFX_SP_ZONK;
       /* ^^^^^^^^^^ non-standard position in supaplex graphic set! */
     case EL_INVISIBLE_STEELWALL:       return GFX_INVISIBLE_STEEL;
@@ -3179,7 +3178,7 @@ int el2gfx_OLD(int element)
     case EL_DOOR_WHITE_GRAY:           return GFX_DOOR_WHITE_GRAY;
     case EL_KEY_WHITE:                 return GFX_KEY_WHITE;
     case EL_SHIELD_NORMAL:             return GFX_SHIELD_PASSIVE;
-    case EL_SHIELD_ACTIVE:             return GFX_SHIELD_ACTIVE;
+    case EL_SHIELD_DEADLY:             return GFX_SHIELD_ACTIVE;
     case EL_EXTRA_TIME:                        return GFX_EXTRA_TIME;
     case EL_SWITCHGATE_OPEN:           return GFX_SWITCHGATE_OPEN;
     case EL_SWITCHGATE_CLOSED:         return GFX_SWITCHGATE_CLOSED;
@@ -3230,19 +3229,19 @@ int el2gfx_OLD(int element)
     case EL_MOLE_UP:                   return GFX_MOLE_UP;
     case EL_MOLE_DOWN:                 return GFX_MOLE_DOWN;
     case EL_STEELWALL_SLANTED:         return GFX_STEEL_SLANTED;
-    case EL_SAND_INVISIBLE:            return GFX_SAND_INVISIBLE;
+    case EL_INVISIBLE_SAND:            return GFX_SAND_INVISIBLE;
     case EL_DX_UNKNOWN_15:             return GFX_DX_UNKNOWN_15;
     case EL_DX_UNKNOWN_42:             return GFX_DX_UNKNOWN_42;
     case EL_TIMEGATE_OPEN:             return GFX_TIMEGATE_OPEN;
     case EL_TIMEGATE_CLOSED:           return GFX_TIMEGATE_CLOSED;
-    case EL_TIMEGATE_SWITCH_ON:                return GFX_TIMEGATE_SWITCH;
-    case EL_TIMEGATE_SWITCH_OFF:       return GFX_TIMEGATE_SWITCH;
+    case EL_TIMEGATE_SWITCH_ACTIVE:    return GFX_TIMEGATE_SWITCH;
+    case EL_TIMEGATE_SWITCH:           return GFX_TIMEGATE_SWITCH;
     case EL_BALLOON:                   return GFX_BALLOON;
     case EL_BALLOON_SEND_LEFT:         return GFX_BALLOON_SEND_LEFT;
     case EL_BALLOON_SEND_RIGHT:                return GFX_BALLOON_SEND_RIGHT;
     case EL_BALLOON_SEND_UP:           return GFX_BALLOON_SEND_UP;
     case EL_BALLOON_SEND_DOWN:         return GFX_BALLOON_SEND_DOWN;
-    case EL_BALLOON_SEND_ANY:          return GFX_BALLOON_SEND_ANY;
+    case EL_BALLOON_SEND_ANY_DIRECTION:        return GFX_BALLOON_SEND_ANY;
     case EL_EMC_STEELWALL1:            return GFX_EMC_STEEL_WALL_1;
     case EL_EMC_STEELWALL2:            return GFX_EMC_STEEL_WALL_2;
     case EL_EMC_STEELWALL3:            return GFX_EMC_STEEL_WALL_3;
@@ -3255,20 +3254,20 @@ int el2gfx_OLD(int element)
     case EL_EMC_WALL6:                 return GFX_EMC_WALL_6;
     case EL_EMC_WALL7:                 return GFX_EMC_WALL_7;
     case EL_EMC_WALL8:                 return GFX_EMC_WALL_8;
-    case EL_TUBE_CROSS:                        return GFX_TUBE_CROSS;
+    case EL_TUBE_ALL:                  return GFX_TUBE_CROSS;
     case EL_TUBE_VERTICAL:             return GFX_TUBE_VERTICAL;
     case EL_TUBE_HORIZONTAL:           return GFX_TUBE_HORIZONTAL;
-    case EL_TUBE_VERT_LEFT:            return GFX_TUBE_VERT_LEFT;
-    case EL_TUBE_VERT_RIGHT:           return GFX_TUBE_VERT_RIGHT;
-    case EL_TUBE_HORIZ_UP:             return GFX_TUBE_HORIZ_UP;
-    case EL_TUBE_HORIZ_DOWN:           return GFX_TUBE_HORIZ_DOWN;
+    case EL_TUBE_VERTICAL_LEFT:                return GFX_TUBE_VERT_LEFT;
+    case EL_TUBE_VERTICAL_RIGHT:       return GFX_TUBE_VERT_RIGHT;
+    case EL_TUBE_HORIZONTAL_UP:                return GFX_TUBE_HORIZ_UP;
+    case EL_TUBE_HORIZONTAL_DOWN:      return GFX_TUBE_HORIZ_DOWN;
     case EL_TUBE_LEFT_UP:              return GFX_TUBE_LEFT_UP;
     case EL_TUBE_LEFT_DOWN:            return GFX_TUBE_LEFT_DOWN;
     case EL_TUBE_RIGHT_UP:             return GFX_TUBE_RIGHT_UP;
     case EL_TUBE_RIGHT_DOWN:           return GFX_TUBE_RIGHT_DOWN;
     case EL_SPRING:                    return GFX_SPRING;
     case EL_SPRING_MOVING:             return GFX_SPRING;
-    case EL_TRAP_INACTIVE:             return GFX_TRAP_INACTIVE;
+    case EL_TRAP:                      return GFX_TRAP_INACTIVE;
     case EL_TRAP_ACTIVE:               return GFX_TRAP_ACTIVE;
     case EL_BD_WALL:                   return GFX_BD_WALL;
     case EL_BD_ROCK:                   return GFX_BD_ROCK;
@@ -3321,8 +3320,8 @@ int el2img(int element)
 {
   switch(element)
   {
-    case EL_BUTTERFLY:         return IMG_BD_BUTTERFLY;
-    case EL_FIREFLY:           return IMG_BD_FIREFLY;
+    case EL_BD_BUTTERFLY:      return IMG_BD_BUTTERFLY;
+    case EL_BD_FIREFLY:                return IMG_BD_FIREFLY;
     case EL_SP_ELECTRON:       return IMG_SP_ELECTRON;
 
     default: