improved code for loading native EM levels
[rocksndiamonds.git] / src / game_em / convert.c
index e5bc5c6832cf21e08a90622422587a57bf48bc26..03dacc4e4f5d132d903617559447d285fa3b9f7a 100644 (file)
@@ -336,7 +336,7 @@ void prepare_em_level(void)
 
   lev.ball_time   = cav.ball_time;
   lev.ball_cnt    = cav.ball_time;
-  lev.ball_state  = cav.ball_state;
+  lev.ball_active = cav.ball_active;
   lev.ball_random = cav.ball_random;
   lev.ball_pos    = 0;
 
@@ -344,22 +344,22 @@ void prepare_em_level(void)
   lev.shine_cnt = 0;
 
   lev.lenses_time = cav.lenses_time;
-  lev.lenses_cnt  = cav.lenses_cnt;
+  lev.lenses_cnt  = cav.lenses_active ? cav.lenses_time : 0;
 
   lev.magnify_time = cav.magnify_time;
-  lev.magnify_cnt  = cav.magnify_cnt;
+  lev.magnify_cnt  = cav.magnify_active ? cav.magnify_time : 0;
 
   lev.wheel_time = cav.wheel_time;
-  lev.wheel_cnt  = cav.wheel_cnt;
+  lev.wheel_cnt  = cav.wheel_active ? cav.wheel_time : 0;
   lev.wheel_x    = cav.wheel_x;
   lev.wheel_y    = cav.wheel_y;
 
   lev.wind_time      = cav.wind_time;
-  lev.wind_cnt       = cav.wind_cnt;
+  lev.wind_cnt       = cav.wind_time;
   lev.wind_direction = cav.wind_direction;
 
-  lev.wonderwall_time  = cav.wonderwall_time;
-  lev.wonderwall_state = cav.wonderwall_state;
+  lev.wonderwall_time   = cav.wonderwall_time;
+  lev.wonderwall_active = cav.wonderwall_active;
 
   lev.killed_out_of_time = FALSE;
 
@@ -381,13 +381,13 @@ void prepare_em_level(void)
 
   for (i = 0; i < MAX_PLAYERS; i++)
   {
-    ply[i].exists = 0;
-    ply[i].alive_initial = FALSE;
+    ply[i].exists = FALSE;
+    ply[i].alive = FALSE;
 
     if (cav.player_x[i] != -1 &&
        cav.player_y[i] != -1)
     {
-      ply[i].exists = 1;
+      ply[i].exists = TRUE;
 
       lev.home_initial++;
     }
@@ -407,7 +407,7 @@ void prepare_em_level(void)
     {
       if (players_left)
       {
-       ply[i].alive_initial = TRUE;
+       ply[i].alive = TRUE;
        players_left--;
       }
       else
@@ -425,17 +425,22 @@ void prepare_em_level(void)
   for (i = 0; i < MAX_PLAYERS; i++)
   {
     ply[i].num = i;
-    ply[i].alive = ply[i].alive_initial;
     ply[i].dynamite = 0;
     ply[i].dynamite_cnt = 0;
     ply[i].keys = 0;
-    ply[i].anim = 0;
-    ply[i].oldx = ply[i].x = cav.player_x[i] + lev.left;
-    ply[i].oldy = ply[i].y = cav.player_y[i] + lev.top;
+    ply[i].anim = PLY_still;
+    ply[i].x = cav.player_x[i] + lev.left;
+    ply[i].y = cav.player_y[i] + lev.top;
+    ply[i].prev_x = ply[i].x;
+    ply[i].prev_y = ply[i].y;
     ply[i].last_move_dir = MV_NONE;
-    ply[i].joy_n = ply[i].joy_e = ply[i].joy_s = ply[i].joy_w = 0;
-    ply[i].joy_snap  = ply[i].joy_drop = 0;
-    ply[i].joy_stick = ply[i].joy_spin = 0;
+    ply[i].joy_n = 0;
+    ply[i].joy_e = 0;
+    ply[i].joy_s = 0;
+    ply[i].joy_w = 0;
+    ply[i].joy_snap = 0;
+    ply[i].joy_drop = 0;
+    ply[i].joy_stick = 0;
   }
 
   // the following engine variables are initialized to version-specific values