changed name of game element in EM engine
[rocksndiamonds.git] / src / tools.c
index 24e227768b9f420b582675d2cda7a33cdc7915c2..366303b22e49d5236b65e5ebe2b04186a6cd8f8e 100644 (file)
@@ -23,8 +23,6 @@
 #include "screens.h"
 
 
-// select level set with EMC X11 graphics before activating EM GFX debugging
-#define DEBUG_EM_GFX           FALSE
 #define DEBUG_FRAME_TIME       FALSE
 
 // tool button identifiers
@@ -299,7 +297,7 @@ static int getLevelFromScreenY_RND(int sy)
 
 static int getLevelFromScreenX_EM(int sx)
 {
-  int level_xsize = level.native_em_level->lev->width;
+  int level_xsize = level.native_em_level->cav->width;
   int full_xsize = level_xsize * TILESIZE_VAR;
 
   sx -= (full_xsize < SXSIZE ? (SXSIZE - full_xsize) / 2 : 0);
@@ -316,7 +314,7 @@ static int getLevelFromScreenX_EM(int sx)
 
 static int getLevelFromScreenY_EM(int sy)
 {
-  int level_ysize = level.native_em_level->lev->height;
+  int level_ysize = level.native_em_level->cav->height;
   int full_ysize = level_ysize * TILESIZE_VAR;
 
   sy -= (full_ysize < SYSIZE ? (SYSIZE - full_ysize) / 2 : 0);
@@ -5740,17 +5738,64 @@ static struct Mapping_EM_to_RND_object
 }
 em_object_mapping_list[] =
 {
+  {
+    Zborder,                           FALSE,  FALSE,
+    EL_EMPTY,                          -1, -1
+  },
+  {
+    Zplayer,                           FALSE,  FALSE,
+    EL_EMPTY,                          -1, -1
+  },
+
+  {
+    Zbug,                              FALSE,  FALSE,
+    EL_EMPTY,                          -1, -1
+  },
+  {
+    Ztank,                             FALSE,  FALSE,
+    EL_EMPTY,                          -1, -1
+  },
+  {
+    Zeater,                            FALSE,  FALSE,
+    EL_EMPTY,                          -1, -1
+  },
+  {
+    Zdynamite,                         FALSE,  FALSE,
+    EL_EMPTY,                          -1, -1
+  },
+
+  {
+    Xboom_bug,                         FALSE,  FALSE,
+    EL_BUG,                            ACTION_EXPLODING, -1
+  },
+  {
+    Xboom_tank,                                FALSE,  FALSE,
+    EL_SPACESHIP,                      ACTION_EXPLODING, -1
+  },
+  {
+    Xboom_android,                     FALSE,  FALSE,
+    EL_EMC_ANDROID,                    ACTION_OTHER, -1
+  },
+  {
+    Xboom_1,                           FALSE,  FALSE,
+    EL_DEFAULT,                                ACTION_EXPLODING, -1
+  },
+  {
+    Xboom_2,                           FALSE,  FALSE,
+    EL_DEFAULT,                                ACTION_EXPLODING, -1
+  },
+
   {
     Xblank,                            TRUE,   FALSE,
     EL_EMPTY,                          -1, -1
   },
 
   {
-    Xacid_splash_e,                    FALSE,  FALSE,
+    Xsplash_e,                         FALSE,  FALSE,
     EL_ACID_SPLASH_RIGHT,              -1, -1
   },
   {
-    Xacid_splash_w,                    FALSE,  FALSE,
+    Xsplash_w,                         FALSE,  FALSE,
     EL_ACID_SPLASH_LEFT,               -1, -1
   },
 
@@ -6864,7 +6909,7 @@ em_object_mapping_list[] =
     EL_MAGIC_WALL,                     -1, -1
   },
   {
-    XwonderwallB,                      FALSE,  FALSE,
+    Ywonderwall,                       FALSE,  FALSE,
     EL_MAGIC_WALL,                     ACTION_ACTIVE, -1
   },
 
@@ -6873,7 +6918,7 @@ em_object_mapping_list[] =
     EL_ROBOT_WHEEL,                    -1, -1
   },
   {
-    XwheelB,                           FALSE,  FALSE,
+    Ywheel,                            FALSE,  FALSE,
     EL_ROBOT_WHEEL,                    ACTION_ACTIVE, -1
   },
 
