rnd-20060226-3-src
[rocksndiamonds.git] / src / events.c
index 410c34c28864a56a07725b3acf1aef253194899e..4d7a7a36d68ee479fb0b8c1644c6935f5a5212cf 100644 (file)
@@ -566,7 +566,6 @@ static void HandleKeysSpecial(Key key)
 
 void HandleKey(Key key, int key_status)
 {
-  int joy = 0;
   boolean anyTextGadgetActiveOrJustFinished = anyTextGadgetActive();
   static struct SetupKeyboardInfo custom_key;
   static struct
@@ -583,6 +582,8 @@ void HandleKey(Key key, int key_status)
     { &custom_key.snap,  DEFAULT_KEY_SNAP,  JOY_BUTTON_1 },
     { &custom_key.drop,  DEFAULT_KEY_DROP,  JOY_BUTTON_2 }
   };
+  int joy = 0;
+  int i;
 
   if (game_status == GAME_MODE_PLAYING)
   {
@@ -593,7 +594,6 @@ void HandleKey(Key key, int key_status)
 
     for (pnr = 0; pnr < MAX_PLAYERS; pnr++)
     {
-      int i;
       byte key_action = 0;
 
       if (setup.input[pnr].use_joystick)
@@ -649,8 +649,6 @@ void HandleKey(Key key, int key_status)
   }
   else
   {
-    int i;
-
     for (i = 0; i < 6; i++)
       if (key == key_info[i].key_default)
        joy |= key_info[i].action;
@@ -682,7 +680,8 @@ void HandleKey(Key key, int key_status)
     return;
   }
 
-  if (game_status == GAME_MODE_MAIN && key == setup.shortcut.toggle_pause)
+  if (game_status == GAME_MODE_MAIN &&
+      (key == setup.shortcut.toggle_pause || key == KSYM_space))
   {
     StartGameActions(options.network, setup.autorecord, NEW_RANDOMIZE);
 
@@ -699,6 +698,16 @@ void HandleKey(Key key, int key_status)
       TapeTogglePause(TAPE_TOGGLE_MANUAL);
   }
 
+  if (game_status == GAME_MODE_PLAYING)
+  {
+    if (key == setup.shortcut.focus_player_all)
+      game.centered_player_nr_next = -1;
+    else
+      for (i = 0; i < MAX_PLAYERS; i++)
+       if (key == setup.shortcut.focus_player[i])
+         game.centered_player_nr_next = i;
+  }
+
   HandleKeysSpecial(key);
 
   if (HandleGadgetsKeyInput(key))
@@ -719,7 +728,12 @@ void HandleKey(Key key, int key_status)
     case GAME_MODE_INFO:
       switch(key)
       {
+#if 1
        case KSYM_space:
+#else
+       /* !!! only use "space" key to start game from main menu !!! */
+       case KSYM_space:
+#endif
        case KSYM_Return:
          if (game_status == GAME_MODE_MAIN)
            HandleMainMenu(0,0, 0,0, MB_MENU_CHOICE);
@@ -758,6 +772,12 @@ void HandleKey(Key key, int key_status)
            HandleInfoScreen(0,0, 0, +1 * SCROLL_PAGE, MB_MENU_MARK);
          break;
 
+#ifdef DEBUG
+       case KSYM_0:
+         GameFrameDelay = (GameFrameDelay == 500 ? GAME_FRAME_DELAY : 500);
+         break;
+#endif
+
        default:
          break;
       }
@@ -801,6 +821,7 @@ void HandleKey(Key key, int key_status)
 
 #ifdef DEBUG
        case KSYM_0:
+#if 0
        case KSYM_1:
        case KSYM_2:
        case KSYM_3:
@@ -810,6 +831,7 @@ void HandleKey(Key key, int key_status)
        case KSYM_7:
        case KSYM_8:
        case KSYM_9:
+#endif
          if (key == KSYM_0)
          {
            if (GameFrameDelay == 500)