diff options
author | Nicola Mettifogo | 2008-07-21 06:08:30 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2008-07-21 06:08:30 +0000 |
commit | 361bed0a9535104611d3e0e88d5b3e1ad788639d (patch) | |
tree | 6f8f0f8071b097ff6589f01c298337619e4a0f84 /engines/parallaction/input.cpp | |
parent | f82cf58780dde55ad1367a0011ffc7eeed7991c8 (diff) | |
download | scummvm-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.cpp | 11 |
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; |