X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=98c7b68ace401ba8fd957d093e854df88b90b466;hb=e5804efb99033c96d71c37ce89f60e1ee23b7004;hp=326fa677c0973404caa4abd28f6dfb97b7746e92;hpb=d522e996ec9a28cd01c056764799996a4ac5474e;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 326fa677..98c7b68a 100644 --- a/src/screens.c +++ b/src/screens.c @@ -4353,6 +4353,9 @@ static void DrawChooseTree(TreeInfo **ti_ptr) boolean restart_music = (game_status != game_status_last_screen && game_status_last_screen != GAME_MODE_SCOREINFO); + scores.continue_on_return = (game_status == GAME_MODE_SCORES && + game_status_last_screen == GAME_MODE_PLAYING); + if (CheckFadeAll()) fade_mask = REDRAW_ALL; @@ -4810,11 +4813,11 @@ static void HandleChooseTree(int mx, int my, int dx, int dy, int button, } #if defined(PLATFORM_ANDROID) - // touching the screen anywhere continues playing the next level - if ((mx || my) && scores.continue_playing) + // directly continue when touching the screen after playing + if ((mx || my) && scores.continue_on_return) { + // ignore touch events until released mx = my = 0; - button = MB_MENU_CHOICE; } #endif @@ -5311,7 +5314,7 @@ static void DrawHallOfFame_setScoreEntries(void) if (score_entry_current == NULL) score_entry_current = getFirstValidTreeInfoEntry(score_entries); - if (score_entries != NULL && scores.last_added >= 0) + if (score_entries != NULL && scores.continue_playing) setString(&score_entries->node_group->name, BACKLINK_TEXT_NEXT); // ("score_entries" and "score_entry_current" may be NULL here) @@ -5320,7 +5323,6 @@ static void DrawHallOfFame_setScoreEntries(void) void DrawHallOfFame(int nr) { scores.last_level_nr = nr; - scores.continue_on_return = (game_status_last_screen == GAME_MODE_PLAYING); // (this is needed when called from GameEnd() after winning a game) KeyboardAutoRepeatOn(); @@ -7392,7 +7394,7 @@ static struct TokenInfo setup_info_editor[] = static struct TokenInfo setup_info_graphics[] = { -#if !defined(PLATFORM_ANDROID) +#if !defined(PLATFORM_ANDROID) && !defined(PLATFORM_EMSCRIPTEN) { TYPE_SWITCH, &setup.fullscreen, "Fullscreen:" }, { TYPE_ENTER_LIST, execSetupChooseWindowSize, "Window Scaling:" }, { TYPE_STRING, &window_size_text, "" }, @@ -7405,8 +7407,10 @@ static struct TokenInfo setup_info_graphics[] = { TYPE_ENTER_LIST, execSetupChooseScrollDelay, "Scroll Delay:" }, { TYPE_STRING, &scroll_delay_text, "" }, #endif +#if !defined(PLATFORM_EMSCRIPTEN) { TYPE_ENTER_LIST, execSetupChooseVsyncMode, "Vertical Sync (VSync):" }, { TYPE_STRING, &vsync_mode_text, "" }, +#endif { TYPE_SWITCH, &setup.fade_screens, "Fade Screens:" }, { TYPE_SWITCH, &setup.quick_switch, "Quick Player Focus Switch:" }, { TYPE_SWITCH, &setup.quick_doors, "Quick Menu Doors:" }, @@ -9741,6 +9745,11 @@ static void CreateScreenMenubuttons(void) int type = GD_TYPE_NORMAL_BUTTON; boolean checked = FALSE; + // do not use touch buttons if touch controls are disabled + if (is_touch_button && + strEqual(setup.touch.control_type, TOUCH_CONTROL_OFF)) + continue; + event_mask = menubutton_info[i].event_mask; x = (is_touch_button ? pos->x : mSX + GDI_ACTIVE_POS(pos->x));