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