aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/bladerunner.cpp
diff options
context:
space:
mode:
authorPeter Kohaut2019-06-22 11:39:21 +0200
committerPeter Kohaut2019-06-22 11:40:47 +0200
commit4cd58f2fba25858d026a48eafea95ac3acd0620e (patch)
tree536cb3e84fef70e874f0d581d1f9c54a3d0cf4e2 /engines/bladerunner/bladerunner.cpp
parent9d0de3e168f4975ba2974ac71031fffdd008819f (diff)
downloadscummvm-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.cpp68
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;
}