diff options
author | Peter Kohaut | 2019-06-22 11:39:21 +0200 |
---|---|---|
committer | Peter Kohaut | 2019-06-22 11:40:47 +0200 |
commit | 4cd58f2fba25858d026a48eafea95ac3acd0620e (patch) | |
tree | 536cb3e84fef70e874f0d581d1f9c54a3d0cf4e2 /engines/bladerunner/bladerunner.cpp | |
parent | 9d0de3e168f4975ba2974ac71031fffdd008819f (diff) | |
download | scummvm-rg350-4cd58f2fba25858d026a48eafea95ac3acd0620e.tar.gz scummvm-rg350-4cd58f2fba25858d026a48eafea95ac3acd0620e.tar.bz2 scummvm-rg350-4cd58f2fba25858d026a48eafea95ac3acd0620e.zip |
BLADERUNNER: Switch all keyUp events to keyDown
With keyDown events some parts of the game feels more responsive.
This wasn't working before because of a issue in SDL library.
Also added ability to skip talking with ESC key.
Diffstat (limited to 'engines/bladerunner/bladerunner.cpp')
-rw-r--r-- | engines/bladerunner/bladerunner.cpp | 68 |
1 files changed, 21 insertions, 47 deletions
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp index 0288af3c22..6a362c82b0 100644 --- a/engines/bladerunner/bladerunner.cpp +++ b/engines/bladerunner/bladerunner.cpp @@ -1118,7 +1118,10 @@ void BladeRunnerEngine::handleEvents() { break; case Common::EVENT_KEYDOWN: - handleKeyDown(event); + // Process the actual key press only and filter out repeats + if (!event.kbdRepeat) { + handleKeyDown(event); + } break; case Common::EVENT_LBUTTONUP: @@ -1156,13 +1159,6 @@ void BladeRunnerEngine::handleEvents() { } void BladeRunnerEngine::handleKeyUp(Common::Event &event) { - if (_actorIsSpeaking && event.kbd.keycode == Common::KEYCODE_RETURN) { - _actorSpeakStopIsRequested = true; - _actorIsSpeaking = false; - - return; - } - if (!playerHasControl() || _isWalkingInterruptible) { return; } @@ -1171,44 +1167,6 @@ void BladeRunnerEngine::handleKeyUp(Common::Event &event) { _kia->handleKeyUp(event.kbd); return; } - - if (_spinner->isOpen()) { - return; - } - - if (_elevator->isOpen()) { - return; - } - - if (_esper->isOpen()) { - return; - } - - if (_vk->isOpen()) { - return; - } - - if (_dialogueMenu->isOpen()) { - return; - } - - if (_scores->isOpen()) { - return; - } - - switch (event.kbd.keycode) { - case Common::KEYCODE_TAB: - _kia->openLastOpened(); - break; - case Common::KEYCODE_ESCAPE: - _kia->open(kKIASectionSettings); - break; - case Common::KEYCODE_SPACE: - _combat->change(); - break; - default: - break; - } } void BladeRunnerEngine::handleKeyDown(Common::Event &event) { @@ -1218,13 +1176,20 @@ void BladeRunnerEngine::handleKeyDown(Common::Event &event) { return; } - if (_vqaIsPlaying && !event.kbdRepeat && (event.kbd.keycode == Common::KEYCODE_ESCAPE || event.kbd.keycode == Common::KEYCODE_RETURN)) { + if (_vqaIsPlaying && (event.kbd.keycode == Common::KEYCODE_ESCAPE || event.kbd.keycode == Common::KEYCODE_RETURN)) { _vqaStopIsRequested = true; _vqaIsPlaying = false; return; } + if (_actorIsSpeaking && (event.kbd.keycode == Common::KEYCODE_ESCAPE || event.kbd.keycode == Common::KEYCODE_RETURN)) { + _actorSpeakStopIsRequested = true; + _actorIsSpeaking = false; + + return; + } + if (!playerHasControl() || _isWalkingInterruptible || _actorIsSpeaking || _vqaIsPlaying) { return; } @@ -1277,6 +1242,15 @@ void BladeRunnerEngine::handleKeyDown(Common::Event &event) { case Common::KEYCODE_F10: _kia->open(kKIASectionQuit); break; + case Common::KEYCODE_TAB: + _kia->openLastOpened(); + break; + case Common::KEYCODE_ESCAPE: + _kia->open(kKIASectionSettings); + break; + case Common::KEYCODE_SPACE: + _combat->change(); + break; default: break; } |