diff options
author | David Corrales | 2007-06-23 18:51:33 +0000 |
---|---|---|
committer | David Corrales | 2007-06-23 18:51:33 +0000 |
commit | cacd7a28fd51d960947de88abbf30c487e66529d (patch) | |
tree | f3baa59853bfb307e452b86b9d93c4737b1fa6ab /engines/sky/sky.cpp | |
parent | 0ac96302fe9c04df79cb01a77d19535b45fe2db0 (diff) | |
parent | 90c2210dae8c91fa8babc6b05564e15c9d445d18 (diff) | |
download | scummvm-rg350-cacd7a28fd51d960947de88abbf30c487e66529d.tar.gz scummvm-rg350-cacd7a28fd51d960947de88abbf30c487e66529d.tar.bz2 scummvm-rg350-cacd7a28fd51d960947de88abbf30c487e66529d.zip |
Merged the FSNode branch with trunk r27031:27680
svn-id: r27681
Diffstat (limited to 'engines/sky/sky.cpp')
-rw-r--r-- | engines/sky/sky.cpp | 45 |
1 files changed, 19 insertions, 26 deletions
diff --git a/engines/sky/sky.cpp b/engines/sky/sky.cpp index d8e642d717..1ff23dbd07 100644 --- a/engines/sky/sky.cpp +++ b/engines/sky/sky.cpp @@ -217,57 +217,54 @@ void SkyEngine::initVirgin() { void SkyEngine::handleKey(void) { - if (_keyPressed && _systemVars.paused) { + if (_keyPressed.keycode && _systemVars.paused) { _skySound->fnUnPauseFx(); _systemVars.paused = false; _skyScreen->setPaletteEndian((uint8 *)_skyCompact->fetchCpt(SkyEngine::_systemVars.currentPalette)); - _keyFlags = _keyPressed = 0; - return; - } - - if (_keyFlags == Common::KBD_CTRL) { - if (_keyPressed == 'f') + } else if (_keyPressed.flags == Common::KBD_CTRL) { + if (_keyPressed.keycode == 'f') _fastMode ^= 1; - else if (_keyPressed == 'g') + else if (_keyPressed.keycode == 'g') _fastMode ^= 2; - else if (_keyPressed == 'd') + else if (_keyPressed.keycode == 'd') _debugger->attach(); - } else { - switch (_keyPressed) { - case '`': - case '~': - case '#': + } else if (_keyPressed.keycode) { + switch (_keyPressed.keycode) { + case Common::KEYCODE_BACKQUOTE: + case Common::KEYCODE_HASH: _debugger->attach(); break; - case 63: + case Common::KEYCODE_F5: _skyControl->doControlPanel(); break; - case 27: + case Common::KEYCODE_ESCAPE: if (!_systemVars.pastIntro) _skyControl->restartGame(); break; - case '.': + case Common::KEYCODE_PERIOD: _skyMouse->logicClick(); break; - case 'p': + case Common::KEYCODE_p: _skyScreen->halvePalette(); _skySound->fnPauseFx(); _systemVars.paused = true; break; + default: + break; } } - _keyFlags = _keyPressed = 0; + _keyPressed.reset(); } int SkyEngine::go() { _systemVars.quitGame = false; - _keyFlags = _keyPressed = 0; + _keyPressed.reset(); uint16 result = 0; if (ConfMan.hasKey("save_slot") && ConfMan.getInt("save_slot") >= 0) @@ -517,7 +514,7 @@ void SkyEngine::delay(int32 amount) { Common::Event event; uint32 start = _system->getMillis(); - _keyFlags = _keyPressed = 0; //reset + _keyPressed.reset(); if (amount < 0) amount = 0; @@ -526,11 +523,7 @@ void SkyEngine::delay(int32 amount) { while (_eventMan->pollEvent(event)) { switch (event.type) { case Common::EVENT_KEYDOWN: - _keyFlags = event.kbd.flags; - if (_keyFlags == Common::KBD_CTRL) - _keyPressed = event.kbd.keycode; - else - _keyPressed = (byte)event.kbd.ascii; + _keyPressed = event.kbd; break; case Common::EVENT_MOUSEMOVE: if (!(_systemVars.systemFlags & SF_MOUSE_LOCKED)) |