diff options
Diffstat (limited to 'engines/neverhood/gamemodule.cpp')
-rw-r--r-- | engines/neverhood/gamemodule.cpp | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/engines/neverhood/gamemodule.cpp b/engines/neverhood/gamemodule.cpp index 65164859c9..ce72a22835 100644 --- a/engines/neverhood/gamemodule.cpp +++ b/engines/neverhood/gamemodule.cpp @@ -123,13 +123,6 @@ void GameModule::handleMouseUp(int16 x, int16 y) { } } -void GameModule::handleEscapeKey() { - if (!_prevChildObject /* && _canRequestMainMenu TODO?*/) - _mainMenuRequested = true; - else - sendMessage(_childObject, 0x000C, 0); -} - void GameModule::handleSpaceKey() { if (_childObject) { debug(2, "GameModule::handleSpaceKey()"); @@ -137,6 +130,31 @@ void GameModule::handleSpaceKey() { } } +void GameModule::handleAsciiKey(char key) { + if (_childObject) { + debug(2, "GameModule::handleAsciiKey()"); + sendMessage(_childObject, 0x000A, (uint32)key); + } +} + +void GameModule::handleKeyDown(Common::KeyCode keyCode) { + if (_childObject) { + if (keyCode == Common::KEYCODE_ESCAPE) + handleEscapeKey(); + else if (keyCode == Common::KEYCODE_SPACE) + handleSpaceKey(); + debug(2, "GameModule::handleKeyDown()"); + sendMessage(_childObject, 0x000B, keyCode); + } +} + +void GameModule::handleEscapeKey() { + if (!_prevChildObject /* && _canRequestMainMenu TODO?*/) + _mainMenuRequested = true; + else if (_childObject) + sendMessage(_childObject, 0x000C, 0); +} + void GameModule::initKeySlotsPuzzle() { if (!getSubVar(VA_IS_PUZZLE_INIT, 0x25400B10)) { NonRepeatingRandomNumbers keySlots(_vm->_rnd, 16); |