fixed centered screen position for keyboard/joystick configuration
[rocksndiamonds.git] / src / screens.c
index e6397b5c6532a66e33ba9a46fde9accd84837853..4f711f26ce3f584cb9ef610085f925f4bf292f31 100644 (file)
@@ -6497,11 +6497,13 @@ static boolean CustomizeKeyboardMain(int player_nr)
          {
            Key key = GetEventKey((KeyEvent *)&event, FALSE);
 
+           /* press 'Escape' to abort and keep the old key bindings */
            if (key == KSYM_Escape)
            {
              FadeSkipNextFadeIn();
 
              finished = TRUE;
+
              break;
            }
 
@@ -6563,8 +6565,9 @@ static boolean CustomizeKeyboardMain(int player_nr)
     BackToFront();
   }
 
-  /* write new key bindings back to player setup */
-  setup.input[player_nr].key = custom_key;
+  /* write new key bindings back to player setup, if successfully finished */
+  if (success)
+    setup.input[player_nr].key = custom_key;
 
   return success;
 }
@@ -6575,8 +6578,10 @@ void CustomizeKeyboard(int player_nr)
 
   if (success)
   {
-    int xpos = mSX - SX;
-    int ypos = mSY - SY;
+    int font_nr = FONT_TITLE_1;
+    int font_height = getFontHeight(font_nr);
+    int ypos1 = SYSIZE / 2 - font_height * 2;
+    int ypos2 = SYSIZE / 2 - font_height * 1;
     unsigned int wait_frame_delay = 0;
     unsigned int wait_frame_delay_value = 2000;
 
@@ -6584,8 +6589,8 @@ void CustomizeKeyboard(int player_nr)
 
     ClearField();
 
-    DrawTextS(xpos + 16, ypos + 6 * 32, FONT_TITLE_1, "    KEYBOARD    ");
-    DrawTextS(xpos + 16, ypos + 7 * 32, FONT_TITLE_1, " IS CONFIGURED! ");
+    DrawTextSCentered(ypos1, font_nr, "Keyboard");
+    DrawTextSCentered(ypos2, font_nr, "configured!");
 
     while (!DelayReached(&wait_frame_delay, wait_frame_delay_value))
       BackToFront();
@@ -7003,11 +7008,14 @@ void ConfigureJoystick(int player_nr)
   if (state != JOYSTICK_NOT_CONFIGURED)
   {
     boolean success = (state == JOYSTICK_CONFIGURED);
-    char *message = (success ? " IS CONFIGURED! " : " NOT AVAILABLE! ");
+    char message1[MAX_OUTPUT_LINESIZE + 1];
+    char *message2 = (success ? "configured!" : "not available!");
     char *device_name = setup.input[player_nr].joy.device_name;
     int nr = getJoystickNrFromDeviceName(device_name) + 1;
-    int xpos = mSX - SX;
-    int ypos = mSY - SY;
+    int font_nr = FONT_TITLE_1;
+    int font_height = getFontHeight(font_nr);
+    int ypos1 = SYSIZE / 2 - font_height * 2;
+    int ypos2 = SYSIZE / 2 - font_height * 1;
     unsigned int wait_frame_delay = 0;
     unsigned int wait_frame_delay_value = 2000;
 
@@ -7015,8 +7023,10 @@ void ConfigureJoystick(int player_nr)
 
     ClearField();
 
-    DrawTextF(xpos + 16, ypos + 6 * 32, FONT_TITLE_1, "   JOYSTICK %d   ", nr);
-    DrawTextF(xpos + 16, ypos + 7 * 32, FONT_TITLE_1, message);
+    sprintf(message1, "Joystick %d", nr);
+
+    DrawTextSCentered(ypos1, font_nr, message1);
+    DrawTextSCentered(ypos2, font_nr, message2);
 
     while (!DelayReached(&wait_frame_delay, wait_frame_delay_value))
       BackToFront();