From c57e98ce8dc0dad0ab3154c354afc4dbead3fb85 Mon Sep 17 00:00:00 2001 From: uruk Date: Fri, 14 Feb 2014 03:18:11 +0100 Subject: AVALANCHE: Simplify continueHelp(), move keyboard control to it's own function. --- engines/avalanche/help.cpp | 57 +++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 28 deletions(-) (limited to 'engines/avalanche/help.cpp') diff --git a/engines/avalanche/help.cpp b/engines/avalanche/help.cpp index 17faa2a341..9985e9ea6d 100644 --- a/engines/avalanche/help.cpp +++ b/engines/avalanche/help.cpp @@ -144,37 +144,38 @@ byte Help::checkMouse() { return 0; } -void Help::continueHelp() { - warning("STUB: Help::continueHelp()"); - - do { - Common::Event event; - bool escape = false; - while (!_vm->shouldQuit() && !escape) { - _vm->_graphics->refreshScreen(); - while (_vm->getEvent(event)) { - if (event.type == Common::EVENT_KEYDOWN) { - escape = true; - break; - } - } +bool Help::handleKeyboard(const Common::Event &event) { + if (event.kbd.keycode == Common::KEYCODE_ESCAPE) + return true; + + for (int i = 0; i < _buttonNum; i++) { + char upperCase = toupper(event.kbd.ascii); + if (((Common::KEYCODE_a <= event.kbd.keycode) && (event.kbd.keycode <= Common::KEYCODE_z) && (_buttons[i]._trigger == upperCase)) || + ((event.kbd.keycode == Common::KEYCODE_PAGEUP) && (_buttons[i]._trigger == 214)) || + ((event.kbd.keycode == Common::KEYCODE_PAGEDOWN) && (_buttons[i]._trigger == 216))) { // We had to handle the pageups/pagedowns separately. + _vm->fadeOut(); + switchPage(_buttons[i]._whither); + _vm->fadeIn(); + return false; } + } - if (event.kbd.keycode == Common::KEYCODE_ESCAPE) - break; + return false; +} - for (int i = 0; i < _buttonNum; i++) { - char upperCase = toupper(event.kbd.ascii); - if (((Common::KEYCODE_a <= event.kbd.keycode) && (event.kbd.keycode <= Common::KEYCODE_z) && (_buttons[i]._trigger == upperCase)) || - ((event.kbd.keycode == Common::KEYCODE_PAGEUP) && (_buttons[i]._trigger == 214)) || - ((event.kbd.keycode == Common::KEYCODE_PAGEDOWN) && (_buttons[i]._trigger == 216))) { // We had to handle the pageups/pagedowns separately. - _vm->fadeOut(); - switchPage(_buttons[i]._whither); - _vm->fadeIn(); - break; - } - } - } while (true); +void Help::continueHelp() { + warning("STUB: Help::continueHelp()"); + + bool close = false; + Common::Event event; + while (!_vm->shouldQuit() && !close) { + _vm->_graphics->refreshScreen(); + _vm->getEvent(event); + if (event.type == Common::EVENT_KEYDOWN) { + close = handleKeyboard(event); + } + } + } /** -- cgit v1.2.3