diff options
Diffstat (limited to 'engines/queen')
-rw-r--r-- | engines/queen/POTFILES | 2 | ||||
-rw-r--r-- | engines/queen/logic.cpp | 6 | ||||
-rw-r--r-- | engines/queen/talk.cpp | 12 |
3 files changed, 13 insertions, 7 deletions
diff --git a/engines/queen/POTFILES b/engines/queen/POTFILES index 1baf9c24de..28624662ca 100644 --- a/engines/queen/POTFILES +++ b/engines/queen/POTFILES @@ -1 +1 @@ -engines/queen/queen.cpp +engines/queen/detection.cpp diff --git a/engines/queen/logic.cpp b/engines/queen/logic.cpp index d48bb8a498..664a9a15f9 100644 --- a/engines/queen/logic.cpp +++ b/engines/queen/logic.cpp @@ -2115,9 +2115,15 @@ void LogicInterview::setupSpecialMoveTable() { } void LogicGame::useJournal() { + _vm->input()->clearKeyVerb(); + _vm->input()->clearMouseButton(); + _vm->command()->clear(false); _journal->use(); _vm->walk()->stopJoe(); + + _vm->input()->clearKeyVerb(); + _vm->input()->clearMouseButton(); } bool LogicGame::changeToSpecialRoom() { diff --git a/engines/queen/talk.cpp b/engines/queen/talk.cpp index 1b9d72babc..e86a53d448 100644 --- a/engines/queen/talk.cpp +++ b/engines/queen/talk.cpp @@ -189,7 +189,7 @@ void Talk::talk(const char *filename, int personInRoom, char *cutawayFilename) { } } - if (_vm->input()->talkQuit()) + if (_vm->input()->talkQuit() || _vm->shouldQuit()) break; retval = _dialogueTree[level][selectedSentence].dialogueNodeValue1; @@ -1250,15 +1250,12 @@ int16 Talk::selectSentence() { } _vm->input()->clearKeyVerb(); + _vm->input()->clearMouseButton(); if (sentenceCount > 0) { int oldZone = 0; - while (0 == selectedSentence) { - - if (_vm->input()->talkQuit()) - break; - + while (0 == selectedSentence && !_vm->input()->talkQuit() && !_vm->shouldQuit()) { _vm->update(); Common::Point mouse = _vm->input()->getMousePos(); @@ -1328,6 +1325,9 @@ int16 Talk::selectSentence() { } } + _vm->input()->clearKeyVerb(); + _vm->input()->clearMouseButton(); + debug(6, "Selected sentence %i", selectedSentence); arrowBobUp->active = false; |