aboutsummaryrefslogtreecommitdiff
path: root/engines/cge/events.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/cge/events.cpp')
-rw-r--r--engines/cge/events.cpp25
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