minor whitespace change
[rocksndiamonds.git] / src / screens.c
index 4937d2ce26af7feacd9275c6488e324b866165b8..388bde6f744e24b273aa8a5e90f233ea16425a29 100644 (file)
@@ -1531,6 +1531,15 @@ static int getChooseTreeEditYPos(int ypos_raw)
   return sy;
 }
 
+static int getChooseTreeEditXPosReal(int pos)
+{
+  int xpos = getChooseTreeEditXPos(pos);
+  int font_nr = getChooseTreeEditFont(FALSE);
+  int font_xoffset = getFontDrawOffsetX(font_nr);
+
+  return xpos + font_xoffset;
+}
+
 static void drawChooseTreeEdit(int ypos_raw, boolean active)
 {
   int sx = getChooseTreeEditXPos(POS_LEFT);
@@ -2071,7 +2080,7 @@ static void HandleMainMenu_SelectLevel(int step, int direction,
   {
     // skipping levels is only allowed when trying to skip single level
     if (setup.skip_levels && new_level_nr == old_level_nr + 1 &&
-       Request("Level still unsolved! Skip despite handicap?", REQ_ASK))
+       Request("Level still unsolved! Skip it anyway?", REQ_ASK))
     {
       leveldir_current->handicap_level++;
       SaveLevelSetup_SeriesInfo();
@@ -3998,7 +4007,7 @@ static int getPlayerNameColor(char *name)
 }
 
 static void drawTypeNameText(char *name, struct TextPosInfo *pos,
-                             boolean active)
+                            boolean active)
 {
   char text[MAX_PLAYER_NAME_LEN + 2] = { 0 };
   boolean multiple_users = (game_status == GAME_MODE_PSEUDO_TYPENAMES);
@@ -4329,6 +4338,9 @@ static void DrawChooseTree(TreeInfo **ti_ptr)
   boolean restart_music = (game_status != game_status_last_screen &&
                           game_status_last_screen != GAME_MODE_SCOREINFO);
 
+  scores.was_just_playing = (game_status == GAME_MODE_SCORES &&
+                            game_status_last_screen == GAME_MODE_PLAYING);
+
   if (CheckFadeAll())
     fade_mask = REDRAW_ALL;
 
@@ -4638,8 +4650,8 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button,
   boolean has_scrollbar = screen_gadget[SCREEN_CTRL_ID_SCROLL_VERTICAL]->mapped;
   int mx_scrollbar = screen_gadget[SCREEN_CTRL_ID_SCROLL_VERTICAL]->x;
   int mx_right_border = (has_scrollbar ? mx_scrollbar : SX + SXSIZE);
-  int sx1_edit_name = getChooseTreeEditXPos(POS_LEFT);
-  int sx2_edit_name = getChooseTreeEditXPos(POS_RIGHT);
+  int sx1_edit_name = getChooseTreeEditXPosReal(POS_LEFT);
+  int sx2_edit_name = getChooseTreeEditXPosReal(POS_RIGHT);
   int x = 0;
   int y = (ti != NULL ? ti->cl_cursor : 0);
   int step = (button == 1 ? 1 : button == 2 ? 5 : 10);
@@ -4781,10 +4793,25 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button,
     return;
   }
 
-  if (mx || my)                // mouse input
+#if defined(PLATFORM_ANDROID)
+  // touching the screen anywhere continues playing the next level
+  if ((mx || my) && scores.was_just_playing)
+  {
+    mx = my = 0;
+    button = MB_MENU_CHOICE;
+  }
+#endif
+
+  // any mouse click or direction input stops playing the next level
+  if ((mx || my || dx || dy) && scores.was_just_playing)
   {
     scores.was_just_playing = FALSE;
+    level_nr = scores.last_level_nr;
+    LoadLevel(level_nr);
+  }
 
+  if (mx || my)                // mouse input
+  {
     x = (mx - amSX) / 32;
     y = (my - amSY) / 32 - MENU_SCREEN_START_YPOS;
 
@@ -4793,8 +4820,6 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button,
   }
   else if (dx || dy)   // keyboard or scrollbar/scrollbutton input
   {
-    scores.was_just_playing = FALSE;
-
     // move cursor instead of scrolling when already at start/end of list
     if (dy == -1 * SCROLL_LINE && ti->cl_first == 0)
       dy = -1;
@@ -5272,7 +5297,6 @@ static void DrawHallOfFame_setScoreEntries(void)
 void DrawHallOfFame(int level_nr)
 {
   scores.last_level_nr = level_nr;
-  scores.was_just_playing = (game_status_last_screen == GAME_MODE_PLAYING);
 
   // (this is needed when called from GameEnd() after winning a game)
   KeyboardAutoRepeatOn();
@@ -7262,8 +7286,8 @@ static struct TokenInfo setup_info_game[] =
   { TYPE_SWITCH,       &setup.multiple_users,  "Multiple Users/Teams:" },
   { TYPE_YES_NO,       &setup.input_on_focus,  "Only Move Focussed Player:" },
   { TYPE_SWITCH,       &setup.time_limit,      "Time Limit:"           },
-  { TYPE_SWITCH,       &setup.handicap,        "Handicap:"             },
-  { TYPE_SWITCH,       &setup.skip_levels,     "Skip Unsolved Levels:" },
+  { TYPE_SWITCH,       &setup.handicap,        "Force Solving Levels:" },
+  { TYPE_SWITCH,       &setup.skip_levels,     "Allow Skipping Levels:" },
   { TYPE_SWITCH,       &setup.increment_levels,"Increment Solved Levels:" },
   { TYPE_SWITCH,       &setup.auto_play_next_level,"Auto-play Next Level:" },
   { TYPE_SWITCH,       &setup.count_score_after_game,"Count Score After Game:" },