AGS: Engine: in display_main exceed all the keypress buffer

From upstream d2100b01ee4a85219b481dcd7593f0e0d419523e
This commit is contained in:
Thierry Crozat 2022-12-17 21:38:58 +01:00
parent 871d4b54e1
commit 3286cf18ec

View File

@ -294,16 +294,19 @@ ScreenOverlay *_display_main(int xx, int yy, int wii, const char *text, int disp
break; break;
} }
} }
KeyInput ki; bool do_break = false;
if (run_service_key_controls(ki)) { while (!_GP(play).fast_forward && !do_break && ags_keyevent_ready()) {
check_skip_cutscene_keypress(ki.Key); KeyInput ki;
if (_GP(play).fast_forward) if (run_service_key_controls(ki)) {
break; check_skip_cutscene_keypress(ki.Key);
if ((skip_setting & SKIP_KEYPRESS) && !_GP(play).IsIgnoringInput()) { if ((skip_setting & SKIP_KEYPRESS) && !_GP(play).IsIgnoringInput()) {
_GP(play).SetWaitKeySkip(ki); _GP(play).SetWaitKeySkip(ki);
break; do_break = true;
}
} }
} }
if (do_break)
break;
update_polled_stuff_if_runtime(); update_polled_stuff_if_runtime();
@ -352,6 +355,7 @@ ScreenOverlay *_display_main(int xx, int yy, int wii, const char *text, int disp
GameLoopUntilNoOverlay(); GameLoopUntilNoOverlay();
} }
ags_clear_input_buffer();
_GP(play).messagetime = -1; _GP(play).messagetime = -1;
return nullptr; return nullptr;
} }