aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/dialogs/dialogs_query.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/dialogs/dialogs_query.cpp')
-rw-r--r--engines/xeen/dialogs/dialogs_query.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/xeen/dialogs/dialogs_query.cpp b/engines/xeen/dialogs/dialogs_query.cpp
index 79f46826cd..876ddafc2b 100644
--- a/engines/xeen/dialogs/dialogs_query.cpp
+++ b/engines/xeen/dialogs/dialogs_query.cpp
@@ -68,8 +68,11 @@ bool Confirm::execute(const Common::String &msg, int mode) {
bool result = false;
while (!_vm->shouldExit()) {
- events.pollEvents();
- checkEvents(_vm);
+ _buttonValue = 0;
+ while (!_vm->shouldExit() && !_buttonValue) {
+ events.pollEvents();
+ checkEvents(_vm);
+ }
if ((mode & 0x80) || _buttonValue == Common::KEYCODE_ESCAPE
|| _buttonValue == Common::KEYCODE_n)
@@ -81,6 +84,7 @@ bool Confirm::execute(const Common::String &msg, int mode) {
}
}
+ events.clearEvents();
w.close();
return result;
}
@@ -108,6 +112,7 @@ bool YesNo::execute(bool type, bool townFlag) {
Mode oldMode = _vm->_mode;
_vm->_mode = oldMode == MODE_7 ? MODE_8 : MODE_7;
+ events.clearEvents();
if (!type) {
confirmSprites.load("confirm.icn");