added handling 64-bit random value bug with old tapes in EM engine
[rocksndiamonds.git] / src / game_em / convert.c
index d8a202d6166883b03cc5fbcdbd8987c407a248c8..2ea8e96215aeb08299cd39203a0f34502605ae64 100644 (file)
@@ -53,6 +53,8 @@ static const short map[CAVE_TILE_MAX] =
   [Cbomb]              = Xbomb,
   [Cnut]               = Xnut,
   [Cspring]            = Xspring,
+  [Cspring_e]          = Xspring_e,
+  [Cspring_w]          = Xspring_w,
   [Cpush_emerald_e]    = Xpush_emerald_e,
   [Cpush_emerald_w]    = Xpush_emerald_w,
   [Cpush_diamond_e]    = Xpush_diamond_e,
@@ -351,8 +353,8 @@ void prepare_em_level(void)
 
   lev.wheel_time = cav.wheel_time;
   lev.wheel_cnt  = cav.wheel_active ? cav.wheel_time : 0;
-  lev.wheel_x    = cav.wheel_x;
-  lev.wheel_y    = cav.wheel_y;
+  lev.wheel_x    = cav.wheel_x + lev.left;
+  lev.wheel_y    = cav.wheel_y + lev.top;
 
   lev.wind_time      = cav.wind_time;
   lev.wind_cnt       = cav.wind_time;
@@ -363,7 +365,8 @@ void prepare_em_level(void)
 
   lev.killed_out_of_time = FALSE;
 
-  lev.num_ball_arrays = cav.num_ball_arrays;
+  lev.num_eater_arrays = cav.num_eater_arrays;
+  lev.num_ball_arrays  = cav.num_ball_arrays;
 
   for (i = 0; i < 8; i++)
     for (j = 0; j < 9; j++)
@@ -404,7 +407,7 @@ void prepare_em_level(void)
   /* assign active players */
   for (i = 0; i < MAX_PLAYERS; i++)
   {
-    if (ply[i].exists)
+    if (ply[i].exists && isActivePlayer_EM(i))
     {
       if (players_left)
       {
@@ -458,7 +461,12 @@ void prepare_em_level(void)
   //
   // - game_em.use_single_button (default: TRUE)
   // - game_em.use_snap_key_bug (default: FALSE)
+  // - game_em.use_random_bug (default: FALSE)
   // - game_em.use_old_explosions (default: FALSE)
+  // - game_em.use_old_android (default: FALSE)
+  // - game_em.use_old_push_elements (default: FALSE)
+  // - game_em.use_old_push_into_acid (default: FALSE)
+  // - game_em.use_wrap_around (default: TRUE)
 
   game_em.level_solved = FALSE;
   game_em.game_over = FALSE;