diff options
author | Thanasis Antoniou | 2019-04-30 15:16:17 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-04-30 15:19:55 +0300 |
commit | fd9cfd9604191f1e98d7cfaa916bd34863ea6d95 (patch) | |
tree | 805dd069785c00c3d89f6a55809e826b57699594 /engines/bladerunner/dialogue_menu.cpp | |
parent | 31c79b60649bc0a8559bcdb28af54ab64335b2ac (diff) | |
download | scummvm-rg350-fd9cfd9604191f1e98d7cfaa916bd34863ea6d95.tar.gz scummvm-rg350-fd9cfd9604191f1e98d7cfaa916bd34863ea6d95.tar.bz2 scummvm-rg350-fd9cfd9604191f1e98d7cfaa916bd34863ea6d95.zip |
BLADERUNNER: User choice mode should not autoselect last option
Diffstat (limited to 'engines/bladerunner/dialogue_menu.cpp')
-rw-r--r-- | engines/bladerunner/dialogue_menu.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/engines/bladerunner/dialogue_menu.cpp b/engines/bladerunner/dialogue_menu.cpp index fb777d958d..94d24dc38b 100644 --- a/engines/bladerunner/dialogue_menu.cpp +++ b/engines/bladerunner/dialogue_menu.cpp @@ -135,7 +135,7 @@ bool DialogueMenu::addToList(int answer, bool done, int priorityPolite, int prio _items[index].isDone = done; _items[index].priorityPolite = priorityPolite; _items[index].priorityNormal = priorityNormal; - _items[index].prioritySurly = prioritySurly; + _items[index].prioritySurly = prioritySurly; // CHECK(madmoose): BLADE.EXE calls this needlessly // calculatePosition(); @@ -193,6 +193,7 @@ int DialogueMenu::queryInput() { _selectedItemIndex = 0; answer = _items[_selectedItemIndex].answerValue; } else if (_listSize == 2) { +#if BLADERUNNER_ORIGINAL_BUGS if (_items[0].isDone) { _selectedItemIndex = 1; answer = _items[_selectedItemIndex].answerValue; @@ -200,6 +201,20 @@ int DialogueMenu::queryInput() { _selectedItemIndex = 0; answer = _items[_selectedItemIndex].answerValue; } +#else + // In User Choice mode, avoid auto-select of last option + // In this mode, player should still have agency to skip the last (non- "DONE") + // question instead of automatically asking it because the other remaining option is "DONE" + if (_vm->_settings->getPlayerAgenda() != kPlayerAgendaUserChoice) { + if (_items[0].isDone) { + _selectedItemIndex = 1; + answer = _items[_selectedItemIndex].answerValue; + } else if (_items[1].isDone) { + _selectedItemIndex = 0; + answer = _items[_selectedItemIndex].answerValue; + } + } +#endif // BLADERUNNER_ORIGINAL_BUGS } if (answer == -1) { |