diff options
-rw-r--r-- | engines/parallaction/dialogue.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/engines/parallaction/dialogue.cpp b/engines/parallaction/dialogue.cpp index 1865171053..f642c4eb89 100644 --- a/engines/parallaction/dialogue.cpp +++ b/engines/parallaction/dialogue.cpp @@ -281,18 +281,20 @@ void DialogueManager::nextAnswer() { return; } - if (!_q->_answers[0]->_text.compareToIgnoreCase("NULL")) { - addVisibleAnswers(_q); - if (_numVisAnswers) { - _answerId = _visAnswers[0]._index; - transitionToState(NEXT_QUESTION); - } else { - transitionToState(DIALOGUE_OVER); - } + // try and check if there are any suitable answers, + // given the current game state + addVisibleAnswers(_q); + if (!_numVisAnswers) { + transitionToState(DIALOGUE_OVER); return; } - - transitionToState(displayAnswers() ? RUN_ANSWER : DIALOGUE_OVER); + + if (!_visAnswers[0]._a->_text.compareToIgnoreCase("NULL")) { + _answerId = _visAnswers[0]._index; + transitionToState(NEXT_QUESTION); + } else { + transitionToState(displayAnswers() ? RUN_ANSWER : DIALOGUE_OVER); + } } void DialogueManager::runAnswer() { |