diff options
| author | uruk | 2014-02-14 03:18:11 +0100 | 
|---|---|---|
| committer | uruk | 2014-02-14 03:18:11 +0100 | 
| commit | c57e98ce8dc0dad0ab3154c354afc4dbead3fb85 (patch) | |
| tree | 086cc5f5ad3bece976772b311127ced7cdfa1840 /engines/avalanche/help.cpp | |
| parent | 3d528b512f6ead3d03e6af99d1e428215e30ce7b (diff) | |
| download | scummvm-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.cpp | 57 | 
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); +		}		 +	} +	  }  /** | 
