aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/input.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2008-07-21 06:08:30 +0000
committerNicola Mettifogo2008-07-21 06:08:30 +0000
commit361bed0a9535104611d3e0e88d5b3e1ad788639d (patch)
tree6f8f0f8071b097ff6589f01c298337619e4a0f84 /engines/parallaction/input.cpp
parentf82cf58780dde55ad1367a0011ffc7eeed7991c8 (diff)
downloadscummvm-rg350-361bed0a9535104611d3e0e88d5b3e1ad788639d.tar.gz
scummvm-rg350-361bed0a9535104611d3e0e88d5b3e1ad788639d.tar.bz2
scummvm-rg350-361bed0a9535104611d3e0e88d5b3e1ad788639d.zip
Massive refactoring of dialogue code, which is now implemented as a finite state machine. Related code in other files has been updated has well.
svn-id: r33162
Diffstat (limited to 'engines/parallaction/input.cpp')
-rw-r--r--engines/parallaction/input.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/engines/parallaction/input.cpp b/engines/parallaction/input.cpp
index 3797158661..4d0b7085c2 100644
--- a/engines/parallaction/input.cpp
+++ b/engines/parallaction/input.cpp
@@ -42,12 +42,14 @@ uint16 Input::readInput() {
uint16 KeyDown = 0;
_mouseButtons = kMouseNone;
+ _lastKeyDownAscii = -1;
Common::EventManager *eventMan = _vm->_system->getEventManager();
while (eventMan->pollEvent(e)) {
switch (e.type) {
case Common::EVENT_KEYDOWN:
+ _lastKeyDownAscii = e.kbd.ascii;
if (e.kbd.flags == Common::KBD_CTRL && e.kbd.keycode == 'd')
_vm->_debugger->attach();
if (_vm->getFeatures() & GF_DEMO) break;
@@ -97,6 +99,11 @@ uint16 Input::readInput() {
}
+bool Input::getLastKeyDown(uint16 &ascii) {
+ ascii = _lastKeyDownAscii;
+ return (_lastKeyDownAscii != -1);
+}
+
// FIXME: see comment for readInput()
void Input::waitForButtonEvent(uint32 buttonEventMask, int32 timeout) {
@@ -192,6 +199,10 @@ InputData* Input::updateInput() {
case kInputModeGame:
updateGameInput();
break;
+
+ case kInputModeDialogue:
+ readInput();
+ break;
}
return &_inputData;