rnd-20060319-1-src
[rocksndiamonds.git] / src / events.c
index 95b9e9f0a0e9e1b8545fb1e60eb810ebca133381..b54623d4e030fbdff367497aad6f1788bbeb3df4 100644 (file)
@@ -171,7 +171,9 @@ void EventLoop(void)
        has its own synchronization and is CPU friendly, too */
 
     if (game_status == GAME_MODE_PLAYING)
+    {
       HandleGameActions();
+    }
     else
     {
       SyncDisplay();
@@ -544,10 +546,7 @@ static void HandleKeysSpecial(Key key)
   {
 #ifdef DEBUG
     if (is_string_suffix(cheat_input, ".q"))
-      for (i = 0; i < MAX_INVENTORY_SIZE; i++)
-       if (local_player->inventory_size < MAX_INVENTORY_SIZE)
-         local_player->inventory_element[local_player->inventory_size++] =
-           EL_DYNAMITE;
+      DEBUG_SetMaximumDynamite();
 #endif
   }
   else if (game_status == GAME_MODE_EDITOR)
@@ -566,7 +565,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 +581,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 +593,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 +648,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;
@@ -700,6 +697,30 @@ void HandleKey(Key key, int key_status)
       TapeTogglePause(TAPE_TOGGLE_MANUAL);
   }
 
+  if (game_status == GAME_MODE_PLAYING)
+  {
+    int centered_player_nr_next = -999;
+
+    if (key == setup.shortcut.focus_player_all)
+      centered_player_nr_next = -1;
+    else
+      for (i = 0; i < MAX_PLAYERS; i++)
+       if (key == setup.shortcut.focus_player[i])
+         centered_player_nr_next = i;
+
+    if (centered_player_nr_next != -999)
+    {
+      game.centered_player_nr_next = centered_player_nr_next;
+      game.set_centered_player = TRUE;
+
+      if (tape.recording)
+      {
+       tape.centered_player_nr_next = game.centered_player_nr_next;
+       tape.set_centered_player = TRUE;
+      }
+    }
+  }
+
   HandleKeysSpecial(key);
 
   if (HandleGadgetsKeyInput(key))
@@ -720,7 +741,9 @@ void HandleKey(Key key, int key_status)
     case GAME_MODE_INFO:
       switch(key)
       {
-#if 0
+#if 1
+       case KSYM_space:
+#else
        /* !!! only use "space" key to start game from main menu !!! */
        case KSYM_space:
 #endif
@@ -762,6 +785,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;
       }
@@ -805,6 +834,7 @@ void HandleKey(Key key, int key_status)
 
 #ifdef DEBUG
        case KSYM_0:
+#if 0
        case KSYM_1:
        case KSYM_2:
        case KSYM_3:
@@ -814,6 +844,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)