aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script')
-rw-r--r--engines/bladerunner/script/scene/ps09.cpp14
-rw-r--r--engines/bladerunner/script/scene/rc02.cpp12
-rw-r--r--engines/bladerunner/script/script.cpp5
-rw-r--r--engines/bladerunner/script/script.h1
4 files changed, 29 insertions, 3 deletions
diff --git a/engines/bladerunner/script/scene/ps09.cpp b/engines/bladerunner/script/scene/ps09.cpp
index 9b38721220..c5a0143626 100644
--- a/engines/bladerunner/script/scene/ps09.cpp
+++ b/engines/bladerunner/script/scene/ps09.cpp
@@ -298,7 +298,16 @@ void SceneScriptPS09::dialogueWithGrigorian() {
) {
DM_Add_To_List_Never_Repeat_Once_Selected(170, 5, 5, 3); // PROTEST
DM_Add_To_List_Never_Repeat_Once_Selected(180, -1, 5, 5); // CARS
- DM_Add_To_List_Never_Repeat_Once_Selected(200, -1, 3, 6); // VOIGT-KAMPFF
+ if ((_vm->_cutContent
+ && (!Game_Flag_Query(kFlagPS09GrigorianVKChosen)
+ && (!Actor_Clue_Query(kActorMcCoy, kClueVKGrigorianHuman) && !Actor_Clue_Query(kActorMcCoy, kClueVKGrigorianReplicant))))
+ || !_vm->_cutContent
+ ) {
+ if (_vm->_cutContent) {
+ Dialogue_Menu_Clear_Never_Repeat_Was_Selected_Flag(200);
+ }
+ DM_Add_To_List_Never_Repeat_Once_Selected(200, -1, 3, 6); // VOIGT-KAMPFF
+ }
}
if (Actor_Clue_Query(kActorMcCoy, kClueGrigoriansNote) // cut feature? it is impossible to obtain this clue
&& (Actor_Clue_Query(kActorMcCoy, kClueGrigorianInterviewA)
@@ -424,6 +433,9 @@ void SceneScriptPS09::dialogueWithGrigorian() {
break;
case 200: // VOIGT-KAMPFF
+ if (_vm->_cutContent) {
+ Game_Flag_Set(kFlagPS09GrigorianVKChosen);
+ }
Actor_Says(kActorMcCoy, 4265, 14);
Actor_Says(kActorGrigorian, 400, 13);
Actor_Says(kActorMcCoy, 4400, 13);
diff --git a/engines/bladerunner/script/scene/rc02.cpp b/engines/bladerunner/script/scene/rc02.cpp
index 1dbae55df5..f7830eeb08 100644
--- a/engines/bladerunner/script/scene/rc02.cpp
+++ b/engines/bladerunner/script/scene/rc02.cpp
@@ -198,8 +198,15 @@ void SceneScriptRC02::dialogueWithRunciter() {
) {
DM_Add_To_List_Never_Repeat_Once_Selected(20, 6, 4, 5); // REFERENCE
}
- if (_vm->_cutContent) {
- DM_Add_To_List_Never_Repeat_Once_Selected(200, -1, 3, 6); // VK - TEST
+ if ((_vm->_cutContent
+ && (!Game_Flag_Query(kFlagRC02RunciterVKChosen)
+ && (!Actor_Clue_Query(kActorMcCoy, kClueVKRunciterHuman) && !Actor_Clue_Query(kActorMcCoy, kClueVKRunciterReplicant))))
+ || !_vm->_cutContent
+ ) {
+ if (_vm->_cutContent) {
+ Dialogue_Menu_Clear_Never_Repeat_Was_Selected_Flag(200);
+ }
+ DM_Add_To_List_Never_Repeat_Once_Selected(200, -1, 3, 6); // VOIGT-KAMPFF
}
Dialogue_Menu_Add_DONE_To_List(30); // DONE
@@ -265,6 +272,7 @@ void SceneScriptRC02::dialogueWithRunciter() {
case 200:
if (_vm->_cutContent) { // scene 16 79
+ Game_Flag_Set(kFlagRC02RunciterVKChosen);
Actor_Face_Actor(kActorMcCoy, kActorRunciter, true);
Actor_Says(kActorMcCoy, 395, 14);
Actor_Face_Actor(kActorRunciter, kActorMcCoy, true);
diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp
index a98a5ec7bd..1410709cbb 100644
--- a/engines/bladerunner/script/script.cpp
+++ b/engines/bladerunner/script/script.cpp
@@ -1295,6 +1295,11 @@ bool ScriptBase::DM_Add_To_List_Never_Repeat_Once_Selected(int answer, int prior
return _vm->_dialogueMenu->addToListNeverRepeatOnceSelected(answer, priorityPolite, priorityNormal, prioritySurly);
}
+bool ScriptBase::Dialogue_Menu_Clear_Never_Repeat_Was_Selected_Flag(int answer) {
+ debugC(kDebugScript, "Dialogue_Menu_Clear_Never_Repeat_Was_Selected_Flag(%d)", answer);
+ return _vm->_dialogueMenu->clearNeverRepeatWasSelectedFlag(answer);
+}
+
bool ScriptBase::Dialogue_Menu_Remove_From_List(int answer) {
debugC(kDebugScript, "Dialogue_Menu_Remove_From_List(%d)", answer);
return _vm->_dialogueMenu->removeFromList(answer);
diff --git a/engines/bladerunner/script/script.h b/engines/bladerunner/script/script.h
index 8adfb1d728..3a31e49481 100644
--- a/engines/bladerunner/script/script.h
+++ b/engines/bladerunner/script/script.h
@@ -201,6 +201,7 @@ protected:
bool Dialogue_Menu_Add_To_List_Never_Repeat_Once_Selected(int answer);
bool DM_Add_To_List(int answer, int priorityPolite, int priorityNormal, int prioritySurly);
bool DM_Add_To_List_Never_Repeat_Once_Selected(int answer, int priorityPolite, int priorityNormal, int prioritySurly);
+ bool Dialogue_Menu_Clear_Never_Repeat_Was_Selected_Flag(int answer);
bool Dialogue_Menu_Remove_From_List(int answer);
int Dialogue_Menu_Query_Input();
int Dialogue_Menu_Query_List_Size();