[Scummvm-git-logs] scummvm master -> 2382200205de5dcd3a109305d76abe867d0e5202

antoniou79 antoniou at cti.gr
Tue Jun 25 00:58:40 CEST 2019


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
b4ee8fe294 BLADERUNNER: VK both Runciter and Grigorian is now possible
2382200205 BLADERUNNER: Keydown should be ignored in VK


Commit: b4ee8fe29440404ff85d1a985f613aaeb54d55e8
    https://github.com/scummvm/scummvm/commit/b4ee8fe29440404ff85d1a985f613aaeb54d55e8
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-06-25T01:54:51+03:00

Commit Message:
BLADERUNNER: VK both Runciter and Grigorian is now possible

For restored content version

Changed paths:
    engines/bladerunner/dialogue_menu.cpp
    engines/bladerunner/dialogue_menu.h
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/scene/ps09.cpp
    engines/bladerunner/script/scene/rc02.cpp
    engines/bladerunner/script/script.cpp
    engines/bladerunner/script/script.h


diff --git a/engines/bladerunner/dialogue_menu.cpp b/engines/bladerunner/dialogue_menu.cpp
index 94d24dc..cdf7246 100644
--- a/engines/bladerunner/dialogue_menu.cpp
+++ b/engines/bladerunner/dialogue_menu.cpp
@@ -143,6 +143,23 @@ bool DialogueMenu::addToList(int answer, bool done, int priorityPolite, int prio
 	return true;
 }
 
+/**
+* Aux funtion - used in cut content mode to re-use some NeverRepeatOnceSelected dialogue options for different characters
+*/
+bool DialogueMenu::clearNeverRepeatWasSelectedFlag(int answer) {
+	int foundIndex = -1;
+	for (int i = 0; i != _neverRepeatListSize; ++i) {
+		if (answer == _neverRepeatValues[i]) {
+			foundIndex = i;
+			break;
+		}
+	}
+
+	if (foundIndex >= 0 && _neverRepeatWasSelected[foundIndex]) {
+		_neverRepeatWasSelected[foundIndex] = false;
+	}
+}
+
 bool DialogueMenu::addToListNeverRepeatOnceSelected(int answer, int priorityPolite, int priorityNormal, int prioritySurly) {
 	int foundIndex = -1;
 	for (int i = 0; i != _neverRepeatListSize; ++i) {
diff --git a/engines/bladerunner/dialogue_menu.h b/engines/bladerunner/dialogue_menu.h
index d4c1ac0..7f0019c 100644
--- a/engines/bladerunner/dialogue_menu.h
+++ b/engines/bladerunner/dialogue_menu.h
@@ -88,6 +88,7 @@ public:
 	bool show();
 	bool hide();
 	bool addToList(int answer, bool done, int priorityPolite, int priorityNormal, int prioritySurly);
+	bool clearNeverRepeatWasSelectedFlag(int answer); // aux funtion - used in cut content mode to re-use some dialogue options for different characters
 	bool addToListNeverRepeatOnceSelected(int answer, int priorityPolite, int priorityNormal, int prioritySurly);
 	bool removeFromList(int answer);
 	bool clearList();
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 32d3d4f..4e607d3 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -459,7 +459,7 @@ enum Flags {
 	kFlagPS12toPS11 = 17, // is never checked
 	kFlagPS12toPS13 = 18,
 	kFlagPS13toPS12 = 19,
-	// 20 is never used
+	kFlagRC02RunciterVKChosen = 20, // re-purposed - original: 20 is never used
 	kFlagPS13toPS05 = 21,
 	kFlagPS02toPS05 = 22,
 	kFlagPS06toPS05 = 23,
@@ -489,7 +489,7 @@ enum Flags {
 	kFlagDektoraIsReplicant = 47,
 	kFlagSadikIsReplicant = 48,
 	kFlagPS09GrigorianTalk1 = 49,
-	// 50 is never used
+	kFlagPS09GrigorianVKChosen = 50, // re-purposed, original is never used
 	kFlagGrigorianDislikeMcCoy = 51,
 	// 52 is never used
 	kFlagPS09GrigorianDialogue = 53,
diff --git a/engines/bladerunner/script/scene/ps09.cpp b/engines/bladerunner/script/scene/ps09.cpp
index 9b38721..c5a0143 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 1dbae55..f7830ee 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 a98a5ec..1410709 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 8adfb1d..3a31e49 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();


Commit: 2382200205de5dcd3a109305d76abe867d0e5202
    https://github.com/scummvm/scummvm/commit/2382200205de5dcd3a109305d76abe867d0e5202
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-06-25T01:54:51+03:00

Commit Message:
BLADERUNNER: Keydown should be ignored in VK

Changed paths:
    engines/bladerunner/bladerunner.cpp


diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 9621612..98baf5b 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -1211,6 +1211,10 @@ void BladeRunnerEngine::handleKeyDown(Common::Event &event) {
 		return;
 	}
 
+	if (_vk->isOpen()) {
+		return;
+	}
+
 	if (_dialogueMenu->isOpen()) {
 		return;
 	}





More information about the Scummvm-git-logs mailing list