aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/parallaction/dialogue.cpp22
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() {