rnd-20041004-1-src
[rocksndiamonds.git] / src / game_em / convert.c
index aa6df647e985a787f0fd67d3caf536ff50753d34..3f86d332a3157c233d5127e621259ffd729a93b8 100644 (file)
@@ -13,8 +13,6 @@
 #include "level.h"
 
 
-#if defined(TARGET_X11)
-
 static unsigned char remap_v6[256] =
 {
   /* filter crap for v6 */
@@ -246,7 +244,7 @@ boolean cleanup_em_level(unsigned char *src, int *length)
   src[2098] &= 7;
   src[src[2098] << 8 | src[2099]] = 128;
 
-  /* ameuba speed */
+  /* amoeba speed */
   if ((src[2100] << 8 | src[2101]) > 9999)
   {
     src[2100] = 39;
@@ -408,7 +406,7 @@ static unsigned short remap_emerald[256] =
   Xblank, Xround_wall_1, Xgrass, Xsteel_1, Xwall_1, Xkey_1, Xkey_2, Xkey_3,
   Xkey_4, Xdoor_1, Xdoor_2, Xdoor_3, Xdoor_4, Xdripper, Xfake_door_1, Xfake_door_2,
   Xfake_door_3, Xfake_door_4, Xwonderwall, Xwheel, Xsand, Xacid_nw, Xacid_ne, Xacid_sw,
-  Xacid_se, Xfake_blank, Xameuba_1, Xameuba_2, Xameuba_3, Xameuba_4, Xexit, Xalpha_arrow_w,
+  Xacid_se, Xfake_blank, Xamoeba_1, Xamoeba_2, Xamoeba_3, Xamoeba_4, Xexit, Xalpha_arrow_w,
   Xfake_grass, Xlenses, Xmagnify, Xfake_blank, Xfake_grass, Xswitch, Xswitch, Xblank,
   Xdecor_8, Xdecor_9, Xdecor_10, Xdecor_5, Xalpha_comma, Xalpha_quote, Xalpha_minus, Xdynamite,
   Xsteel_3, Xdecor_6, Xdecor_7, Xsteel_2, Xround_wall_2, Xdecor_2, Xdecor_4, Xdecor_3,
@@ -425,7 +423,11 @@ static unsigned short remap_emerald[256] =
 
 void convert_em_level(unsigned char *src)
 {
-  unsigned int x, y, temp;
+  static int eater_offset[8] =
+  {
+    0x800, 0x809, 0x812, 0x81B, 0x840, 0x849, 0x852, 0x85B
+  };
+  unsigned int i, x, y, temp;
 
   temp = ((src[0x83E] << 8 | src[0x83F]) * 25 + 3) / 4;
   if (temp == 0 || temp > 9999)
@@ -443,7 +445,7 @@ void convert_em_level(unsigned char *src)
   temp = (src[0x834] << 8 | src[0x835]) * 28;
   if (temp > 9999)
     temp = 9999;
-  lev.ameuba_time = temp;
+  lev.amoeba_time = temp;
 
   lev.android_move_time = src[0x874] << 8 | src[0x875];
   lev.android_clone_time = src[0x876] << 8 | src[0x877];
@@ -488,22 +490,9 @@ void convert_em_level(unsigned char *src)
   lev.wonderwall_state_initial = 0;
   lev.wonderwall_time_initial = src[0x836] << 8 | src[0x837];
 
-  for (x = 0; x < 9; x++)
-    lev.eater_array[0][x] = remap_emerald[src[0x800 + x]];
-  for (x = 0; x < 9; x++)
-    lev.eater_array[1][x] = remap_emerald[src[0x809 + x]];
-  for (x = 0; x < 9; x++)
-    lev.eater_array[2][x] = remap_emerald[src[0x812 + x]];
-  for (x = 0; x < 9; x++)
-    lev.eater_array[3][x] = remap_emerald[src[0x81B + x]];
-  for (x = 0; x < 9; x++)
-    lev.eater_array[4][x] = remap_emerald[src[0x840 + x]];
-  for (x = 0; x < 9; x++)
-    lev.eater_array[5][x] = remap_emerald[src[0x849 + x]];
-  for (x = 0; x < 9; x++)
-    lev.eater_array[6][x] = remap_emerald[src[0x852 + x]];
-  for (x = 0; x < 9; x++)
-    lev.eater_array[7][x] = remap_emerald[src[0x85B + x]];
+  for (i = 0; i < 8; i++)
+    for (x = 0; x < 9; x++)
+      lev.eater_array[i][x] = remap_emerald[src[eater_offset[i] + x]];
 
   temp = remap_emerald[src[0x86F]];
   for (y = 0; y < 8; y++)
@@ -515,14 +504,14 @@ void convert_em_level(unsigned char *src)
     }
     else
     {
-      lev.ball_array[y][1] = (src[0x873] & 1) ? temp : Xblank;  /* north */
-      lev.ball_array[y][6] = (src[0x873] & 2) ? temp : Xblank;  /* south */
-      lev.ball_array[y][3] = (src[0x873] & 4) ? temp : Xblank;  /* west */
-      lev.ball_array[y][4] = (src[0x873] & 8) ? temp : Xblank;  /* east */
+      lev.ball_array[y][1] = (src[0x873] & 1)  ? temp : Xblank; /* north */
+      lev.ball_array[y][6] = (src[0x873] & 2)  ? temp : Xblank; /* south */
+      lev.ball_array[y][3] = (src[0x873] & 4)  ? temp : Xblank; /* west */
+      lev.ball_array[y][4] = (src[0x873] & 8)  ? temp : Xblank; /* east */
       lev.ball_array[y][7] = (src[0x873] & 16) ? temp : Xblank; /* southeast */
       lev.ball_array[y][5] = (src[0x873] & 32) ? temp : Xblank; /* southwest */
       lev.ball_array[y][2] = (src[0x873] & 64) ? temp : Xblank; /* northeast */
-      lev.ball_array[y][0] = (src[0x873] & 128) ? temp : Xblank;/* northwest */
+      lev.ball_array[y][0] = (src[0x873] & 128)? temp : Xblank; /* northwest */
     }
   }
 
@@ -677,14 +666,14 @@ void convert_em_level(unsigned char *src)
   {
     lev.android_array[Xdripper] =
       lev.android_array[XdripperB] =
-      lev.android_array[Xameuba_1] =
-      lev.android_array[Xameuba_2] =
-      lev.android_array[Xameuba_3] =
-      lev.android_array[Xameuba_4] =
-      lev.android_array[Xameuba_5] =
-      lev.android_array[Xameuba_6] =
-      lev.android_array[Xameuba_7] =
-      lev.android_array[Xameuba_8] = Xdrip_eat;
+      lev.android_array[Xamoeba_1] =
+      lev.android_array[Xamoeba_2] =
+      lev.android_array[Xamoeba_3] =
+      lev.android_array[Xamoeba_4] =
+      lev.android_array[Xamoeba_5] =
+      lev.android_array[Xamoeba_6] =
+      lev.android_array[Xamoeba_7] =
+      lev.android_array[Xamoeba_8] = Xdrip_eat;
   }
 
   if (temp & 4096)
@@ -851,5 +840,3 @@ void prepare_em_level(void)
   ply2.joy_n = ply2.joy_e = ply2.joy_s = ply2.joy_w = ply2.joy_fire = 0;
   ply2.joy_stick = ply2.joy_spin = 0;
 }
-
-#endif