diff options
Diffstat (limited to 'engines/cge/events.cpp')
-rw-r--r-- | engines/cge/events.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/engines/cge/events.cpp b/engines/cge/events.cpp index cc22d9075a..73bef63129 100644 --- a/engines/cge/events.cpp +++ b/engines/cge/events.cpp @@ -86,7 +86,7 @@ const uint16 Keyboard::_scummVmCodes[0x60] = { }; Keyboard::Keyboard(CGEEngine *vm) : _client(NULL), _vm(vm) { - Common::set_to(&_key[0], &_key[0x60], false); + Common::fill(&_key[0], &_key[0x60], false); _current = 0; } @@ -112,8 +112,14 @@ bool Keyboard::getKey(Common::Event &event, int &cgeCode) { cgeCode = 28; return true; } - if (keycode == Common::KEYCODE_F5) { - warning("keycode %d", event.kbd.ascii); + if (keycode == Common::KEYCODE_F1) { + if (event.type == Common::EVENT_KEYUP) + return false; + // Display ScummVM version and translation strings + for (int i = 0; i < 5; i++) + _vm->_commandHandler->addCommand(kCmdInf, 1, kShowScummVMVersion + i, NULL); + return false; + } else if (keycode == Common::KEYCODE_F5) { if (_vm->canSaveGameStateCurrently()) { const EnginePlugin *plugin = NULL; EngineMan.findGame(_vm->_gameDescription->gameid, &plugin); @@ -123,7 +129,9 @@ bool Keyboard::getKey(Common::Event &event, int &cgeCode) { int16 savegameId = dialog->runModalWithPluginAndTarget(plugin, ConfMan.getActiveDomainName()); Common::String savegameDescription = dialog->getResultString(); delete dialog; - _vm->saveGameState(savegameId, savegameDescription); + + if (savegameId != -1) + _vm->saveGameState(savegameId, savegameDescription); } return false; } else if (keycode == Common::KEYCODE_F7) { @@ -135,7 +143,9 @@ bool Keyboard::getKey(Common::Event &event, int &cgeCode) { dialog->setSaveMode(false); int16 savegameId = dialog->runModalWithPluginAndTarget(plugin, ConfMan.getActiveDomainName()); delete dialog; - _vm->loadGameState(savegameId); + + if (savegameId != -1) + _vm->loadGameState(savegameId); } return false; } @@ -272,7 +282,6 @@ void Mouse::newMouse(Common::Event &event) { /*----------------- EventManager interface -----------------*/ EventManager::EventManager(CGEEngine *vm) : _vm(vm){ - _quitFlag = false; _eventQueueHead = 0; _eventQueueTail = 0; memset(&_eventQueue, 0, kEventMax * sizeof(CGEEvent)); @@ -282,10 +291,6 @@ EventManager::EventManager(CGEEngine *vm) : _vm(vm){ void EventManager::poll() { while (g_system->getEventManager()->pollEvent(_event)) { switch (_event.type) { - case Common::EVENT_QUIT: - // Signal to quit - _quitFlag = true; - return; case Common::EVENT_KEYDOWN: case Common::EVENT_KEYUP: // Handle keyboard events |