aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/dialogue_menu.cpp
diff options
context:
space:
mode:
authorThanasis Antoniou2019-04-30 15:16:17 +0300
committerThanasis Antoniou2019-04-30 15:19:55 +0300
commitfd9cfd9604191f1e98d7cfaa916bd34863ea6d95 (patch)
tree805dd069785c00c3d89f6a55809e826b57699594 /engines/bladerunner/dialogue_menu.cpp
parent31c79b60649bc0a8559bcdb28af54ab64335b2ac (diff)
downloadscummvm-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.cpp17
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) {