rnd-20050115-1-src
[rocksndiamonds.git] / src / game_em / input.c
index f04718f7e4a5b19000c457551d1355ee342cd2ec..62b25f550034231bc1962eef11b26ffdf16cdd62 100644 (file)
@@ -14,8 +14,6 @@ struct PLAYER ply1;
 struct PLAYER ply2;
 struct LEVEL lev;
 
-struct LevelInfo_EM native_em_level;
-
 unsigned short **Boom;
 unsigned short **Cave;
 unsigned short **Next;
@@ -72,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() */
@@ -102,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();
   }
 }
 
@@ -112,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;
@@ -127,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;
@@ -138,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;