rnd-20020528-1-src
[rocksndiamonds.git] / src / screens.c
index ece8b097db923651cbc872a395e33111231c8b1c..1e3f941f834fda863a21888781ed5f8e96e8a9d0 100644 (file)
@@ -135,8 +135,9 @@ void DrawMainMenu()
   UnmapAllGadgets();
   FadeSounds();
   KeyboardAutoRepeatOn();
-  ActivateJoystickIfAvailable();
+  ActivateJoystick();
   SetDrawDeactivationMask(REDRAW_NONE);
+  audio.sound_deactivated = FALSE;
 
   /* needed if last screen was the playing screen, invoked from level editor */
   if (level_editor_test_game)
@@ -816,7 +817,7 @@ void DrawHelpScreen()
 
   FadeToFront();
   InitAnimation();
-  PlaySoundLoop(SND_RHYTHMLOOP);
+  PlaySoundLoop(SND_MENU_INFO_SCREEN);
 }
 
 void HandleHelpScreen(int button)
@@ -1256,7 +1257,7 @@ void DrawHallOfFame(int highlight_position)
   FadeToFront();
   InitAnimation();
   HandleHallOfFame(highlight_position,0, 0,0, MB_MENU_INITIALIZE);
-  PlaySound(SND_HALLOFFAME);
+  PlaySound(SND_MENU_HALL_OF_FAME);
 }
 
 static void drawHallOfFameList(int first_entry, int highlight_position)
@@ -1334,7 +1335,7 @@ void HandleHallOfFame(int mx, int my, int dx, int dy, int button)
 
   if (button_released)
   {
-    FadeSound(SND_HALLOFFAME);
+    FadeSound(SND_MENU_HALL_OF_FAME);
     game_status = MAINMENU;
     DrawMainMenu();
   }
@@ -1486,6 +1487,8 @@ static struct TokenInfo setup_info_shortcut[] =
   { TYPE_KEY,          &setup.shortcut.save_game,      ""              },
   { TYPE_KEYTEXT,      NULL,                   "Quick Load Game:",     },
   { TYPE_KEY,          &setup.shortcut.load_game,      ""              },
+  { TYPE_KEYTEXT,      NULL,                   "Toggle Pause:",        },
+  { TYPE_KEY,          &setup.shortcut.toggle_pause,   ""              },
   { TYPE_EMPTY,                NULL,                   ""                      },
   { TYPE_LEAVE_MENU,   execSetupMain,          "Exit"                  },
   { 0,                 NULL,                   NULL                    }
@@ -1796,9 +1799,11 @@ void DrawSetupScreen_Input()
   DrawText(SX+32, SY+3*32, "Device:", FS_BIG, FC_GREEN);
   DrawText(SX+32, SY+15*32, "Exit", FS_BIG, FC_GREEN);
 
+#if 0
   DeactivateJoystickForCalibration();
   DrawTextFCentered(SYSIZE - 20, FC_BLUE,
                    "Joysticks deactivated on this screen");
+#endif
 
   HandleSetupScreen_Input(0,0, 0,0, MB_MENU_INITIALIZE);
   FadeToFront();
@@ -2347,6 +2352,8 @@ void CalibrateJoystick(int player_nr)
 
 void DrawSetupScreen()
 {
+  DeactivateJoystick();
+
   if (setup_mode == SETUP_MODE_INPUT)
     DrawSetupScreen_Input();
   else if (setup_mode == SETUP_MODE_CHOOSE_GRAPHICS)
@@ -2423,13 +2430,13 @@ static struct
     SC_SCROLLBUTTON_XPOS + 0 * SC_SCROLLBUTTON_XSIZE,   SC_SCROLLBUTTON_YPOS,
     SC_SCROLL_UP_XPOS,                                 SC_SCROLL_UP_YPOS,
     SCREEN_CTRL_ID_SCROLL_UP,
-    "scroll level series up"
+    "scroll up"
   },
   {
     SC_SCROLLBUTTON_XPOS + 1 * SC_SCROLLBUTTON_XSIZE,   SC_SCROLLBUTTON_YPOS,
     SC_SCROLL_DOWN_XPOS,                               SC_SCROLL_DOWN_YPOS,
     SCREEN_CTRL_ID_SCROLL_DOWN,
-    "scroll level series down"
+    "scroll down"
   }
 };
 
@@ -2594,21 +2601,30 @@ static void HandleScreenGadgets(struct GadgetInfo *gi)
 {
   int id = gi->custom_id;
 
-  if (game_status != CHOOSELEVEL)
+  if (game_status != CHOOSELEVEL && game_status != SETUP)
     return;
 
   switch (id)
   {
     case SCREEN_CTRL_ID_SCROLL_UP:
-      HandleChooseLevel(SX,SY + 32, 0,0, MB_MENU_MARK);
+      if (game_status == CHOOSELEVEL)
+       HandleChooseLevel(SX,SY + 32, 0,0, MB_MENU_MARK);
+      else if (game_status == SETUP)
+       HandleSetupScreen(SX,SY + 32, 0,0, MB_MENU_MARK);
       break;
 
     case SCREEN_CTRL_ID_SCROLL_DOWN:
-      HandleChooseLevel(SX,SY + SYSIZE - 32, 0,0, MB_MENU_MARK);
+      if (game_status == CHOOSELEVEL)
+       HandleChooseLevel(SX,SY + SYSIZE - 32, 0,0, MB_MENU_MARK);
+      else if (game_status == SETUP)
+       HandleSetupScreen(SX,SY + SYSIZE - 32, 0,0, MB_MENU_MARK);
       break;
 
     case SCREEN_CTRL_ID_SCROLL_VERTICAL:
-      HandleChooseLevel(0,0, 999,gi->event.item_position, MB_MENU_INITIALIZE);
+      if (game_status == CHOOSELEVEL)
+       HandleChooseLevel(0,0, 999,gi->event.item_position,MB_MENU_INITIALIZE);
+      else if (game_status == SETUP)
+       HandleSetupScreen(0,0, 999,gi->event.item_position,MB_MENU_INITIALIZE);
       break;
 
     default: