rnd-20050117-1-src
[rocksndiamonds.git] / src / game_em / convert.c
index 12d7f351220687318c3a1b9dc371efc0bd790915..9e253dad12e75f8755a7f16376d9e9b944e32096 100644 (file)
@@ -434,10 +434,17 @@ void convert_em_level(unsigned char *src, int file_version)
   };
   unsigned int i, x, y, temp;
 
+#if 1
+  lev.time_seconds = src[0x83E] << 8 | src[0x83F];
+  if (lev.time_seconds > 9999)
+    lev.time_seconds = 9999;
+#else
   temp = ((src[0x83E] << 8 | src[0x83F]) * 25 + 3) / 4;
   if (temp == 0 || temp > 9999)
     temp = 9999;
   lev.time_initial = temp;
+#endif
+
   lev.required_initial = src[0x82F];
 
   temp = src[0x830] << 8 | src[0x831];
@@ -779,7 +786,9 @@ void prepare_em_level(void)
     for (x = 0; x < WIDTH; x++)
       Draw[y][x] = Cave[y][x];
 
+  lev.time_initial = (lev.time_seconds * 50 + 7) / 8;
   lev.time = lev.time_initial;
+
   lev.required = lev.required_initial;
   lev.score = 0;
 
@@ -816,7 +825,9 @@ void prepare_em_level(void)
   ply1.anim = 0;
   ply1.oldx = ply1.x = ply1.x_initial;
   ply1.oldy = ply1.y = ply1.y_initial;
-  ply1.joy_n = ply1.joy_e = ply1.joy_s = ply1.joy_w = ply1.joy_fire = 0;
+  ply1.last_move_dir = MV_NO_MOVING;
+  ply1.joy_n = ply1.joy_e = ply1.joy_s = ply1.joy_w = 0;
+  ply1.joy_snap = ply1.joy_drop = 0;
   ply1.joy_stick = ply1.joy_spin = 0;
 
   ply2.num = 1;
@@ -827,6 +838,8 @@ void prepare_em_level(void)
   ply2.anim = 0;
   ply2.oldx = ply2.x = ply2.x_initial;
   ply2.oldy = ply2.y = ply2.y_initial;
-  ply2.joy_n = ply2.joy_e = ply2.joy_s = ply2.joy_w = ply2.joy_fire = 0;
+  ply2.last_move_dir = MV_NO_MOVING;
+  ply2.joy_n = ply2.joy_e = ply2.joy_s = ply2.joy_w = 0;
+  ply2.joy_snap = ply1.joy_drop = 0;
   ply2.joy_stick = ply2.joy_spin = 0;
 }