X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=f578c05d233f24ac8454379b86bb18b66e79103f;hb=8b37e160bdb600c02cf7f46d4820a28f0410dc8b;hp=a080e7a841741720ef8da2c24a44706050ca39e9;hpb=dbe7aa7335e0e0553b3c123736a703544ef54f71;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index a080e7a8..f578c05d 100644 --- a/src/screens.c +++ b/src/screens.c @@ -4781,10 +4781,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 +4808,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; @@ -5416,10 +5429,11 @@ static void DrawScoreInfo_Content(int entry_nr) int ystep_title = getMenuTextStep(spacing_title, font_title); int ystep_para = getMenuTextStep(spacing_para, font_text); int ystep_line = getMenuTextStep(spacing_line, font_text); + int xstart = mSX - SX + menu.left_spacing[GAME_MODE_SCOREINFO]; int ystart = mSY - SY + menu.top_spacing[GAME_MODE_SCOREINFO]; int ybottom = mSY - SY + SYSIZE - menu.bottom_spacing[GAME_MODE_SCOREINFO]; - int xstart1 = mSX - SX + 2 * xstep; - int xstart2 = mSX - SX + 13 * xstep; + int xstart1 = xstart + xstep; + int xstart2 = xstart + xstep * 12; int select_x = SX + xstart1; int select_y1, select_y2; int play_x, play_y; @@ -5429,7 +5443,7 @@ static void DrawScoreInfo_Content(int entry_nr) int font_height = getFontHeight(font_text); int tape_date_width = getTextWidth(tape_date, font_text); int pad_left = xstart2; - int pad_right = MENU_SCREEN_INFO_SPACE_RIGHT; + int pad_right = menu.right_spacing[GAME_MODE_SCOREINFO]; int max_chars_per_line = (SXSIZE - pad_left - pad_right) / font_width; int max_lines_per_text = 5; int lines; @@ -10255,6 +10269,12 @@ static void HandleScreenGadgets(struct GadgetInfo *gi) } } +void HandleScreenGadgetKeys(Key key) +{ + if (key == setup.shortcut.tape_play) + HandleScreenGadgets(screen_gadget[SCREEN_CTRL_ID_PLAY_TAPE]); +} + void DumpScreenIdentifiers(void) { int i;