From 6be5c1171332764dacad9113250ede7e765bb361 Mon Sep 17 00:00:00 2001 From: johndoe123 Date: Sat, 27 Oct 2012 22:18:54 +0000 Subject: NEVERHOOD: More work on the menu system: - Add handling of ascii and system key input - Fix TextSurface::drawChar() - Pause audio when entering the menu, resume it again afterwards - Add TextEditWidget - Add SaveGameMenu (doesn't actually save anything yet and needs more work) --- engines/neverhood/gamemodule.cpp | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'engines/neverhood/gamemodule.cpp') 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); -- cgit v1.2.3