aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche/help.cpp
diff options
context:
space:
mode:
authoruruk2014-02-14 03:18:11 +0100
committeruruk2014-02-14 03:18:11 +0100
commitc57e98ce8dc0dad0ab3154c354afc4dbead3fb85 (patch)
tree086cc5f5ad3bece976772b311127ced7cdfa1840 /engines/avalanche/help.cpp
parent3d528b512f6ead3d03e6af99d1e428215e30ce7b (diff)
downloadscummvm-rg350-c57e98ce8dc0dad0ab3154c354afc4dbead3fb85.tar.gz
scummvm-rg350-c57e98ce8dc0dad0ab3154c354afc4dbead3fb85.tar.bz2
scummvm-rg350-c57e98ce8dc0dad0ab3154c354afc4dbead3fb85.zip
AVALANCHE: Simplify continueHelp(), move keyboard control to it's own function.
Diffstat (limited to 'engines/avalanche/help.cpp')
-rw-r--r--engines/avalanche/help.cpp57
1 files changed, 29 insertions, 28 deletions
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);
+ }
+ }
+
}
/**