rnd-20050115-1-src
[rocksndiamonds.git] / src / game_em / input.c
index 98a896e191209aae6604c238e9125e82f0c25276..62b25f550034231bc1962eef11b26ffdf16cdd62 100644 (file)
@@ -70,7 +70,11 @@ void InitGameEngine_EM()
 void GameActions_EM(byte action)
 {
   static unsigned long game_frame_delay = 0;
+#if 1
+  unsigned long game_frame_delay_value = getGameFrameDelay_EM(20);
+#else
   unsigned long game_frame_delay_value = getGameFrameDelay_EM(25);
+#endif
 
 #if 0
   /* this is done in screens.c/HandleGameActions() by calling BackToFront() */
@@ -100,8 +104,8 @@ void GameActions_EM(byte action)
     synchro_3();
     sound_play();
 
-    DrawGameDoorValues_EM(lev.required, ply1.dynamite, lev.score,
-                         (lev.time + 4) / 5);
+    if (game_frame_delay_value > 0)    /* do not redraw values in warp mode */
+      DrawGameDoorValues_EM();
   }
 }
 
@@ -110,7 +114,8 @@ void GameActions_EM(byte action)
 
 void readjoy(byte action)
 {
-  unsigned int north = 0, east = 0, south = 0, west = 0, fire = 0;
+  unsigned int north = 0, east = 0, south = 0, west = 0;
+  unsigned int snap = 0, drop = 0;
 
   if (action & JOY_LEFT)
     west = 1;
@@ -125,10 +130,14 @@ void readjoy(byte action)
     south = 1;
 
   if (action & JOY_BUTTON_1)
-    fire = 1;
+    snap = 1;
+
+  if (action & JOY_BUTTON_2)
+    drop = 1;
 
 #if 1
-  ply1.joy_fire = fire;
+  ply1.joy_snap = snap;
+  ply1.joy_drop = drop;
   if (ply1.joy_stick || (north | east | south | west))
   {
     ply1.joy_n = north;
@@ -136,8 +145,11 @@ void readjoy(byte action)
     ply1.joy_s = south;
     ply1.joy_w = west;
   }
+
 #else
-  ply2.joy_fire = fire;
+
+  ply2.joy_snap = snap;
+  ply2.joy_drop = drop;
   if (ply2.joy_stick || (north | east | south | west))
   {
     ply2.joy_n = north;