@@ -6882,7 +6927,7 @@ em_object_mapping_list[] =
     EL_EMC_MAGIC_BALL_SWITCH,          -1, -1
   },
   {
-    XswitchB,                          FALSE,  FALSE,
+    Yswitch,                           FALSE,  FALSE,
     EL_EMC_MAGIC_BALL_SWITCH,          ACTION_ACTIVE, -1
   },
 
@@ -6891,7 +6936,7 @@ em_object_mapping_list[] =
     EL_EMC_SPRING_BUMPER,              -1, -1
   },
   {
-    XbumperB,                          FALSE,  FALSE,
+    Ybumper,                           FALSE,  FALSE,
     EL_EMC_SPRING_BUMPER,              ACTION_ACTIVE, -1
   },
 
@@ -6921,7 +6966,7 @@ em_object_mapping_list[] =
     EL_INVISIBLE_WALL,                 -1, -1
   },
   {
-    Xfake_blankB,                      FALSE,  FALSE,
+    Yfake_blank,                       FALSE,  FALSE,
     EL_INVISIBLE_WALL,                 ACTION_ACTIVE, -1
   },
 
@@ -6930,7 +6975,7 @@ em_object_mapping_list[] =
     EL_EMC_FAKE_GRASS,                 -1, -1
   },
   {
-    Xfake_grassB,                      FALSE,  FALSE,
+    Yfake_grass,                       FALSE,  FALSE,
     EL_EMC_FAKE_GRASS,                 ACTION_ACTIVE, -1
   },
 
@@ -6939,7 +6984,7 @@ em_object_mapping_list[] =
     EL_EMC_DRIPPER,                    -1, -1
   },
   {
-    Xfake_amoebaB,                     FALSE,  FALSE,
+    Yfake_amoeba,                      FALSE,  FALSE,
     EL_EMC_DRIPPER,                    ACTION_ACTIVE, -1
   },
 
@@ -7027,19 +7072,19 @@ em_object_mapping_list[] =
   },
 
   {
-    Xslidewall_ns,                     TRUE,   FALSE,
+    Xslide_ns,                         TRUE,   FALSE,
     EL_EXPANDABLE_WALL_VERTICAL,       -1, -1
   },
   {
-    Yslidewall_ns_blank,               FALSE,  FALSE,
+    Yslide_ns_blank,                   FALSE,  FALSE,
     EL_EXPANDABLE_WALL_VERTICAL,       ACTION_GROWING, -1
   },
   {
-    Xslidewall_ew,                     TRUE,   FALSE,
+    Xslide_ew,                         TRUE,   FALSE,
     EL_EXPANDABLE_WALL_HORIZONTAL,     -1, -1
   },
   {
-    Yslidewall_ew_blank,               FALSE,  FALSE,
+    Yslide_ew_blank,                   FALSE,  FALSE,
     EL_EXPANDABLE_WALL_HORIZONTAL,     ACTION_GROWING, -1
   },
 
@@ -7424,43 +7469,6 @@ em_object_mapping_list[] =
     EL_SAND,                           ACTION_SNAPPING, -1
   },
 
