rnd-19990829-1-src
authorHolger Schemel <info@artsoft.org>
Sun, 29 Aug 1999 02:18:20 +0000 (04:18 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:34:11 +0000 (10:34 +0200)
src/cartoons.c
src/editor.c
src/game.c
src/init.c
src/main.c
src/main.h
src/screens.c
src/tools.c

index bd00d1af01a6a04bc2dc9906a8dca6465a25f724..07394acdb9538591a3cfb0a7c801b42398b7cd23 100644 (file)
@@ -310,8 +310,8 @@ boolean AnimateToon(int toon_nr, boolean restart)
     },
     {
       GAMETOON_XSIZE, GAMETOON_YSIZE,
-      ((GFX_MAULWURF_LEFT - GFX_START_ROCKSHEROES) % HEROES_PER_LINE)*TILEX,
-      ((GFX_MAULWURF_LEFT - GFX_START_ROCKSHEROES) / HEROES_PER_LINE)*TILEY,
+      ((GFX_MOLE_LEFT - GFX_START_ROCKSHEROES) % HEROES_PER_LINE)*TILEX,
+      ((GFX_MOLE_LEFT - GFX_START_ROCKSHEROES) / HEROES_PER_LINE)*TILEY,
       GAMETOON_FRAMES_4,
       GAMETOON_FPS,
       GAMETOON_STEPSIZE,
@@ -321,8 +321,8 @@ boolean AnimateToon(int toon_nr, boolean restart)
     },
     {
       GAMETOON_XSIZE, GAMETOON_YSIZE,
-      ((GFX_MAULWURF_RIGHT - GFX_START_ROCKSHEROES) % HEROES_PER_LINE)*TILEX,
-      ((GFX_MAULWURF_RIGHT - GFX_START_ROCKSHEROES) / HEROES_PER_LINE)*TILEY,
+      ((GFX_MOLE_RIGHT - GFX_START_ROCKSHEROES) % HEROES_PER_LINE)*TILEX,
+      ((GFX_MOLE_RIGHT - GFX_START_ROCKSHEROES) / HEROES_PER_LINE)*TILEY,
       GAMETOON_FRAMES_4,
       GAMETOON_FPS,
       GAMETOON_STEPSIZE,
index 95af54940eb6959187f49734ba911324c5c9f8bd..50988c0d88b527cd13e7078b21c36a2bd5151cf3 100644 (file)
@@ -757,18 +757,18 @@ int editor_element[] =
   EL_AUSGANG_AUF,
 
   EL_EDELSTEIN_BD,
-  EL_BUTTERFLY_O,
-  EL_FIREFLY_O,
+  EL_BUTTERFLY_UP,
+  EL_FIREFLY_UP,
   EL_FELSBROCKEN,
 
-  EL_BUTTERFLY_L,
-  EL_FIREFLY_L,
-  EL_BUTTERFLY_R,
-  EL_FIREFLY_R,
+  EL_BUTTERFLY_LEFT,
+  EL_FIREFLY_LEFT,
+  EL_BUTTERFLY_RIGHT,
+  EL_FIREFLY_RIGHT,
 
   EL_AMOEBE_BD,
-  EL_BUTTERFLY_U,
-  EL_FIREFLY_U,
+  EL_BUTTERFLY_DOWN,
+  EL_FIREFLY_DOWN,
   EL_LEERRAUM,
 
   EL_CHAR('E'),
@@ -817,18 +817,18 @@ int editor_element[] =
   EL_AUSGANG_AUF,
 
   EL_MAMPFER,
-  EL_KAEFER_O,
-  EL_FLIEGER_O,
+  EL_KAEFER_UP,
+  EL_FLIEGER_UP,
   EL_ROBOT,
 
-  EL_KAEFER_L,
-  EL_FLIEGER_L,
-  EL_KAEFER_R,
-  EL_FLIEGER_R,
+  EL_KAEFER_LEFT,
+  EL_FLIEGER_LEFT,
+  EL_KAEFER_RIGHT,
+  EL_FLIEGER_RIGHT,
 
   EL_ABLENK_AUS,
-  EL_KAEFER_U,
-  EL_FLIEGER_U,
+  EL_KAEFER_DOWN,
+  EL_FLIEGER_DOWN,
   EL_UNSICHTBAR,
 
   EL_BADEWANNE1,
@@ -881,10 +881,10 @@ int editor_element[] =
   EL_PFORTE3X,
   EL_PFORTE4X,
 
-  EL_PFEIL_L,
-  EL_PFEIL_R,
-  EL_PFEIL_O,
-  EL_PFEIL_U,
+  EL_PFEIL_LEFT,
+  EL_PFEIL_RIGHT,
+  EL_PFEIL_UP,
+  EL_PFEIL_DOWN,
 
   EL_AMOEBE_VOLL,
   EL_EDELSTEIN_GELB,
@@ -897,17 +897,17 @@ int editor_element[] =
   EL_ERZ_EDEL_LILA,
 
   EL_LIFE,
-  EL_PACMAN_O,
+  EL_PACMAN_UP,
   EL_ZEIT_VOLL,
   EL_ZEIT_LEER,
 
-  EL_PACMAN_L,
+  EL_PACMAN_LEFT,
   EL_MAMPFER2,
-  EL_PACMAN_R,
+  EL_PACMAN_RIGHT,
   EL_MAUER_LEBT,
 
   EL_LIFE_ASYNC,
-  EL_PACMAN_U,
+  EL_PACMAN_DOWN,
   EL_BIRNE_AUS,
   EL_BIRNE_EIN,
 
@@ -916,11 +916,26 @@ int editor_element[] =
   EL_DYNABOMB_XL,
   EL_BADEWANNE,
 
-  EL_MAULWURF,
+  EL_MOLE,
   EL_PINGUIN,
   EL_SCHWEIN,
   EL_DRACHE,
 
+  EL_LEERRAUM,
+  EL_MOLE_UP,
+  EL_LEERRAUM,
+  EL_LEERRAUM,
+
+  EL_MOLE_LEFT,
+  EL_LEERRAUM,
+  EL_MOLE_RIGHT,
+  EL_LEERRAUM,
+
+  EL_LEERRAUM,
+  EL_MOLE_DOWN,
+  EL_LEERRAUM,
+  EL_LEERRAUM,
+
   EL_SONDE,
   EL_MAUER_X,
   EL_MAUER_Y,
@@ -1029,32 +1044,32 @@ int editor_element[] =
   EL_BELT1_LEFT,
   EL_BELT1_MIDDLE,
   EL_BELT1_RIGHT,
-  EL_BELT1_SWITCH_M,
+  EL_BELT1_SWITCH_MIDDLE,
 
   EL_BELT2_LEFT,
   EL_BELT2_MIDDLE,
   EL_BELT2_RIGHT,
-  EL_BELT2_SWITCH_M,
+  EL_BELT2_SWITCH_MIDDLE,
 
   EL_BELT3_LEFT,
   EL_BELT3_MIDDLE,
   EL_BELT3_RIGHT,
-  EL_BELT3_SWITCH_M,
+  EL_BELT3_SWITCH_MIDDLE,
 
   EL_BELT4_LEFT,
   EL_BELT4_MIDDLE,
   EL_BELT4_RIGHT,
-  EL_BELT4_SWITCH_M,
+  EL_BELT4_SWITCH_MIDDLE,
 
-  EL_BELT1_SWITCH_L,
-  EL_BELT2_SWITCH_L,
-  EL_BELT3_SWITCH_L,
-  EL_BELT4_SWITCH_L,
+  EL_BELT1_SWITCH_LEFT,
+  EL_BELT2_SWITCH_LEFT,
+  EL_BELT3_SWITCH_LEFT,
+  EL_BELT4_SWITCH_LEFT,
 
-  EL_BELT1_SWITCH_R,
-  EL_BELT2_SWITCH_R,
-  EL_BELT3_SWITCH_R,
-  EL_BELT4_SWITCH_R,
+  EL_BELT1_SWITCH_RIGHT,
+  EL_BELT2_SWITCH_RIGHT,
+  EL_BELT3_SWITCH_RIGHT,
+  EL_BELT4_SWITCH_RIGHT,
 
   EL_SWITCHGATE_OPEN,
   EL_SWITCHGATE_CLOSED,
@@ -2508,29 +2523,29 @@ static void DrawPropertiesWindow()
     { EL_EDELSTEIN_ROT,        &level.score[SC_EDELSTEIN],     TEXT_COLLECTING },
     { EL_EDELSTEIN_LILA,&level.score[SC_EDELSTEIN],    TEXT_COLLECTING },
     { EL_DIAMANT,      &level.score[SC_DIAMANT],       TEXT_COLLECTING },
-    { EL_KAEFER_R,     &level.score[SC_KAEFER],        TEXT_SMASHING },
-    { EL_KAEFER_O,     &level.score[SC_KAEFER],        TEXT_SMASHING },
-    { EL_KAEFER_L,     &level.score[SC_KAEFER],        TEXT_SMASHING },
-    { EL_KAEFER_U,     &level.score[SC_KAEFER],        TEXT_SMASHING },
-    { EL_BUTTERFLY_R,  &level.score[SC_KAEFER],        TEXT_SMASHING },
-    { EL_BUTTERFLY_O,  &level.score[SC_KAEFER],        TEXT_SMASHING },
-    { EL_BUTTERFLY_L,  &level.score[SC_KAEFER],        TEXT_SMASHING },
-    { EL_BUTTERFLY_U,  &level.score[SC_KAEFER],        TEXT_SMASHING },
-    { EL_FLIEGER_R,    &level.score[SC_FLIEGER],       TEXT_SMASHING },
-    { EL_FLIEGER_O,    &level.score[SC_FLIEGER],       TEXT_SMASHING },
-    { EL_FLIEGER_L,    &level.score[SC_FLIEGER],       TEXT_SMASHING },
-    { EL_FLIEGER_U,    &level.score[SC_FLIEGER],       TEXT_SMASHING },
-    { EL_FIREFLY_R,    &level.score[SC_FLIEGER],       TEXT_SMASHING },
-    { EL_FIREFLY_O,    &level.score[SC_FLIEGER],       TEXT_SMASHING },
-    { EL_FIREFLY_L,    &level.score[SC_FLIEGER],       TEXT_SMASHING },
-    { EL_FIREFLY_U,    &level.score[SC_FLIEGER],       TEXT_SMASHING },
+    { EL_KAEFER_RIGHT, &level.score[SC_KAEFER],        TEXT_SMASHING },
+    { EL_KAEFER_UP,    &level.score[SC_KAEFER],        TEXT_SMASHING },
+    { EL_KAEFER_LEFT,  &level.score[SC_KAEFER],        TEXT_SMASHING },
+    { EL_KAEFER_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_FLIEGER_RIGHT,        &level.score[SC_FLIEGER],       TEXT_SMASHING },
+    { EL_FLIEGER_UP,   &level.score[SC_FLIEGER],       TEXT_SMASHING },
+    { EL_FLIEGER_LEFT, &level.score[SC_FLIEGER],       TEXT_SMASHING },
+    { EL_FLIEGER_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_MAMPFER,      &level.score[SC_MAMPFER],       TEXT_SMASHING },
     { EL_MAMPFER2,     &level.score[SC_MAMPFER],       TEXT_SMASHING },
     { EL_ROBOT,                &level.score[SC_ROBOT],         TEXT_SMASHING },
-    { EL_PACMAN_R,     &level.score[SC_PACMAN],        TEXT_SMASHING },
-    { EL_PACMAN_O,     &level.score[SC_PACMAN],        TEXT_SMASHING },
-    { EL_PACMAN_L,     &level.score[SC_PACMAN],        TEXT_SMASHING },
-    { EL_PACMAN_U,     &level.score[SC_PACMAN],        TEXT_SMASHING },
+    { EL_PACMAN_RIGHT, &level.score[SC_PACMAN],        TEXT_SMASHING },
+    { EL_PACMAN_UP,    &level.score[SC_PACMAN],        TEXT_SMASHING },
+    { EL_PACMAN_LEFT,  &level.score[SC_PACMAN],        TEXT_SMASHING },
+    { EL_PACMAN_DOWN,  &level.score[SC_PACMAN],        TEXT_SMASHING },
     { EL_KOKOSNUSS,    &level.score[SC_KOKOSNUSS],     TEXT_CRACKING },
     { EL_DYNAMITE_INACTIVE,&level.score[SC_DYNAMIT],   TEXT_COLLECTING },
     { EL_SCHLUESSEL1,  &level.score[SC_SCHLUESSEL],    TEXT_COLLECTING },
index 96fa706fecafc873fc399fe30d001ccec37e92bb..d7fb2368f8536f59501a5dc05cbe86eb6309eda9 100644 (file)
@@ -189,19 +189,19 @@ static int getBeltNrFromElement(int element)
 
 static int getBeltNrFromSwitchElement(int element)
 {
-  return (element < EL_BELT2_SWITCH_L ? 0 :
-         element < EL_BELT3_SWITCH_L ? 1 :
-         element < EL_BELT4_SWITCH_L ? 2 : 3);
+  return (element < EL_BELT2_SWITCH_LEFT ? 0 :
+         element < EL_BELT3_SWITCH_LEFT ? 1 :
+         element < EL_BELT4_SWITCH_LEFT ? 2 : 3);
 }
 
 static int getBeltDirNrFromSwitchElement(int element)
 {
   static int belt_base_element[4] =
   {
-    EL_BELT1_SWITCH_L,
-    EL_BELT2_SWITCH_L,
-    EL_BELT3_SWITCH_L,
-    EL_BELT4_SWITCH_L
+    EL_BELT1_SWITCH_LEFT,
+    EL_BELT2_SWITCH_LEFT,
+    EL_BELT3_SWITCH_LEFT,
+    EL_BELT4_SWITCH_LEFT
   };
 
   int belt_nr = getBeltNrFromSwitchElement(element);
@@ -282,36 +282,41 @@ static void InitField(int x, int y, boolean init_game)
        Feld[x][y] = EL_BADEWANNE5;
       break;
 
-    case EL_KAEFER_R:
-    case EL_KAEFER_O:
-    case EL_KAEFER_L:
-    case EL_KAEFER_U:
+    case EL_KAEFER_RIGHT:
+    case EL_KAEFER_UP:
+    case EL_KAEFER_LEFT:
+    case EL_KAEFER_DOWN:
     case EL_KAEFER:
-    case EL_FLIEGER_R:
-    case EL_FLIEGER_O:
-    case EL_FLIEGER_L:
-    case EL_FLIEGER_U:
+    case EL_FLIEGER_RIGHT:
+    case EL_FLIEGER_UP:
+    case EL_FLIEGER_LEFT:
+    case EL_FLIEGER_DOWN:
     case EL_FLIEGER:
-    case EL_BUTTERFLY_R:
-    case EL_BUTTERFLY_O:
-    case EL_BUTTERFLY_L:
-    case EL_BUTTERFLY_U:
+    case EL_BUTTERFLY_RIGHT:
+    case EL_BUTTERFLY_UP:
+    case EL_BUTTERFLY_LEFT:
+    case EL_BUTTERFLY_DOWN:
     case EL_BUTTERFLY:
-    case EL_FIREFLY_R:
-    case EL_FIREFLY_O:
-    case EL_FIREFLY_L:
-    case EL_FIREFLY_U:
+    case EL_FIREFLY_RIGHT:
+    case EL_FIREFLY_UP:
+    case EL_FIREFLY_LEFT:
+    case EL_FIREFLY_DOWN:
     case EL_FIREFLY:
-    case EL_PACMAN_R:
-    case EL_PACMAN_O:
-    case EL_PACMAN_L:
-    case EL_PACMAN_U:
+    case EL_PACMAN_RIGHT:
+    case EL_PACMAN_UP:
+    case EL_PACMAN_LEFT:
+    case EL_PACMAN_DOWN:
     case EL_MAMPFER:
     case EL_MAMPFER2:
     case EL_ROBOT:
     case EL_PACMAN:
     case EL_SP_SNIKSNAK:
     case EL_SP_ELECTRON:
+    case EL_MOLE_LEFT:
+    case EL_MOLE_RIGHT:
+    case EL_MOLE_UP:
+    case EL_MOLE_DOWN:
+    case EL_MOLE:
       InitMovDir(x, y);
       break;
 
@@ -340,7 +345,6 @@ static void InitField(int x, int y, boolean init_game)
       local_player->sokobanfields_still_needed++;
       break;
 
-    case EL_MAULWURF:
     case EL_PINGUIN:
       local_player->friends_still_needed++;
       break;
@@ -367,18 +371,18 @@ static void InitField(int x, int y, boolean init_game)
       Feld[x][y] = EL_EM_KEY_4;
       break;
 
-    case EL_BELT1_SWITCH_L:
-    case EL_BELT1_SWITCH_M:
-    case EL_BELT1_SWITCH_R:
-    case EL_BELT2_SWITCH_L:
-    case EL_BELT2_SWITCH_M:
-    case EL_BELT2_SWITCH_R:
-    case EL_BELT3_SWITCH_L:
-    case EL_BELT3_SWITCH_M:
-    case EL_BELT3_SWITCH_R:
-    case EL_BELT4_SWITCH_L:
-    case EL_BELT4_SWITCH_M:
-    case EL_BELT4_SWITCH_R:
+    case EL_BELT1_SWITCH_LEFT:
+    case EL_BELT1_SWITCH_MIDDLE:
+    case EL_BELT1_SWITCH_RIGHT:
+    case EL_BELT2_SWITCH_LEFT:
+    case EL_BELT2_SWITCH_MIDDLE:
+    case EL_BELT2_SWITCH_RIGHT:
+    case EL_BELT3_SWITCH_LEFT:
+    case EL_BELT3_SWITCH_MIDDLE:
+    case EL_BELT3_SWITCH_RIGHT:
+    case EL_BELT4_SWITCH_LEFT:
+    case EL_BELT4_SWITCH_MIDDLE:
+    case EL_BELT4_SWITCH_RIGHT:
       if (init_game)
       {
        int belt_nr = getBeltNrFromSwitchElement(Feld[x][y]);
@@ -760,52 +764,53 @@ void InitMovDir(int x, int y)
     {  0, -1 },
     { -1,  0 }
   };
-  static int direction[2][4] =
+  static int direction[3][4] =
   {
     { MV_RIGHT, MV_UP,   MV_LEFT,  MV_DOWN },
-    { MV_LEFT,  MV_DOWN, MV_RIGHT, MV_UP }
+    { MV_LEFT,  MV_DOWN, MV_RIGHT, MV_UP },
+    { MV_LEFT,  MV_RIGHT, MV_UP, MV_DOWN }
   };
 
   switch(element)
   {
-    case EL_KAEFER_R:
-    case EL_KAEFER_O:
-    case EL_KAEFER_L:
-    case EL_KAEFER_U:
+    case EL_KAEFER_RIGHT:
+    case EL_KAEFER_UP:
+    case EL_KAEFER_LEFT:
+    case EL_KAEFER_DOWN:
       Feld[x][y] = EL_KAEFER;
-      MovDir[x][y] = direction[0][element - EL_KAEFER_R];
+      MovDir[x][y] = direction[0][element - EL_KAEFER_RIGHT];
       break;
 
-    case EL_FLIEGER_R:
-    case EL_FLIEGER_O:
-    case EL_FLIEGER_L:
-    case EL_FLIEGER_U:
+    case EL_FLIEGER_RIGHT:
+    case EL_FLIEGER_UP:
+    case EL_FLIEGER_LEFT:
+    case EL_FLIEGER_DOWN:
       Feld[x][y] = EL_FLIEGER;
-      MovDir[x][y] = direction[0][element - EL_FLIEGER_R];
+      MovDir[x][y] = direction[0][element - EL_FLIEGER_RIGHT];
       break;
 
-    case EL_BUTTERFLY_R:
-    case EL_BUTTERFLY_O:
-    case EL_BUTTERFLY_L:
-    case EL_BUTTERFLY_U:
+    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_R];
+      MovDir[x][y] = direction[0][element - EL_BUTTERFLY_RIGHT];
       break;
 
-    case EL_FIREFLY_R:
-    case EL_FIREFLY_O:
-    case EL_FIREFLY_L:
-    case EL_FIREFLY_U:
+    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_R];
+      MovDir[x][y] = direction[0][element - EL_FIREFLY_RIGHT];
       break;
 
-    case EL_PACMAN_R:
-    case EL_PACMAN_O:
-    case EL_PACMAN_L:
-    case EL_PACMAN_U:
+    case EL_PACMAN_RIGHT:
+    case EL_PACMAN_UP:
+    case EL_PACMAN_LEFT:
+    case EL_PACMAN_DOWN:
       Feld[x][y] = EL_PACMAN;
-      MovDir[x][y] = direction[0][element - EL_PACMAN_R];
+      MovDir[x][y] = direction[0][element - EL_PACMAN_RIGHT];
       break;
 
     case EL_SP_SNIKSNAK:
@@ -816,6 +821,14 @@ void InitMovDir(int x, int y)
       MovDir[x][y] = MV_LEFT;
       break;
 
+    case EL_MOLE_LEFT:
+    case EL_MOLE_RIGHT:
+    case EL_MOLE_UP:
+    case EL_MOLE_DOWN:
+      Feld[x][y] = EL_MOLE;
+      MovDir[x][y] = direction[2][element - EL_MOLE_LEFT];
+      break;
+
     default:
       MovDir[x][y] = 1 << RND(4);
       if (element != EL_KAEFER &&
@@ -1281,7 +1294,7 @@ void Explode(int ex, int ey, int phase, int mode)
        if (game.emulation == EMU_SUPAPLEX)
          Store[x][y] = EL_LEERRAUM;
       }
-      else if (center_element == EL_MAULWURF)
+      else if (center_element == EL_MOLE)
        Store[x][y] = EL_EDELSTEIN_ROT;
       else if (center_element == EL_PINGUIN)
        Store[x][y] = EL_EDELSTEIN_LILA;
@@ -1475,6 +1488,7 @@ void Bang(int x, int y)
     case EL_MAMPFER2:
     case EL_ROBOT:
     case EL_PACMAN:
+    case EL_MOLE:
       RaiseScoreElement(element);
       Explode(x, y, EX_PHASE_START, EX_NORMAL);
       break;
@@ -1487,7 +1501,6 @@ void Bang(int x, int y)
     case EL_DYNABOMB_XL:
       DynaExplode(x, y);
       break;
-    case EL_MAULWURF:
     case EL_PINGUIN:
     case EL_BIRNE_AUS:
     case EL_BIRNE_EIN:
@@ -1548,10 +1561,10 @@ static void ToggleBeltSwitch(int x, int y)
 {
   static int belt_base_element[4] =
   {
-    EL_BELT1_SWITCH_L,
-    EL_BELT2_SWITCH_L,
-    EL_BELT3_SWITCH_L,
-    EL_BELT4_SWITCH_L
+    EL_BELT1_SWITCH_LEFT,
+    EL_BELT2_SWITCH_LEFT,
+    EL_BELT3_SWITCH_LEFT,
+    EL_BELT4_SWITCH_LEFT
   };
   static int belt_move_dir[4] =
   {
@@ -1708,7 +1721,7 @@ void Impact(int x, int y)
   {
     if (object_hit && IS_PLAYER(x, y+1))
       KillHeroUnlessForceField(PLAYERINFO(x, y+1));
-    else if (object_hit && (smashed == EL_MAULWURF || smashed == EL_PINGUIN))
+    else if (object_hit && smashed == EL_PINGUIN)
       Bang(x, y+1);
     else
     {
@@ -1743,7 +1756,7 @@ void Impact(int x, int y)
       KillHeroUnlessForceField(PLAYERINFO(x, y+1));
       return;
     }
-    else if (smashed == EL_MAULWURF || smashed == EL_PINGUIN)
+    else if (smashed == EL_PINGUIN)
     {
       Bang(x, y+1);
       return;
@@ -1760,7 +1773,8 @@ void Impact(int x, int y)
     {
       if (IS_ENEMY(smashed) ||
          smashed == EL_BOMBE || smashed == EL_SP_DISK_ORANGE ||
-         smashed == EL_SONDE || smashed == EL_SCHWEIN || smashed == EL_DRACHE)
+         smashed == EL_SONDE || smashed == EL_SCHWEIN ||
+         smashed == EL_DRACHE || smashed == EL_MOLE)
       {
        Bang(x, y+1);
        return;
@@ -2113,8 +2127,36 @@ void TurnRound(int x, int y)
 
     MovDelay[x][y] = 0;
   }
-  else if (element == EL_ROBOT || element == EL_SONDE ||
-          element == EL_MAULWURF || element == EL_PINGUIN)
+  else if (element == EL_MOLE)
+  {
+    boolean can_turn_left = FALSE, can_turn_right = FALSE, can_move_on = FALSE;
+
+    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))
+      can_move_on = TRUE;
+
+    if (!can_move_on)
+    {
+      if (IN_LEV_FIELD(left_x, left_y) &&
+         (IS_FREE(left_x, left_y) || IS_AMOEBOID(Feld[left_x][left_y])))
+       can_turn_left = TRUE;
+      if (IN_LEV_FIELD(right_x, right_y) &&
+         (IS_FREE(right_x, right_y) || IS_AMOEBOID(Feld[right_x][right_y])))
+       can_turn_right = TRUE;
+
+      if (can_turn_left && can_turn_right)
+       MovDir[x][y] = (RND(2) ? left_dir : right_dir);
+      else if (can_turn_left)
+       MovDir[x][y] = left_dir;
+      else
+       MovDir[x][y] = right_dir;
+    }
+
+    if (MovDir[x][y] != old_move_dir)
+      MovDelay[x][y] = 9;
+  }
+  else if (element == EL_ROBOT || element == EL_SONDE || element == EL_PINGUIN)
   {
     int attr_x = -1, attr_y = -1;
 
@@ -2149,7 +2191,7 @@ void TurnRound(int x, int y)
       attr_y = ZY;
     }
 
-    if (element == EL_MAULWURF || element == EL_PINGUIN)
+    if (element == EL_PINGUIN)
     {
       int i;
       static int xy[4][2] =
@@ -2215,7 +2257,7 @@ void TurnRound(int x, int y)
        if (IN_LEV_FIELD(newx, newy) &&
            (IS_FREE(newx, newy) ||
             Feld[newx][newy] == EL_SALZSAEURE ||
-            ((element == EL_MAULWURF || element == EL_PINGUIN) &&
+            (element == EL_PINGUIN &&
              (Feld[newx][newy] == EL_AUSGANG_AUF ||
               IS_MAMPF3(Feld[newx][newy])))))
          return;
@@ -2227,7 +2269,7 @@ void TurnRound(int x, int y)
        if (IN_LEV_FIELD(newx, newy) &&
            (IS_FREE(newx, newy) ||
             Feld[newx][newy] == EL_SALZSAEURE ||
-            ((element == EL_MAULWURF || element == EL_PINGUIN) &&
+            (element == EL_PINGUIN &&
              (Feld[newx][newy] == EL_AUSGANG_AUF ||
               IS_MAMPF3(Feld[newx][newy])))))
          return;
@@ -2429,9 +2471,11 @@ void StartMoving(int x, int y)
       if (element!=EL_MAMPFER && element!=EL_MAMPFER2 && element!=EL_PACMAN)
       {
        TurnRound(x, y);
-       if (MovDelay[x][y] && (element == EL_KAEFER || element == EL_FLIEGER ||
+       if (MovDelay[x][y] && (element == EL_KAEFER ||
+                              element == EL_FLIEGER ||
                               element == EL_SP_SNIKSNAK ||
-                              element == EL_SP_ELECTRON))
+                              element == EL_SP_ELECTRON ||
+                              element == EL_MOLE))
          DrawLevelField(x, y);
       }
     }
@@ -2532,7 +2576,7 @@ void StartMoving(int x, int y)
 #endif
 
     }
-    else if ((element == EL_MAULWURF || element == EL_PINGUIN ||
+    else if ((element == EL_PINGUIN ||
              element == EL_ROBOT || element == EL_SONDE) &&
             IN_LEV_FIELD(newx, newy) &&
             MovDir[x][y] == MV_DOWN && Feld[newx][newy] == EL_SALZSAEURE)
@@ -2540,8 +2584,7 @@ void StartMoving(int x, int y)
       Blurb(x, y);
       Store[x][y] = EL_SALZSAEURE;
     }
-    else if ((element == EL_MAULWURF || element == EL_PINGUIN) &&
-            IN_LEV_FIELD(newx, newy))
+    else if (element == EL_PINGUIN && IN_LEV_FIELD(newx, newy))
     {
       if (Feld[newx][newy] == EL_AUSGANG_AUF)
       {
@@ -2666,8 +2709,8 @@ void StartMoving(int x, int y)
        DrawLevelField(newx, newy);
       }
     }
-    else if (element == EL_PACMAN && IN_LEV_FIELD(newx, newy) &&
-            IS_AMOEBOID(Feld[newx][newy]))
+    else if ((element == EL_PACMAN || element == EL_MOLE)
+            && IN_LEV_FIELD(newx, newy) && IS_AMOEBOID(Feld[newx][newy]))
     {
       if (AmoebaNr[newx][newy])
       {
@@ -2677,8 +2720,24 @@ void StartMoving(int x, int y)
          AmoebaCnt[AmoebaNr[newx][newy]]--;
       }
 
-      Feld[newx][newy] = EL_LEERRAUM;
-      DrawLevelField(newx, newy);
+      if (element == EL_MOLE)
+      {
+       Feld[newx][newy] = EL_DEAMOEBING;
+       MovDelay[newx][newy] = 0;       /* start amoeba shrinking delay */
+       return;                         /* wait for shrinking amoeba */
+      }
+      else     /* element == EL_PACMAN */
+      {
+       Feld[newx][newy] = EL_LEERRAUM;
+       DrawLevelField(newx, newy);
+      }
+    }
+    else if (element == EL_MOLE && IN_LEV_FIELD(newx, newy) &&
+            (Feld[newx][newy] == EL_DEAMOEBING ||
+             (Feld[newx][newy] == EL_LEERRAUM && Stop[newx][newy])))
+    {
+      /* wait for shrinking amoeba to completely disappear */
+      return;
     }
     else if (!IN_LEV_FIELD(newx, newy) || !IS_FREE(newx, newy))
     {
@@ -2687,7 +2746,7 @@ void StartMoving(int x, int y)
       TurnRound(x, y);
 
       if (element == EL_KAEFER || element == EL_FLIEGER ||
-         element == EL_SP_SNIKSNAK)
+         element == EL_SP_SNIKSNAK || element == EL_MOLE)
        DrawLevelField(x, y);
       else if (element == EL_BUTTERFLY || element == EL_FIREFLY)
        DrawGraphicAnimation(x, y, el2gfx(element), 2, 4, ANIM_NORMAL);
@@ -2739,6 +2798,32 @@ void ContinueMoving(int x, int y)
     Feld[x][y] = EL_LEERRAUM;
     Feld[newx][newy] = element;
 
+    if (element == EL_MOLE)
+    {
+      int i;
+      static int xy[4][2] =
+      {
+       { 0, -1 },
+       { -1, 0 },
+       { +1, 0 },
+       { 0, +1 }
+      };
+
+      Feld[x][y] = EL_ERDREICH;
+      DrawLevelField(x, y);
+
+      for(i=0; i<4; i++)
+      {
+       int xx, yy;
+
+       xx = x + xy[i][0];
+       yy = y + xy[i][1];
+
+       if (IN_LEV_FIELD(xx, yy) && Feld[xx][yy] == EL_ERDREICH)
+         DrawLevelField(xx, yy);       /* for "ErdreichAnbroeckeln()" */
+      }
+    }
+
     if (Store[x][y] == EL_MORAST_VOLL)
     {
       Store[x][y] = 0;
@@ -3014,6 +3099,40 @@ void AmoebeWaechst(int x, int y)
   }
 }
 
+void AmoebeSchrumpft(int x, int y)
+{
+  static unsigned long sound_delay = 0;
+  static unsigned long sound_delay_value = 0;
+
+  if (!MovDelay[x][y])         /* start new shrinking cycle */
+  {
+    MovDelay[x][y] = 7;
+
+    if (DelayReached(&sound_delay, sound_delay_value))
+    {
+      PlaySoundLevel(x, y, SND_BLURB);
+      sound_delay_value = 30;
+    }
+  }
+
+  if (MovDelay[x][y])          /* wait some time before shrinking */
+  {
+    MovDelay[x][y]--;
+    if (MovDelay[x][y]/2 && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+      DrawGraphic(SCREENX(x), SCREENY(y), GFX_AMOEBING + MovDelay[x][y]/2);
+
+    if (!MovDelay[x][y])
+    {
+      Feld[x][y] = EL_LEERRAUM;
+      DrawLevelField(x, y);
+
+      /* don't let mole enter this field in this cycle;
+        (give priority to objects falling to this field from above) */
+      Stop[x][y] = TRUE;
+    }
+  }
+}
+
 void AmoebeAbleger(int ax, int ay)
 {
   int i;
@@ -3965,6 +4084,8 @@ void GameActions()
       Explode(x, y, Frame[x][y], EX_NORMAL);
     else if (element == EL_AMOEBING)
       AmoebeWaechst(x, y);
+    else if (element == EL_DEAMOEBING)
+      AmoebeSchrumpft(x, y);
     else if (IS_AMOEBALIVE(element))
       AmoebeAbleger(x, y);
     else if (element == EL_LIFE || element == EL_LIFE_ASYNC)
@@ -4976,18 +5097,18 @@ int DigField(struct PlayerInfo *player,
       }
       break;
 
-    case EL_BELT1_SWITCH_L:
-    case EL_BELT1_SWITCH_M:
-    case EL_BELT1_SWITCH_R:
-    case EL_BELT2_SWITCH_L:
-    case EL_BELT2_SWITCH_M:
-    case EL_BELT2_SWITCH_R:
-    case EL_BELT3_SWITCH_L:
-    case EL_BELT3_SWITCH_M:
-    case EL_BELT3_SWITCH_R:
-    case EL_BELT4_SWITCH_L:
-    case EL_BELT4_SWITCH_M:
-    case EL_BELT4_SWITCH_R:
+    case EL_BELT1_SWITCH_LEFT:
+    case EL_BELT1_SWITCH_MIDDLE:
+    case EL_BELT1_SWITCH_RIGHT:
+    case EL_BELT2_SWITCH_LEFT:
+    case EL_BELT2_SWITCH_MIDDLE:
+    case EL_BELT2_SWITCH_RIGHT:
+    case EL_BELT3_SWITCH_LEFT:
+    case EL_BELT3_SWITCH_MIDDLE:
+    case EL_BELT3_SWITCH_RIGHT:
+    case EL_BELT4_SWITCH_LEFT:
+    case EL_BELT4_SWITCH_MIDDLE:
+    case EL_BELT4_SWITCH_RIGHT:
       if (!player->Switching)
       {
        player->Switching = TRUE;
@@ -5279,7 +5400,6 @@ int DigField(struct PlayerInfo *player,
 
       break;
 
-    case EL_MAULWURF:
     case EL_PINGUIN:
     case EL_SCHWEIN:
     case EL_DRACHE:
index 09804ee18381b0a84750a64338267125b2aa6a5d..78e38abed59c678931755f597e8a3e5bd3e6ce64 100644 (file)
@@ -929,18 +929,18 @@ void InitElementProperties()
     EL_SP_TERMINAL,
     EL_SP_EXIT,
     EL_INVISIBLE_STEEL,
-    EL_BELT1_SWITCH_L,
-    EL_BELT1_SWITCH_M,
-    EL_BELT1_SWITCH_R,
-    EL_BELT2_SWITCH_L,
-    EL_BELT2_SWITCH_M,
-    EL_BELT2_SWITCH_R,
-    EL_BELT3_SWITCH_L,
-    EL_BELT3_SWITCH_M,
-    EL_BELT3_SWITCH_R,
-    EL_BELT4_SWITCH_L,
-    EL_BELT4_SWITCH_M,
-    EL_BELT4_SWITCH_R,
+    EL_BELT1_SWITCH_LEFT,
+    EL_BELT1_SWITCH_MIDDLE,
+    EL_BELT1_SWITCH_RIGHT,
+    EL_BELT2_SWITCH_LEFT,
+    EL_BELT2_SWITCH_MIDDLE,
+    EL_BELT2_SWITCH_RIGHT,
+    EL_BELT3_SWITCH_LEFT,
+    EL_BELT3_SWITCH_MIDDLE,
+    EL_BELT3_SWITCH_RIGHT,
+    EL_BELT4_SWITCH_LEFT,
+    EL_BELT4_SWITCH_MIDDLE,
+    EL_BELT4_SWITCH_RIGHT,
     EL_LIGHT_SWITCH_OFF,
     EL_LIGHT_SWITCH_ON,
     EL_SIGN_EXCLAMATION,
@@ -998,18 +998,18 @@ void InitElementProperties()
     EL_SP_HARD_BASE5,
     EL_SP_HARD_BASE6,
     EL_INVISIBLE_STEEL,
-    EL_BELT1_SWITCH_L,
-    EL_BELT1_SWITCH_M,
-    EL_BELT1_SWITCH_R,
-    EL_BELT2_SWITCH_L,
-    EL_BELT2_SWITCH_M,
-    EL_BELT2_SWITCH_R,
-    EL_BELT3_SWITCH_L,
-    EL_BELT3_SWITCH_M,
-    EL_BELT3_SWITCH_R,
-    EL_BELT4_SWITCH_L,
-    EL_BELT4_SWITCH_M,
-    EL_BELT4_SWITCH_R,
+    EL_BELT1_SWITCH_LEFT,
+    EL_BELT1_SWITCH_MIDDLE,
+    EL_BELT1_SWITCH_RIGHT,
+    EL_BELT2_SWITCH_LEFT,
+    EL_BELT2_SWITCH_MIDDLE,
+    EL_BELT2_SWITCH_RIGHT,
+    EL_BELT3_SWITCH_LEFT,
+    EL_BELT3_SWITCH_MIDDLE,
+    EL_BELT3_SWITCH_RIGHT,
+    EL_BELT4_SWITCH_LEFT,
+    EL_BELT4_SWITCH_MIDDLE,
+    EL_BELT4_SWITCH_RIGHT,
     EL_LIGHT_SWITCH_OFF,
     EL_LIGHT_SWITCH_ON,
     EL_SIGN_EXCLAMATION,
@@ -1201,7 +1201,7 @@ void InitElementProperties()
     EL_MAMPFER2,
     EL_ROBOT,
     EL_PACMAN,
-    EL_MAULWURF,
+    EL_MOLE,
     EL_PINGUIN,
     EL_SCHWEIN,
     EL_DRACHE,
@@ -1213,26 +1213,26 @@ void InitElementProperties()
 
   static int ep_could_move[] =
   {
-    EL_KAEFER_R,
-    EL_KAEFER_O,
-    EL_KAEFER_L,
-    EL_KAEFER_U,
-    EL_FLIEGER_R,
-    EL_FLIEGER_O,
-    EL_FLIEGER_L,
-    EL_FLIEGER_U,
-    EL_BUTTERFLY_R,
-    EL_BUTTERFLY_O,
-    EL_BUTTERFLY_L,
-    EL_BUTTERFLY_U,
-    EL_FIREFLY_R,
-    EL_FIREFLY_O,
-    EL_FIREFLY_L,
-    EL_FIREFLY_U,
-    EL_PACMAN_R,
-    EL_PACMAN_O,
-    EL_PACMAN_L,
-    EL_PACMAN_U
+    EL_KAEFER_RIGHT,
+    EL_KAEFER_UP,
+    EL_KAEFER_LEFT,
+    EL_KAEFER_DOWN,
+    EL_FLIEGER_RIGHT,
+    EL_FLIEGER_UP,
+    EL_FLIEGER_LEFT,
+    EL_FLIEGER_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_PACMAN_RIGHT,
+    EL_PACMAN_UP,
+    EL_PACMAN_LEFT,
+    EL_PACMAN_DOWN
   };
   static int ep_could_move_num = sizeof(ep_could_move)/sizeof(int);
 
@@ -1436,18 +1436,18 @@ void InitElementProperties()
     EL_SP_HARD_BASE6,
     EL_SP_EXIT,
     EL_INVISIBLE_STEEL,
-    EL_BELT1_SWITCH_L,
-    EL_BELT1_SWITCH_M,
-    EL_BELT1_SWITCH_R,
-    EL_BELT2_SWITCH_L,
-    EL_BELT2_SWITCH_M,
-    EL_BELT2_SWITCH_R,
-    EL_BELT3_SWITCH_L,
-    EL_BELT3_SWITCH_M,
-    EL_BELT3_SWITCH_R,
-    EL_BELT4_SWITCH_L,
-    EL_BELT4_SWITCH_M,
-    EL_BELT4_SWITCH_R,
+    EL_BELT1_SWITCH_LEFT,
+    EL_BELT1_SWITCH_MIDDLE,
+    EL_BELT1_SWITCH_RIGHT,
+    EL_BELT2_SWITCH_LEFT,
+    EL_BELT2_SWITCH_MIDDLE,
+    EL_BELT2_SWITCH_RIGHT,
+    EL_BELT3_SWITCH_LEFT,
+    EL_BELT3_SWITCH_MIDDLE,
+    EL_BELT3_SWITCH_RIGHT,
+    EL_BELT4_SWITCH_LEFT,
+    EL_BELT4_SWITCH_MIDDLE,
+    EL_BELT4_SWITCH_RIGHT,
     EL_SIGN_EXCLAMATION,
     EL_SIGN_RADIOACTIVITY,
     EL_SIGN_STOP,
@@ -1477,7 +1477,7 @@ void InitElementProperties()
     EL_DYNABOMB_SZ,
     EL_DYNABOMB_XL,
     EL_KAEFER,
-    EL_MAULWURF,
+    EL_MOLE,
     EL_PINGUIN,
     EL_SCHWEIN,
     EL_DRACHE,
@@ -1662,18 +1662,18 @@ void InitElementProperties()
 
   static int ep_belt_switch[] =
   {
-    EL_BELT1_SWITCH_L,
-    EL_BELT1_SWITCH_M,
-    EL_BELT1_SWITCH_R,
-    EL_BELT2_SWITCH_L,
-    EL_BELT2_SWITCH_M,
-    EL_BELT2_SWITCH_R,
-    EL_BELT3_SWITCH_L,
-    EL_BELT3_SWITCH_M,
-    EL_BELT3_SWITCH_R,
-    EL_BELT4_SWITCH_L,
-    EL_BELT4_SWITCH_M,
-    EL_BELT4_SWITCH_R,
+    EL_BELT1_SWITCH_LEFT,
+    EL_BELT1_SWITCH_MIDDLE,
+    EL_BELT1_SWITCH_RIGHT,
+    EL_BELT2_SWITCH_LEFT,
+    EL_BELT2_SWITCH_MIDDLE,
+    EL_BELT2_SWITCH_RIGHT,
+    EL_BELT3_SWITCH_LEFT,
+    EL_BELT3_SWITCH_MIDDLE,
+    EL_BELT3_SWITCH_RIGHT,
+    EL_BELT4_SWITCH_LEFT,
+    EL_BELT4_SWITCH_MIDDLE,
+    EL_BELT4_SWITCH_RIGHT,
   };
   static int ep_belt_switch_num = sizeof(ep_belt_switch)/sizeof(int);
 
index daa3408176e44c6f698425e2e89b8f6288f583dc..f6439e8fe3487e06deeccef6658d594404657698 100644 (file)
@@ -519,8 +519,8 @@ char *element_info[] =
   "invisible sand",
   "dx unknown 15",
   "dx unknown 42",
-  "dx unknown 229",
-  "dx unknown 233",                            /* 320 */
+  "-",
+  "-",                                         /* 320 */
   "force field (active, kills enemies)",
   "-",
   "-",
index 9ae8be8755859d1db69733f117162c43f50ae2e8..4e6bd02f0fe3b33a6f2f8413041dbf5b6cf03b8a 100644 (file)
@@ -679,40 +679,40 @@ extern char               *element_info[];
 #define EL_SOKOBAN_OBJEKT      67
 #define EL_SOKOBAN_FELD_LEER   68
 #define EL_SOKOBAN_FELD_VOLL   69
-#define EL_BUTTERFLY_R         70
-#define EL_BUTTERFLY_O         71
-#define EL_BUTTERFLY_L         72
-#define EL_BUTTERFLY_U         73
-#define EL_FIREFLY_R           74
-#define EL_FIREFLY_          75
-#define EL_FIREFLY_L           76
-#define EL_FIREFLY_U           77
-#define EL_BUTTERFLY_1         EL_BUTTERFLY_U
-#define EL_BUTTERFLY_2         EL_BUTTERFLY_L
-#define EL_BUTTERFLY_3         EL_BUTTERFLY_O
-#define EL_BUTTERFLY_4         EL_BUTTERFLY_R
-#define EL_FIREFLY_1           EL_FIREFLY_L
-#define EL_FIREFLY_2           EL_FIREFLY_U
-#define EL_FIREFLY_3           EL_FIREFLY_R
-#define EL_FIREFLY_4           EL_FIREFLY_O
+#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_SPIELER1            80
 #define EL_SPIELER2            81
 #define EL_SPIELER3            82
 #define EL_SPIELER4            83
-#define EL_KAEFER_R            84
-#define EL_KAEFER_           85
-#define EL_KAEFER_L            86
-#define EL_KAEFER_U            87
-#define EL_FLIEGER_R           88
-#define EL_FLIEGER_          89
-#define EL_FLIEGER_L           90
-#define EL_FLIEGER_U           91
-#define EL_PACMAN_R            92
-#define EL_PACMAN_           93
-#define EL_PACMAN_L            94
-#define EL_PACMAN_U            95
+#define EL_KAEFER_RIGHT                84
+#define EL_KAEFER_UP           85
+#define EL_KAEFER_LEFT         86
+#define EL_KAEFER_DOWN         87
+#define EL_FLIEGER_RIGHT       88
+#define EL_FLIEGER_UP          89
+#define EL_FLIEGER_LEFT                90
+#define EL_FLIEGER_DOWN                91
+#define EL_PACMAN_RIGHT                92
+#define EL_PACMAN_UP           93
+#define EL_PACMAN_LEFT         94
+#define EL_PACMAN_DOWN         95
 #define EL_EDELSTEIN_ROT       96
 #define EL_EDELSTEIN_LILA      97
 #define EL_ERZ_EDEL_ROT                98
@@ -731,13 +731,13 @@ extern char               *element_info[];
 #define EL_BLACK_ORB           108
 
 #define EL_AMOEBA2DIAM         109
-#define EL_MAULWURF            110
+#define EL_MOLE                        110
 #define EL_PINGUIN             111
 #define EL_SONDE               112
-#define EL_PFEIL_L             113
-#define EL_PFEIL_R             114
-#define EL_PFEIL_            115
-#define EL_PFEIL_U             116
+#define EL_PFEIL_LEFT          113
+#define EL_PFEIL_RIGHT         114
+#define EL_PFEIL_UP            115
+#define EL_PFEIL_DOWN          116
 #define EL_SCHWEIN             117
 #define EL_DRACHE              118
 
@@ -864,27 +864,27 @@ extern char               *element_info[];
 #define EL_BELT1_LEFT          271
 #define EL_BELT1_MIDDLE                272
 #define EL_BELT1_RIGHT         273
-#define EL_BELT1_SWITCH_L      274
-#define EL_BELT1_SWITCH_M      275
-#define EL_BELT1_SWITCH_R      276
+#define EL_BELT1_SWITCH_LEFT   274
+#define EL_BELT1_SWITCH_MIDDLE 275
+#define EL_BELT1_SWITCH_RIGHT  276
 #define EL_BELT2_LEFT          277
 #define EL_BELT2_MIDDLE                278
 #define EL_BELT2_RIGHT         279
-#define EL_BELT2_SWITCH_L      280
-#define EL_BELT2_SWITCH_M      281
-#define EL_BELT2_SWITCH_R      282
+#define EL_BELT2_SWITCH_LEFT   280
+#define EL_BELT2_SWITCH_MIDDLE 281
+#define EL_BELT2_SWITCH_RIGHT  282
 #define EL_BELT3_LEFT          283
 #define EL_BELT3_MIDDLE                284
 #define EL_BELT3_RIGHT         285
-#define EL_BELT3_SWITCH_L      286
-#define EL_BELT3_SWITCH_M      287
-#define EL_BELT3_SWITCH_R      288
+#define EL_BELT3_SWITCH_LEFT   286
+#define EL_BELT3_SWITCH_MIDDLE 287
+#define EL_BELT3_SWITCH_RIGHT  288
 #define EL_BELT4_LEFT          289
 #define EL_BELT4_MIDDLE                290
 #define EL_BELT4_RIGHT         291
-#define EL_BELT4_SWITCH_L      292
-#define EL_BELT4_SWITCH_M      293
-#define EL_BELT4_SWITCH_R      294
+#define EL_BELT4_SWITCH_LEFT   292
+#define EL_BELT4_SWITCH_MIDDLE 293
+#define EL_BELT4_SWITCH_RIGHT  294
 #define EL_LANDMINE            295
 #define EL_ENVELOPE            296
 #define EL_LIGHT_SWITCH_OFF    297
@@ -909,8 +909,10 @@ extern char                *element_info[];
 #define EL_SAND_INVISIBLE      316
 #define EL_DX_UNKNOWN_15       317
 #define EL_DX_UNKNOWN_42       318
-#define EL_DX_UNKNOWN_229      319
-#define EL_DX_UNKNOWN_233      320
+
+#define EL_UNUSED_319          319
+#define EL_UNUSED_320          320
+
 #define EL_FORCE_FIELD_ACTIVE  321
 
 /* "real" (and therefore drawable) runtime elements */
@@ -941,9 +943,10 @@ extern char                *element_info[];
 #define EL_BLURB_LEFT          603
 #define EL_BLURB_RIGHT         604
 #define EL_AMOEBING            605
-#define EL_MAUERND             606
-#define EL_BURNING             607
-#define EL_PLAYER_IS_LEAVING   608
+#define EL_DEAMOEBING          606
+#define EL_MAUERND             607
+#define EL_BURNING             608
+#define EL_PLAYER_IS_LEAVING   609
 
 /* game graphics:
 **       0 -  255: graphics from "RocksScreen"
@@ -1015,25 +1018,25 @@ extern char             *element_info[];
 #define GFX_DYNAMIT_AUS                48
 #define GFX_DYNAMIT            49
 #define GFX_FLIEGER            56
-#define GFX_FLIEGER_R          56
-#define GFX_FLIEGER_         57
-#define GFX_FLIEGER_L          58
-#define GFX_FLIEGER_U          59
+#define GFX_FLIEGER_RIGHT      56
+#define GFX_FLIEGER_UP         57
+#define GFX_FLIEGER_LEFT       58
+#define GFX_FLIEGER_DOWN       59
 /* Zeile 4 (64) */
 #define GFX_EXPLOSION          64
 #define GFX_KAEFER             72
-#define GFX_KAEFER_R           72
-#define GFX_KAEFER_          73
-#define GFX_KAEFER_L           74
-#define GFX_KAEFER_U           75
+#define GFX_KAEFER_RIGHT       72
+#define GFX_KAEFER_UP          73
+#define GFX_KAEFER_LEFT                74
+#define GFX_KAEFER_DOWN                75
 /* Zeile 5 (80) */
 #define GFX_MAMPFER            80
 #define GFX_ROBOT              84
 #define GFX_PACMAN             88
-#define GFX_PACMAN_R           88
-#define GFX_PACMAN_          89
-#define GFX_PACMAN_L           90
-#define GFX_PACMAN_U           91
+#define GFX_PACMAN_RIGHT       88
+#define GFX_PACMAN_UP          89
+#define GFX_PACMAN_LEFT                90
+#define GFX_PACMAN_DOWN                91
 /* Zeile 6 (96) */
 #define GFX_ABLENK             96
 #define GFX_ABLENK_EIN         GFX_ABLENK
@@ -1078,7 +1081,7 @@ extern char               *element_info[];
 #define GFX_KUGEL_GRAU         143
 /* Zeile 9 (144) */
 #define GFX_PINGUIN            144
-#define GFX_MAULWURF           145
+#define GFX_MOLE               145
 #define GFX_SCHWEIN            146
 #define GFX_DRACHE             147
 #define GFX_MAUER_XY           148
@@ -1112,20 +1115,20 @@ extern char             *element_info[];
 #define GFX_DYNABOMB_NR                188
 #define GFX_DYNABOMB_SZ                191
 /* Zeile 12 (192) */
-#define GFX_PFEIL_L            192
-#define GFX_PFEIL_R            193
-#define GFX_PFEIL_           194
-#define GFX_PFEIL_U            195
+#define GFX_PFEIL_LEFT         192
+#define GFX_PFEIL_RIGHT                193
+#define GFX_PFEIL_UP           194
+#define GFX_PFEIL_DOWN         195
 #define GFX_BUTTERFLY          196
 #define GFX_FIREFLY            198
-#define GFX_BUTTERFLY_R                200
-#define GFX_BUTTERFLY_O                201
-#define GFX_BUTTERFLY_L                202
-#define GFX_BUTTERFLY_U                203
-#define GFX_FIREFLY_R          204
-#define GFX_FIREFLY_         205
-#define GFX_FIREFLY_L          206
-#define GFX_FIREFLY_U          207
+#define GFX_BUTTERFLY_RIGHT    200
+#define GFX_BUTTERFLY_UP       201
+#define GFX_BUTTERFLY_LEFT     202
+#define GFX_BUTTERFLY_DOWN     203
+#define GFX_FIREFLY_RIGHT      204
+#define GFX_FIREFLY_UP         205
+#define GFX_FIREFLY_LEFT       206
+#define GFX_FIREFLY_DOWN       207
 
 /* only available as size MINI_TILE */
 #define GFX_VSTEEL_UPPER_LEFT  208
@@ -1182,10 +1185,10 @@ extern char             *element_info[];
 #define GFX_DRACHE_UP          (GFX_START_ROCKSHEROES + 2*HEROES_PER_LINE +12)
 #define GFX_DRACHE_LEFT                (GFX_START_ROCKSHEROES + 3*HEROES_PER_LINE + 8)
 #define GFX_DRACHE_RIGHT       (GFX_START_ROCKSHEROES + 3*HEROES_PER_LINE +12)
-#define GFX_MAULWURF_DOWN      (GFX_START_ROCKSHEROES + 4*HEROES_PER_LINE + 8)
-#define GFX_MAULWURF_UP                (GFX_START_ROCKSHEROES + 4*HEROES_PER_LINE +12)
-#define GFX_MAULWURF_LEFT      (GFX_START_ROCKSHEROES + 5*HEROES_PER_LINE + 8)
-#define GFX_MAULWURF_RIGHT     (GFX_START_ROCKSHEROES + 5*HEROES_PER_LINE +12)
+#define GFX_MOLE_DOWN          (GFX_START_ROCKSHEROES + 4*HEROES_PER_LINE + 8)
+#define GFX_MOLE_UP            (GFX_START_ROCKSHEROES + 4*HEROES_PER_LINE +12)
+#define GFX_MOLE_LEFT          (GFX_START_ROCKSHEROES + 5*HEROES_PER_LINE + 8)
+#define GFX_MOLE_RIGHT         (GFX_START_ROCKSHEROES + 5*HEROES_PER_LINE +12)
 #define GFX_PINGUIN_DOWN       (GFX_START_ROCKSHEROES + 6*HEROES_PER_LINE + 8)
 #define GFX_PINGUIN_UP         (GFX_START_ROCKSHEROES + 6*HEROES_PER_LINE +12)
 #define GFX_PINGUIN_LEFT       (GFX_START_ROCKSHEROES + 7*HEROES_PER_LINE + 8)
@@ -1302,18 +1305,18 @@ extern char             *element_info[];
 #define GFX_BELT4_MIDDLE       (GFX_START_ROCKSDC +  9 * DC_PER_LINE +  0)
 #define GFX_BELT4_LEFT         (GFX_START_ROCKSDC + 10 * DC_PER_LINE +  0)
 #define GFX_BELT4_RIGHT                (GFX_START_ROCKSDC + 11 * DC_PER_LINE +  0)
-#define GFX_BELT1_SWITCH_L     (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  0)
-#define GFX_BELT2_SWITCH_L     (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  1)
-#define GFX_BELT3_SWITCH_L     (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  2)
-#define GFX_BELT4_SWITCH_L     (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  3)
-#define GFX_BELT1_SWITCH_M     (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  0)
-#define GFX_BELT2_SWITCH_M     (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  1)
-#define GFX_BELT3_SWITCH_M     (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  2)
-#define GFX_BELT4_SWITCH_M     (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  3)
-#define GFX_BELT1_SWITCH_R     (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  0)
-#define GFX_BELT2_SWITCH_R     (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  1)
-#define GFX_BELT3_SWITCH_R     (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  2)
-#define GFX_BELT4_SWITCH_R     (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  3)
+#define GFX_BELT1_SWITCH_LEFT  (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  0)
+#define GFX_BELT2_SWITCH_LEFT  (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  1)
+#define GFX_BELT3_SWITCH_LEFT  (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  2)
+#define GFX_BELT4_SWITCH_LEFT  (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  3)
+#define GFX_BELT1_SWITCH_MIDDLE        (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  0)
+#define GFX_BELT2_SWITCH_MIDDLE        (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  1)
+#define GFX_BELT3_SWITCH_MIDDLE        (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  2)
+#define GFX_BELT4_SWITCH_MIDDLE        (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  3)
+#define GFX_BELT1_SWITCH_RIGHT (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  0)
+#define GFX_BELT2_SWITCH_RIGHT (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  1)
+#define GFX_BELT3_SWITCH_RIGHT (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  2)
+#define GFX_BELT4_SWITCH_RIGHT (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  3)
 
 #define GFX_SWITCHGATE_OPEN    (GFX_START_ROCKSDC + 15 * DC_PER_LINE +  4)
 #define GFX_SWITCHGATE_CLOSED  (GFX_START_ROCKSDC + 15 * DC_PER_LINE +  0)
@@ -1384,14 +1387,8 @@ extern char              *element_info[];
 #define GFX_SIGN_EXIT          GFX_CHAR_FRAGE
 #define GFX_SIGN_YINYANG       GFX_CHAR_FRAGE
 #define GFX_SIGN_OTHER         GFX_CHAR_FRAGE
-#define GFX_MOLE_LEFT          GFX_CHAR_FRAGE
-#define GFX_MOLE_RIGHT         GFX_CHAR_FRAGE
-#define GFX_MOLE_UP            GFX_CHAR_FRAGE
-#define GFX_MOLE_DOWN          GFX_CHAR_FRAGE
 #define GFX_DX_UNKNOWN_15      GFX_CHAR_FRAGE
 #define GFX_DX_UNKNOWN_42      GFX_CHAR_FRAGE
-#define GFX_DX_UNKNOWN_229     GFX_CHAR_FRAGE
-#define GFX_DX_UNKNOWN_233     GFX_CHAR_FRAGE
 
 /* the names of the sounds */
 #define SND_ALCHEMY            0
index bd1a65f1002f60a94aeb7578c3d542e8f5e9767f..347ae23c65af4f0d71ff06518854fb645f6a2a46 100644 (file)
@@ -107,8 +107,8 @@ void DrawMainMenu()
 
   for(i=2; i<10; i++)
     DrawGraphic(0, i, GFX_KUGEL_BLAU);
-  DrawGraphic(10, 3, GFX_PFEIL_L);
-  DrawGraphic(14, 3, GFX_PFEIL_R);
+  DrawGraphic(10, 3, GFX_PFEIL_LEFT);
+  DrawGraphic(14, 3, GFX_PFEIL_RIGHT);
 
   DrawText(SX + 56, SY + 326, "A Game by Artsoft Entertainment",
           FS_SMALL, FC_RED);
@@ -380,10 +380,10 @@ static int helpscreen_action[] =
   GFX_MAMPFER2+1,1,1, GFX_MAMPFER2+0,1,1,                      HA_NEXT,
   GFX_ROBOT+0,4,1, GFX_ROBOT+3,1,1, GFX_ROBOT+2,1,1,
   GFX_ROBOT+1,1,1, GFX_ROBOT+0,1,1,                            HA_NEXT,
-  GFX_MAULWURF_DOWN,4,2,
-  GFX_MAULWURF_UP,4,2,
-  GFX_MAULWURF_LEFT,4,2,
-  GFX_MAULWURF_RIGHT,4,2,                                      HA_NEXT,
+  GFX_MOLE_DOWN,4,2,
+  GFX_MOLE_UP,4,2,
+  GFX_MOLE_LEFT,4,2,
+  GFX_MOLE_RIGHT,4,2,                                          HA_NEXT,
   GFX_PINGUIN_DOWN,4,2,
   GFX_PINGUIN_UP,4,2,
   GFX_PINGUIN_LEFT,4,2,
@@ -461,7 +461,7 @@ static char *helpscreen_eltext[][2] =
  {"Cruncher: Eats diamonds and you,",  "if you're not careful"},
  {"Cruncher (BD style):",              "Eats almost everything"},
  {"Robot: Tries to kill the player",   ""},
- {"The mole: You must guide him savely","to the exit; he will follow you"},
+ {"The mole: Eats the amoeba and turns","empty space into normal sand"},
  {"The penguin: Guide him to the exit,","but keep him away from monsters!"},
  {"The Pig: Harmless, but eats all",   "gems it can get"},
  {"The Dragon: Breathes fire,",                "especially to some monsters"},
@@ -828,10 +828,10 @@ static void drawChooseLevelList(int first_entry, int num_page_entries)
   }
 
   if (first_entry > 0)
-    DrawGraphic(0, 1, GFX_PFEIL_O);
+    DrawGraphic(0, 1, GFX_PFEIL_UP);
 
   if (first_entry + num_page_entries < num_leveldirs)
-    DrawGraphic(0, MAX_LEVEL_SERIES_ON_SCREEN + 1, GFX_PFEIL_U);
+    DrawGraphic(0, MAX_LEVEL_SERIES_ON_SCREEN + 1, GFX_PFEIL_DOWN);
 }
 
 static void drawChooseLevelInfo(int leveldir_nr)
@@ -1300,8 +1300,8 @@ void DrawSetupInputScreen()
   DrawGraphic(0, 3, GFX_KUGEL_BLAU);
   DrawGraphic(0, 4, GFX_KUGEL_BLAU);
   DrawGraphic(0, 15, GFX_KUGEL_BLAU);
-  DrawGraphic(10, 2, GFX_PFEIL_L);
-  DrawGraphic(12, 2, GFX_PFEIL_R);
+  DrawGraphic(10, 2, GFX_PFEIL_LEFT);
+  DrawGraphic(12, 2, GFX_PFEIL_RIGHT);
 
   DrawText(SX+32, SY+2*32, "Player:", FS_BIG, FC_GREEN);
   DrawText(SX+32, SY+3*32, "Device:", FS_BIG, FC_GREEN);
@@ -1381,10 +1381,10 @@ static void drawPlayerSetupInputInfo(int player_nr)
   }
 
   DrawText(SX+32, SY+5*32, "Actual Settings:", FS_BIG, FC_GREEN);
-  DrawGraphic(1, 6, GFX_PFEIL_L);
-  DrawGraphic(1, 7, GFX_PFEIL_R);
-  DrawGraphic(1, 8, GFX_PFEIL_O);
-  DrawGraphic(1, 9, GFX_PFEIL_U);
+  DrawGraphic(1, 6, GFX_PFEIL_LEFT);
+  DrawGraphic(1, 7, GFX_PFEIL_RIGHT);
+  DrawGraphic(1, 8, GFX_PFEIL_UP);
+  DrawGraphic(1, 9, GFX_PFEIL_DOWN);
   DrawText(SX+2*32, SY+6*32, ":", FS_BIG, FC_BLUE);
   DrawText(SX+2*32, SY+7*32, ":", FS_BIG, FC_BLUE);
   DrawText(SX+2*32, SY+8*32, ":", FS_BIG, FC_BLUE);
index 4403a9cedd220d636cae487874bc1b282a8ce31c..046d47c47dbefe1fc26f3bb83f506fad67d82c04 100644 (file)
@@ -1096,23 +1096,23 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element,
   {
     graphic = GFX2_SP_ELECTRON + getGraphicAnimationPhase(8, 2, ANIM_NORMAL);
   }
-  else if (element == EL_MAULWURF || element == EL_PINGUIN ||
+  else if (element == EL_MOLE || element == EL_PINGUIN ||
           element == EL_SCHWEIN || element == EL_DRACHE)
   {
     if (dir == MV_LEFT)
-      graphic = (element == EL_MAULWURF ? GFX_MAULWURF_LEFT :
+      graphic = (element == EL_MOLE ? GFX_MOLE_LEFT :
                 element == EL_PINGUIN ? GFX_PINGUIN_LEFT :
                 element == EL_SCHWEIN ? GFX_SCHWEIN_LEFT : GFX_DRACHE_LEFT);
     else if (dir == MV_RIGHT)
-      graphic = (element == EL_MAULWURF ? GFX_MAULWURF_RIGHT :
+      graphic = (element == EL_MOLE ? GFX_MOLE_RIGHT :
                 element == EL_PINGUIN ? GFX_PINGUIN_RIGHT :
                 element == EL_SCHWEIN ? GFX_SCHWEIN_RIGHT : GFX_DRACHE_RIGHT);
     else if (dir == MV_UP)
-      graphic = (element == EL_MAULWURF ? GFX_MAULWURF_UP :
+      graphic = (element == EL_MOLE ? GFX_MOLE_UP :
                 element == EL_PINGUIN ? GFX_PINGUIN_UP :
                 element == EL_SCHWEIN ? GFX_SCHWEIN_UP : GFX_DRACHE_UP);
     else
-      graphic = (element == EL_MAULWURF ? GFX_MAULWURF_DOWN :
+      graphic = (element == EL_MOLE ? GFX_MOLE_DOWN :
                 element == EL_PINGUIN ? GFX_PINGUIN_DOWN :
                 element == EL_SCHWEIN ? GFX_SCHWEIN_DOWN : GFX_DRACHE_DOWN);
 
@@ -2363,25 +2363,25 @@ int el2gfx(int element)
     case EL_SPIELER3:          return GFX_SPIELER3;
     case EL_SPIELER4:          return GFX_SPIELER4;
     case EL_KAEFER:            return GFX_KAEFER;
-    case EL_KAEFER_R:          return GFX_KAEFER_R;
-    case EL_KAEFER_O:          return GFX_KAEFER_O;
-    case EL_KAEFER_L:          return GFX_KAEFER_L;
-    case EL_KAEFER_U:          return GFX_KAEFER_U;
+    case EL_KAEFER_RIGHT:      return GFX_KAEFER_RIGHT;
+    case EL_KAEFER_UP:         return GFX_KAEFER_UP;
+    case EL_KAEFER_LEFT:       return GFX_KAEFER_LEFT;
+    case EL_KAEFER_DOWN:       return GFX_KAEFER_DOWN;
     case EL_FLIEGER:           return GFX_FLIEGER;
-    case EL_FLIEGER_R:         return GFX_FLIEGER_R;
-    case EL_FLIEGER_O:         return GFX_FLIEGER_O;
-    case EL_FLIEGER_L:         return GFX_FLIEGER_L;
-    case EL_FLIEGER_U:         return GFX_FLIEGER_U;
+    case EL_FLIEGER_RIGHT:     return GFX_FLIEGER_RIGHT;
+    case EL_FLIEGER_UP:                return GFX_FLIEGER_UP;
+    case EL_FLIEGER_LEFT:      return GFX_FLIEGER_LEFT;
+    case EL_FLIEGER_DOWN:      return GFX_FLIEGER_DOWN;
     case EL_BUTTERFLY:         return GFX_BUTTERFLY;
-    case EL_BUTTERFLY_R:       return GFX_BUTTERFLY_R;
-    case EL_BUTTERFLY_O:       return GFX_BUTTERFLY_O;
-    case EL_BUTTERFLY_L:       return GFX_BUTTERFLY_L;
-    case EL_BUTTERFLY_U:       return GFX_BUTTERFLY_U;
+    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_R:         return GFX_FIREFLY_R;
-    case EL_FIREFLY_O:         return GFX_FIREFLY_O;
-    case EL_FIREFLY_L:         return GFX_FIREFLY_L;
-    case EL_FIREFLY_U:         return GFX_FIREFLY_U;
+    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_MAMPFER:           return GFX_MAMPFER;
     case EL_ROBOT:             return GFX_ROBOT;
     case EL_BETON:             return GFX_BETON;
@@ -2427,10 +2427,10 @@ int el2gfx(int element)
     case EL_PFORTE4X:          return GFX_PFORTE4X;
     case EL_DYNAMITE_INACTIVE: return GFX_DYNAMIT_AUS;
     case EL_PACMAN:            return GFX_PACMAN;
-    case EL_PACMAN_R:          return GFX_PACMAN_R;
-    case EL_PACMAN_O:          return GFX_PACMAN_O;
-    case EL_PACMAN_L:          return GFX_PACMAN_L;
-    case EL_PACMAN_U:          return GFX_PACMAN_U;
+    case EL_PACMAN_RIGHT:      return GFX_PACMAN_RIGHT;
+    case EL_PACMAN_UP:         return GFX_PACMAN_UP;
+    case EL_PACMAN_LEFT:       return GFX_PACMAN_LEFT;
+    case EL_PACMAN_DOWN:       return GFX_PACMAN_DOWN;
     case EL_UNSICHTBAR:                return GFX_UNSICHTBAR;
     case EL_ERZ_EDEL:          return GFX_ERZ_EDEL;
     case EL_ERZ_DIAM:          return GFX_ERZ_DIAM;
@@ -2465,15 +2465,15 @@ int el2gfx(int element)
     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_MAULWURF:          return GFX_MAULWURF;
+    case EL_MOLE:              return GFX_MOLE;
     case EL_PINGUIN:           return GFX_PINGUIN;
     case EL_SCHWEIN:           return GFX_SCHWEIN;
     case EL_DRACHE:            return GFX_DRACHE;
     case EL_SONDE:             return GFX_SONDE;
-    case EL_PFEIL_L:           return GFX_PFEIL_L;
-    case EL_PFEIL_R:           return GFX_PFEIL_R;
-    case EL_PFEIL_O:           return GFX_PFEIL_O;
-    case EL_PFEIL_U:           return GFX_PFEIL_U;
+    case EL_PFEIL_LEFT:                return GFX_PFEIL_LEFT;
+    case EL_PFEIL_RIGHT:       return GFX_PFEIL_RIGHT;
+    case EL_PFEIL_UP:          return GFX_PFEIL_UP;
+    case EL_PFEIL_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;
@@ -2516,27 +2516,27 @@ int el2gfx(int element)
     case EL_BELT1_LEFT:                return GFX_BELT1_LEFT;
     case EL_BELT1_MIDDLE:      return GFX_BELT1_MIDDLE;
     case EL_BELT1_RIGHT:       return GFX_BELT1_RIGHT;
-    case EL_BELT1_SWITCH_L:    return GFX_BELT1_SWITCH_L;
-    case EL_BELT1_SWITCH_M:    return GFX_BELT1_SWITCH_M;
-    case EL_BELT1_SWITCH_R:    return GFX_BELT1_SWITCH_R;
+    case EL_BELT1_SWITCH_LEFT: return GFX_BELT1_SWITCH_LEFT;
+    case EL_BELT1_SWITCH_MIDDLE:return GFX_BELT1_SWITCH_MIDDLE;
+    case EL_BELT1_SWITCH_RIGHT:        return GFX_BELT1_SWITCH_RIGHT;
     case EL_BELT2_LEFT:                return GFX_BELT2_LEFT;
     case EL_BELT2_MIDDLE:      return GFX_BELT2_MIDDLE;
     case EL_BELT2_RIGHT:       return GFX_BELT2_RIGHT;
-    case EL_BELT2_SWITCH_L:    return GFX_BELT2_SWITCH_L;
-    case EL_BELT2_SWITCH_M:    return GFX_BELT2_SWITCH_M;
-    case EL_BELT2_SWITCH_R:    return GFX_BELT2_SWITCH_R;
+    case EL_BELT2_SWITCH_LEFT: return GFX_BELT2_SWITCH_LEFT;
+    case EL_BELT2_SWITCH_MIDDLE:return GFX_BELT2_SWITCH_MIDDLE;
+    case EL_BELT2_SWITCH_RIGHT:        return GFX_BELT2_SWITCH_RIGHT;
     case EL_BELT3_LEFT:                return GFX_BELT3_LEFT;
     case EL_BELT3_MIDDLE:      return GFX_BELT3_MIDDLE;
     case EL_BELT3_RIGHT:       return GFX_BELT3_RIGHT;
-    case EL_BELT3_SWITCH_L:    return GFX_BELT3_SWITCH_L;
-    case EL_BELT3_SWITCH_M:    return GFX_BELT3_SWITCH_M;
-    case EL_BELT3_SWITCH_R:    return GFX_BELT3_SWITCH_R;
+    case EL_BELT3_SWITCH_LEFT: return GFX_BELT3_SWITCH_LEFT;
+    case EL_BELT3_SWITCH_MIDDLE:return GFX_BELT3_SWITCH_MIDDLE;
+    case EL_BELT3_SWITCH_RIGHT:        return GFX_BELT3_SWITCH_RIGHT;
     case EL_BELT4_LEFT:                return GFX_BELT4_LEFT;
     case EL_BELT4_MIDDLE:      return GFX_BELT4_MIDDLE;
     case EL_BELT4_RIGHT:       return GFX_BELT4_RIGHT;
-    case EL_BELT4_SWITCH_L:    return GFX_BELT4_SWITCH_L;
-    case EL_BELT4_SWITCH_M:    return GFX_BELT4_SWITCH_M;
-    case EL_BELT4_SWITCH_R:    return GFX_BELT4_SWITCH_R;
+    case EL_BELT4_SWITCH_LEFT: return GFX_BELT4_SWITCH_LEFT;
+    case EL_BELT4_SWITCH_MIDDLE:return GFX_BELT4_SWITCH_MIDDLE;
+    case EL_BELT4_SWITCH_RIGHT:        return GFX_BELT4_SWITCH_RIGHT;
     case EL_LANDMINE:          return GFX_LANDMINE;
     case EL_ENVELOPE:          return GFX_ENVELOPE;
     case EL_LIGHT_SWITCH_OFF:  return GFX_LIGHT_SWITCH_OFF;
@@ -2561,8 +2561,6 @@ int el2gfx(int element)
     case EL_SAND_INVISIBLE:    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_DX_UNKNOWN_229:    return GFX_DX_UNKNOWN_229;
-    case EL_DX_UNKNOWN_233:    return GFX_DX_UNKNOWN_233;
 
     default:
     {