-  {
-    Xboom_bug,                         FALSE,  FALSE,
-    EL_BUG,                            ACTION_EXPLODING, -1
-  },
-  {
-    Xboom_bomb,                                FALSE,  FALSE,
-    EL_BOMB,                           ACTION_EXPLODING, -1
-  },
-  {
-    Xboom_android,                     FALSE,  FALSE,
-    EL_EMC_ANDROID,                    ACTION_OTHER, -1
-  },
-  {
-    Xboom_1,                           FALSE,  FALSE,
-    EL_DEFAULT,                                ACTION_EXPLODING, -1
-  },
-  {
-    Xboom_2,                           FALSE,  FALSE,
-    EL_DEFAULT,                                ACTION_EXPLODING, -1
-  },
-  {
-    Znormal,                           FALSE,  FALSE,
-    EL_EMPTY,                          -1, -1
-  },
-  {
-    Zdynamite,                         FALSE,  FALSE,
-    EL_EMPTY,                          -1, -1
-  },
-  {
-    Zplayer,                           FALSE,  FALSE,
-    EL_EMPTY,                          -1, -1
-  },
-  {
-    Zborder,                           FALSE,  FALSE,
-    EL_EMPTY,                          -1, -1
-  },
-
   {
     -1,                                        FALSE,  FALSE,
     -1,                                        -1, -1
@@ -7753,11 +7761,11 @@ int map_element_EM_to_RND(int element_em)
 void map_android_clone_elements_RND_to_EM(struct LevelInfo *level)
 {
   struct LevelInfo_EM *level_em = level->native_em_level;
-  struct LEVEL *lev = level_em->lev;
+  struct CAVE *cav = level_em->cav;
   int i, j;
 
   for (i = 0; i < TILE_MAX; i++)
-    lev->android_array[i] = Xblank;
+    cav->android_array[i] = Xblank;
 
   for (i = 0; i < level->num_android_clone_elements; i++)
   {
@@ -7766,21 +7774,21 @@ void map_android_clone_elements_RND_to_EM(struct LevelInfo *level)
 
     for (j = 0; em_object_mapping_list[j].element_em != -1; j++)
       if (em_object_mapping_list[j].element_rnd == element_rnd)
-       lev->android_array[em_object_mapping_list[j].element_em] = element_em;
+       cav->android_array[em_object_mapping_list[j].element_em] = element_em;
   }
 }
 
 void map_android_clone_elements_EM_to_RND(struct LevelInfo *level)
 {
   struct LevelInfo_EM *level_em = level->native_em_level;
-  struct LEVEL *lev = level_em->lev;
+  struct CAVE *cav = level_em->cav;
   int i, j;
 
   level->num_android_clone_elements = 0;
 
   for (i = 0; i < TILE_MAX; i++)
   {
-    int element_em = lev->android_array[i];
+    int element_em = cav->android_array[i];
     int element_rnd;
     boolean element_found = FALSE;
 
@@ -8249,8 +8257,8 @@ static int get_effective_element_EM(int tile, int frame_em)
   {
     switch (tile)
     {
-      case Xacid_splash_e:
-      case Xacid_splash_w:
+      case Xsplash_e:
+      case Xsplash_w:
        return (frame_em > 5 ? EL_EMPTY : element);
 
       default:
@@ -8261,8 +8269,8 @@ static int get_effective_element_EM(int tile, int frame_em)
   {
     switch (tile)
     {
-      case Xacid_splash_e:
-      case Xacid_splash_w:
+      case Xsplash_e:
+      case Xsplash_w:
        return EL_EMPTY;
 
       case Ynut_stone:
@@ -8330,8 +8338,8 @@ static boolean check_linear_animation_EM(int tile)
     case Ytank_s_e:
     case Ytank_w_s:
     case Ytank_n_w:
-    case Xacid_splash_e:
-    case Xacid_splash_w:
+    case Xsplash_e:
+    case Xsplash_w:
     case Ynut_stone:
       return TRUE;
   }
@@ -8578,19 +8586,6 @@ void InitGraphicInfo_EM(void)
 {
   int i, j, p;
 
-#if DEBUG_EM_GFX
-  int num_em_gfx_errors = 0;
-
-  if (graphic_info_em_object[0][0].bitmap == NULL)
-  {
-    // EM graphics not yet initialized in em_open_all()
-
-    return;
-  }
-
-  printf("::: [4 errors can be ignored (1 x 'bomb', 3 x 'em_dynamite']\n");
-#endif
-
   // always start with reliable default values
   for (i = 0; i < TILE_MAX; i++)
   {
@@ -8782,13 +8777,13 @@ void InitGraphicInfo_EM(void)
                        i == Xboom_bug && j == 5 ? 2 :
                        i == Xboom_bug && j == 6 ? 2 :
                        i == Xboom_bug && j == 7 ? 0 :
-                       i == Xboom_bomb && j == 1 ? 2 :
-                       i == Xboom_bomb && j == 2 ? 2 :
-                       i == Xboom_bomb && j == 3 ? 4 :
-                       i == Xboom_bomb && j == 4 ? 4 :
-                       i == Xboom_bomb && j == 5 ? 2 :
-                       i == Xboom_bomb && j == 6 ? 2 :
-                       i == Xboom_bomb && j == 7 ? 0 :
+                       i == Xboom_tank && j == 1 ? 2 :
+                       i == Xboom_tank && j == 2 ? 2 :
+                       i == Xboom_tank && j == 3 ? 4 :
+                       i == Xboom_tank && j == 4 ? 4 :
+                       i == Xboom_tank && j == 5 ? 2 :
+                       i == Xboom_tank && j == 6 ? 2 :
+                       i == Xboom_tank && j == 7 ? 0 :
                        i == Xboom_android && j == 7 ? 6 :
                        i == Xboom_1 && j == 1 ? 2 :
                        i == Xboom_1 && j == 2 ? 2 :
@@ -8808,13 +8803,6 @@ void InitGraphicInfo_EM(void)
                        special_animation && j == 4 ? 3 :
                        effective_action != action ? 0 :
                        j);
-
-#if DEBUG_EM_GFX
-      Bitmap *debug_bitmap = g_em->bitmap;
-      int debug_src_x = g_em->src_x;
-      int debug_src_y = g_em->src_y;
-#endif
-
       int frame = getAnimationFrame(g->anim_frames,
                                    g->anim_delay,
                                    g->anim_mode,
@@ -8910,74 +8898,6 @@ void InitGraphicInfo_EM(void)
         bit  5 -  0 ( 6 bit): graphic height */
       g_em->unique_identifier =
        (graphic << 16) | (frame << 12) | (g_em->width << 6) | g_em->height;
-
-#if DEBUG_EM_GFX
-
-      // skip check for EMC elements not contained in original EMC artwork
-      if (element == EL_EMC_FAKE_ACID)
-       continue;
-
-      if (g_em->bitmap != debug_bitmap ||
-         g_em->src_x != debug_src_x ||
-         g_em->src_y != debug_src_y ||
-         g_em->src_offset_x != 0 ||
-         g_em->src_offset_y != 0 ||
-         g_em->dst_offset_x != 0 ||
-         g_em->dst_offset_y != 0 ||
-         g_em->width != TILEX ||
-         g_em->height != TILEY)
-      {
-       static int last_i = -1;
-
-       if (i != last_i)
-       {
-         printf("\n");
-         last_i = i;
-       }
-
-       printf("::: EMC GFX ERROR for element %d -> %d ('%s', '%s', %d)",
-              i, element, element_info[element].token_name,
-              element_action_info[effective_action].suffix, direction);
-
-       if (element != effective_element)
-         printf(" [%d ('%s')]",
-                effective_element,
-                element_info[effective_element].token_name);
-
-       printf("\n");
-
-       if (g_em->bitmap != debug_bitmap)
-         printf("    %d (%d): different bitmap! (0x%08x != 0x%08x)\n",
-                j, is_backside, (int)(g_em->bitmap), (int)(debug_bitmap));
-
-       if (g_em->src_x != debug_src_x ||
-           g_em->src_y != debug_src_y)
-         printf("    frame %d (%c): %d,%d (%d,%d) should be %d,%d (%d,%d)\n",
-                j, (is_backside ? 'B' : 'F'),
-                g_em->src_x, g_em->src_y,
-                g_em->src_x / 32, g_em->src_y / 32,
-                debug_src_x, debug_src_y,
-                debug_src_x / 32, debug_src_y / 32);
-
-       if (g_em->src_offset_x != 0 ||
-           g_em->src_offset_y != 0 ||
-           g_em->dst_offset_x != 0 ||
-           g_em->dst_offset_y != 0)
-         printf("    %d (%d): offsets %d,%d and %d,%d should be all 0\n",
-                j, is_backside,
-                g_em->src_offset_x, g_em->src_offset_y,
-                g_em->dst_offset_x, g_em->dst_offset_y);
-
-       if (g_em->width != TILEX ||
-           g_em->height != TILEY)
-         printf("    %d (%d): size %d,%d should be %d,%d\n",
-                j, is_backside,
-                g_em->width, g_em->height, TILEX, TILEY);
-
-       num_em_gfx_errors++;
-      }
-#endif
-
     }
   }
 
@@ -9045,13 +8965,6 @@ void InitGraphicInfo_EM(void)
        Bitmap *src_bitmap;
        int src_x, src_y;
        int sync_frame = j;
-
-#if DEBUG_EM_GFX
-       Bitmap *debug_bitmap = g_em->bitmap;
-       int debug_src_x = g_em->src_x;
-       int debug_src_y = g_em->src_y;
-#endif
-
        int frame = getAnimationFrame(g->anim_frames,
                                      g->anim_delay,
                                      g->anim_mode,
@@ -9069,64 +8982,9 @@ void InitGraphicInfo_EM(void)
        g_em->dst_offset_y = 0;
        g_em->width  = TILEX;
        g_em->height = TILEY;
-
-#if DEBUG_EM_GFX
-
-       // skip check for EMC elements not contained in original EMC artwork
-       if (element == EL_PLAYER_3 ||
-           element == EL_PLAYER_4)
-         continue;
-
-       if (g_em->bitmap != debug_bitmap ||
-           g_em->src_x != debug_src_x ||
-           g_em->src_y != debug_src_y)
-       {
-         static int last_i = -1;
-
-         if (i != last_i)
-         {
-           printf("\n");
-           last_i = i;
-         }
-
-         printf("::: EMC GFX ERROR for p/a %d/%d -> %d ('%s', '%s', %d)",
-                p, i, element, element_info[element].token_name,
-                element_action_info[effective_action].suffix, direction);
-
-         if (element != effective_element)
-           printf(" [%d ('%s')]",
-                  effective_element,
-                  element_info[effective_element].token_name);
-
-         printf("\n");
-
-         if (g_em->bitmap != debug_bitmap)
-           printf("    %d: different bitmap! (0x%08x != 0x%08x)\n",
-                  j, (int)(g_em->bitmap), (int)(debug_bitmap));
-
-         if (g_em->src_x != debug_src_x ||
-             g_em->src_y != debug_src_y)
-           printf("    frame %d: %d,%d (%d,%d) should be %d,%d (%d,%d)\n",
-                  j,
-                  g_em->src_x, g_em->src_y,
-                  g_em->src_x / 32, g_em->src_y / 32,
-                  debug_src_x, debug_src_y,
-                  debug_src_x / 32, debug_src_y / 32);
-
-         num_em_gfx_errors++;
-       }
-#endif
-
       }
     }
   }
-
-#if DEBUG_EM_GFX
-  printf("\n");
-  printf("::: [%d errors found]\n", num_em_gfx_errors);
-
-  exit(0);
-#endif
 }
 
 static void CheckSaveEngineSnapshot_EM(byte action[MAX_PLAYERS], int frame,