[Scummvm-git-logs] scummvm master -> 5eed7f091d8d96f3265610afe58006715bf16661

antoniou79 antoniou at cti.gr
Sat Jun 1 02:05:18 CEST 2019


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

Summary:
2ff564d612 BLADERUNNER: Restored comment on statues
f50492e971 BLADERUNNER: Restore comment on RC02 dead animals
127302270b BLADERUNNER: DR01, DR02 improved navigation
5eed7f091d BLADERUNNER: Remove awry clickables from BB01, CT12, CT01


Commit: 2ff564d6120002eb571cbe5f4a1763ac7da9568e
    https://github.com/scummvm/scummvm/commit/2ff564d6120002eb571cbe5f4a1763ac7da9568e
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-06-01T02:59:03+03:00

Commit Message:
BLADERUNNER: Restored comment on statues

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/scene/dr06.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index f802969..f672a14 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -847,7 +847,7 @@ enum Flags {
 	kFlagHC02HawkersBarkeepBraceletTalk = 405,
 	kFlagUnused406 = 406, // is never checked
 	kFlagUnused407 = 407, // is never checked
-	// 408 is never used
+	kFlagMcCoyCommentsOnStatues = 408, // re-purposed. Original: 408 is never used
 	kFlagMA01GaffApproachMcCoy = 409,
 	kFlagBB06AndroidDestroyed = 410,
 	kFlagKP02toUG12 = 411,
diff --git a/engines/bladerunner/script/scene/dr06.cpp b/engines/bladerunner/script/scene/dr06.cpp
index e8fa2f6..037f10d 100644
--- a/engines/bladerunner/script/scene/dr06.cpp
+++ b/engines/bladerunner/script/scene/dr06.cpp
@@ -37,6 +37,11 @@ void SceneScriptDR06::InitializeScene() {
 	) {
 		Scene_Exit_Add_2D_Exit(1, 0, 272, 46, 477, 2);
 	}
+	if (_vm->_cutContent && !Game_Flag_Query(kFlagMcCoyCommentsOnFans)) {
+		Scene_2D_Region_Add(0, 300,  80, 360, 190); // statue 1
+		Scene_2D_Region_Add(1,  60, 120, 155, 260); // statue 2
+		Scene_2D_Region_Add(2, 378, 270, 420, 320); // statue 3
+	}
 
 	Ambient_Sounds_Add_Looping_Sound(kSfxSKINBED1, 25, 0, 1);
 	Ambient_Sounds_Add_Sound(kSfxSWEEP3, 5, 60, 20, 20, -100, 100, -101, -101, 0, 0);
@@ -225,6 +230,18 @@ bool SceneScriptDR06::ClickedOnExit(int exitId) {
 }
 
 bool SceneScriptDR06::ClickedOn2DRegion(int region) {
+if (_vm->_cutContent) {
+		if (!Game_Flag_Query(kFlagMcCoyCommentsOnStatues) && (region == 0 || region == 1 || region == 2) ) {
+			Game_Flag_Set(kFlagMcCoyCommentsOnStatues);
+			Actor_Face_Heading(kActorMcCoy, 88, true);
+			Actor_Voice_Over(810, kActorVoiceOver);
+			Actor_Voice_Over(820, kActorVoiceOver);
+			Scene_2D_Region_Remove(0);
+			Scene_2D_Region_Remove(1);
+			Scene_2D_Region_Remove(2);
+			return true;
+		}
+	}
 	return false;
 }
 


Commit: f50492e971e076c59a3928b6afd5c0eaa6919aa5
    https://github.com/scummvm/scummvm/commit/f50492e971e076c59a3928b6afd5c0eaa6919aa5
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-06-01T02:59:03+03:00

Commit Message:
BLADERUNNER: Restore comment on RC02 dead animals

Also fix some awry clickable objects in RC51

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


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index f672a14..da3d356 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -444,7 +444,7 @@ enum Flags {
 	kFlagGamePlayedInRestoredContentMode = 2, // Re-purposed. Original: 2 is never used
 	kFlagRC01GotOfficersStatement = 3,
 	kFlagRC02Left = 4,
-	// 5 is never used
+	kFlagMcCoyCommentsOnMurderedAnimals = 5, // Re-purposed. Original: 5 is never used
 	kFlagRC02RunciterInterview = 6,
 	kFlagCT01TalkToHowieAboutDeadZuben = 7, // Re-purposed. Original: 7 is never used
 	kFlagRC01toRC02 = 8,
diff --git a/engines/bladerunner/script/scene/rc02.cpp b/engines/bladerunner/script/scene/rc02.cpp
index 15d8cfe..049427f 100644
--- a/engines/bladerunner/script/scene/rc02.cpp
+++ b/engines/bladerunner/script/scene/rc02.cpp
@@ -75,12 +75,37 @@ void SceneScriptRC02::SceneLoaded() {
 	Clickable_Object("SCRTY CA03");
 	Unclickable_Object("GRL_DSKLEG");
 	Unclickable_Object("CURTAIN");
-	Unclickable_Object("DRAPE01");
-	Unclickable_Object("DRAPE02");
-	Unclickable_Object("DRAPE03");
-	Unclickable_Object("DRAPE05");
-	Unclickable_Object("DRAPE06");
-	Unclickable_Object("DRAPE07");
+	if (_vm->_cutContent) {
+		if (Global_Variable_Query(kVariableChapter) == 1
+		    && !Game_Flag_Query(kFlagMcCoyCommentsOnMurderedAnimals)
+		    && !Actor_Clue_Query(kActorMcCoy, kClueLabCorpses)
+		) {
+			Clickable_Object("DRAPE01");
+			Clickable_Object("DRAPE02");
+			Clickable_Object("DRAPE03");
+			Clickable_Object("DRAPE04");
+			Clickable_Object("DRAPE05");
+			Clickable_Object("DRAPE06");
+			Clickable_Object("DRAPE07");
+		} else {
+			Unclickable_Object("DRAPE01");
+			Unclickable_Object("DRAPE02");
+			Unclickable_Object("DRAPE03");
+			Unclickable_Object("DRAPE04");
+			Unclickable_Object("DRAPE05");
+			Unclickable_Object("DRAPE06");
+			Unclickable_Object("DRAPE07");
+		}
+	} else {
+		// original code
+		Unclickable_Object("DRAPE01");
+		Unclickable_Object("DRAPE02");
+		Unclickable_Object("DRAPE03");
+		Unclickable_Object("DRAPE05");
+		Unclickable_Object("DRAPE06");
+		Unclickable_Object("DRAPE07");
+	}
+
 	if (Actor_Clue_Query(kActorMcCoy, kClueRuncitersVideo) || Global_Variable_Query(kVariableChapter) > 1) {
 		Unclickable_Object("SCRTY CA03");
 	}
@@ -133,6 +158,30 @@ bool SceneScriptRC02::ClickedOn3DObject(const char *objectName, bool a2) {
 			return true;
 		}
 	}
+
+	if (_vm->_cutContent
+	    && !Game_Flag_Query(kFlagMcCoyCommentsOnMurderedAnimals)
+	    && Global_Variable_Query(kVariableChapter) == 1
+	    && !Actor_Clue_Query(kActorMcCoy, kClueLabCorpses)
+	    && (Object_Query_Click("DRAPE01", objectName)
+	        || Object_Query_Click("DRAPE02", objectName)
+	        || Object_Query_Click("DRAPE03", objectName)
+	        || Object_Query_Click("DRAPE04", objectName)
+	        || Object_Query_Click("DRAPE05", objectName)
+	        || Object_Query_Click("DRAPE06", objectName)
+	        || Object_Query_Click("DRAPE07", objectName))
+	) {
+		Game_Flag_Set(kFlagMcCoyCommentsOnMurderedAnimals);
+		Unclickable_Object("DRAPE01");
+		Unclickable_Object("DRAPE02");
+		Unclickable_Object("DRAPE03");
+		Unclickable_Object("DRAPE04");
+		Unclickable_Object("DRAPE05");
+		Unclickable_Object("DRAPE06");
+		Unclickable_Object("DRAPE07");
+		Actor_Voice_Over(1940, kActorVoiceOver);
+		return true;
+	}
 	return false;
 }
 
diff --git a/engines/bladerunner/script/scene/rc51.cpp b/engines/bladerunner/script/scene/rc51.cpp
index cc54684..9cac458 100644
--- a/engines/bladerunner/script/scene/rc51.cpp
+++ b/engines/bladerunner/script/scene/rc51.cpp
@@ -47,6 +47,19 @@ void SceneScriptRC51::SceneLoaded() {
 	Unclickable_Object("GRL_DSK");
 	Unclickable_Object("GRL_DSKLEG");
 	Unclickable_Object("CURTAIN");
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+	Unclickable_Object("SCRTY CA03");
+	Unclickable_Object("DRAPE01");
+	Unclickable_Object("DRAPE02");
+	Unclickable_Object("DRAPE03");
+	Unclickable_Object("DRAPE04");
+	Unclickable_Object("DRAPE05");
+	Unclickable_Object("DRAPE06");
+	Unclickable_Object("DRAPE07");
+	Unclickable_Object("DRAPE08");
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
 	if (!Game_Flag_Query(kFlagRC51ChopstickWrapperTaken)) {
 		Item_Add_To_World(kItemChopstickWrapper, kModelAnimationChopstickWrapper, kSetRC02_RC51, 47.56f, -1238.89f, 108048.61f, 0, 6, 18, false, true, false, true);
 	}


Commit: 127302270b81bbd8f1a66451d90632b7bd764e7f
    https://github.com/scummvm/scummvm/commit/127302270b81bbd8f1a66451d90632b7bd764e7f
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-06-01T02:59:03+03:00

Commit Message:
BLADERUNNER: DR01, DR02 improved navigation

Changed paths:
    engines/bladerunner/script/scene/dr01.cpp
    engines/bladerunner/script/scene/dr02.cpp


diff --git a/engines/bladerunner/script/scene/dr01.cpp b/engines/bladerunner/script/scene/dr01.cpp
index 4b609c8..ad6f441 100644
--- a/engines/bladerunner/script/scene/dr01.cpp
+++ b/engines/bladerunner/script/scene/dr01.cpp
@@ -129,11 +129,36 @@ bool SceneScriptDR01::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptDR01::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -835.0f, -0.04f, -118.0f, 0, true, false, false)) {
-			Async_Actor_Walk_To_XYZ(kActorMcCoy, -911.0f, -0.04f, -118.0f, 0, false);
-			Ambient_Sounds_Adjust_Looping_Sound(kSfxFACTAMB2, 10, -100, 1);
-			Game_Flag_Set(kFlagDR01toDR02);
-			Set_Enter(kSetDR01_DR02_DR04, kSceneDR02);
+		if (_vm->_cutContent) {
+			float x, y, z;
+			Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
+			bool exitFlag = true;
+			bool fromFarTop = false;
+			if (x < -1088) {
+				fromFarTop = true;
+				exitFlag = Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1149.80f, 0.56f, -94.45f, 0, true, false, false);
+			} else if (-1088 < x && x < -642) {
+				exitFlag = Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1271.89f, 6.71f, -268.63f, 0, true, false, false);
+			} else {
+				exitFlag = Loop_Actor_Walk_To_XYZ(kActorMcCoy, -835.0f, -0.04f, -118.0f, 0, true, false, false);
+			}
+			if (!exitFlag) {
+				if (fromFarTop) {
+					Async_Actor_Walk_To_XYZ(kActorMcCoy,  -1066.51f, 0.51f, -110.60f, 0, false);
+				} else {
+					Async_Actor_Walk_To_XYZ(kActorMcCoy, -911.0f, -0.04f, -118.0f, 0, false);
+				}
+				Ambient_Sounds_Adjust_Looping_Sound(kSfxFACTAMB2, 10, -100, 1);
+				Game_Flag_Set(kFlagDR01toDR02);
+				Set_Enter(kSetDR01_DR02_DR04, kSceneDR02);
+			}
+		} else {
+			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -835.0f, -0.04f, -118.0f, 0, true, false, false)) {
+				Async_Actor_Walk_To_XYZ(kActorMcCoy, -911.0f, -0.04f, -118.0f, 0, false);
+				Ambient_Sounds_Adjust_Looping_Sound(kSfxFACTAMB2, 10, -100, 1);
+				Game_Flag_Set(kFlagDR01toDR02);
+				Set_Enter(kSetDR01_DR02_DR04, kSceneDR02);
+			}
 		}
 		return true;
 	}
diff --git a/engines/bladerunner/script/scene/dr02.cpp b/engines/bladerunner/script/scene/dr02.cpp
index 08faac0..0a07a50 100644
--- a/engines/bladerunner/script/scene/dr02.cpp
+++ b/engines/bladerunner/script/scene/dr02.cpp
@@ -40,6 +40,11 @@ void SceneScriptDR02::InitializeScene() {
 	if (Game_Flag_Query(kFlagBB01Available)) {
 		Scene_Exit_Add_2D_Exit(2, 95, 0, 148, 292, 0);
 	}
+	if (_vm->_cutContent) {
+		// improved navigation of this set of scenes
+		Scene_Exit_Add_2D_Exit(3,  0,   0,  34, 479, 3);
+		Scene_Exit_Add_2D_Exit(4, 34, 445, 605, 479, 2);
+	}
 
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(false);
 	Ambient_Sounds_Remove_All_Looping_Sounds(0);
@@ -72,6 +77,8 @@ void SceneScriptDR02::SceneLoaded() {
 	Obstacle_Object("PARKMETR01", true);
 	Obstacle_Object("Z2ENTRYDR", true);
 	Obstacle_Object("Z2DR2", true);
+	// there are two objects named "TRASH CAN WITH FIRE" in the scene (but not visible)
+	// and none of them have to be set clickable
 	Clickable_Object("TRASH CAN WITH FIRE");
 	Clickable_Object("U2 CHEWDOOR");
 	Clickable_Object("MMTRASHCAN");
@@ -86,6 +93,9 @@ void SceneScriptDR02::SceneLoaded() {
 	Clickable_Object("TRANSFORMER 01");
 	Clickable_Object("TRANSFORMER 02");
 	Clickable_Object("V2CANPIPE02");
+	// there are two objects named "TRASH CAN WITH FIRE" in the scene (but not visible)
+	// and none of them have to be set clickable
+	// and also reseting them here would only reset one of them - and one remains as clickable
 	Unclickable_Object("TRASH CAN WITH FIRE");
 	Unclickable_Object("U2 CHEWDOOR");
 	Unclickable_Object("MMTRASHCAN");
@@ -130,6 +140,25 @@ bool SceneScriptDR02::ClickedOnExit(int exitId) {
 		return true;
 	}
 
+	if (_vm->_cutContent
+	    && (exitId == 3 || exitId == 4)) {
+	    if ((exitId == 3 && !Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1162.45f, 0.78f, -167.45f, 0, true, false, false))
+		    || (exitId == 4 && !Loop_Actor_Walk_To_XYZ(kActorMcCoy, -975.17f, 0.42f, -120.04f, 0, true, false, false))
+		) {
+			if (exitId == 3) {
+				Async_Actor_Walk_To_XYZ(kActorMcCoy, -1176.40f, 0.58f, -86.02f, 0, false);
+			} else {
+				Async_Actor_Walk_To_XYZ(kActorMcCoy, -845.00f, 0.37f, -31.60f, 0, false);
+			}
+			Game_Flag_Set(kFlagDR02toDR01);
+			Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
+		}
+		Ambient_Sounds_Adjust_Looping_Sound(kSfxHUMMER3, 12, -101, 1);
+		Ambient_Sounds_Adjust_Looping_Sound(kSfxBIGFAN2, 14, -101, 1);
+		return true;
+	}
+
+
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1162.0f, 7.18f, -322.0f, 0, true, false, false)) {
 			if (Global_Variable_Query(kVariableChapter) > 2) {


Commit: 5eed7f091d8d96f3265610afe58006715bf16661
    https://github.com/scummvm/scummvm/commit/5eed7f091d8d96f3265610afe58006715bf16661
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-06-01T02:59:04+03:00

Commit Message:
BLADERUNNER: Remove awry clickables from BB01, CT12, CT01

Changed paths:
    engines/bladerunner/script/scene/bb01.cpp
    engines/bladerunner/script/scene/ct01.cpp
    engines/bladerunner/script/scene/ct12.cpp
    engines/bladerunner/set.cpp


diff --git a/engines/bladerunner/script/scene/bb01.cpp b/engines/bladerunner/script/scene/bb01.cpp
index 34ddc47..488022d 100644
--- a/engines/bladerunner/script/scene/bb01.cpp
+++ b/engines/bladerunner/script/scene/bb01.cpp
@@ -88,6 +88,12 @@ void SceneScriptBB01::InitializeScene() {
 
 void SceneScriptBB01::SceneLoaded() {
 	Obstacle_Object("COLUME", true);
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+	Unclickable_Object("OBJECT03");
+	Unclickable_Object("OBJECT04");
+	Unclickable_Object("OBJECT05");
+#endif // BLADERUNNER_ORIGINAL_BUGS
 }
 
 bool SceneScriptBB01::MouseClick(int x, int y) {
diff --git a/engines/bladerunner/script/scene/ct01.cpp b/engines/bladerunner/script/scene/ct01.cpp
index 754d939..34a2a5b 100644
--- a/engines/bladerunner/script/scene/ct01.cpp
+++ b/engines/bladerunner/script/scene/ct01.cpp
@@ -146,6 +146,11 @@ void SceneScriptCT01::SceneLoaded() {
 	Unclickable_Object("TURBINE");
 	Unclickable_Object("SPINNER BODY");
 	Unclickable_Object("OBJECT04");
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+	Unclickable_Object("OBJECT03");
+	Unclickable_Object("OBJECT05");
+#endif // BLADERUNNER_ORIGINAL_BUGS
 }
 
 bool SceneScriptCT01::MouseClick(int x, int y) {
diff --git a/engines/bladerunner/script/scene/ct12.cpp b/engines/bladerunner/script/scene/ct12.cpp
index 7c69762..8cd5210 100644
--- a/engines/bladerunner/script/scene/ct12.cpp
+++ b/engines/bladerunner/script/scene/ct12.cpp
@@ -120,6 +120,12 @@ void SceneScriptCT12::SceneLoaded() {
 	Unobstacle_Object("SPINNER BODY", true);
 	Unobstacle_Object("HOWFLOOR", true);
 	Unclickable_Object("TURBINE");
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+	Unclickable_Object("OBJECT03");
+	Unclickable_Object("OBJECT04");
+	Unclickable_Object("OBJECT05");
+#endif // BLADERUNNER_ORIGINAL_BUGS
 }
 
 bool SceneScriptCT12::MouseClick(int x, int y) {
diff --git a/engines/bladerunner/set.cpp b/engines/bladerunner/set.cpp
index 2e3bd44..6e29a37 100644
--- a/engines/bladerunner/set.cpp
+++ b/engines/bladerunner/set.cpp
@@ -579,27 +579,38 @@ void Set::patchInAdditionalObjectsInSet() {
 */
 void Set::patchOutBadObjectsFromSet() {
 	int removedIndexRef = 0;
-	switch (_vm->_scene->getSceneId()) {
-	case kSceneNR11:
-		for (int objectId = 0; objectId < _objectCount; ++objectId) {
+	bool removeCurrObj = false;
+	for (int objectId = 0; objectId < _objectCount; ++objectId) {
+		switch (_vm->_scene->getSceneId()) {
+		case kSceneNR11:
 			if ((objectId == 46 && _objects[objectId].name == "BOX53")
 			    || (objectId == 36 && _objects[objectId].name == "BOX43")
-				|| (objectId == 37 && _objects[objectId].name == "BOX44")
+			    || (objectId == 37 && _objects[objectId].name == "BOX44")
 			    || (objectId == 13 && _objects[objectId].name == "LOFT04")
 			) {
 				// Removing obj 46, 36, 37 (BOX53, BOX43, BOX44) fixes paths in the scene
 				// Removing obj 13 (LOFT04) fixes duplicate named box that confuses the engine
-				_objects[objectId].name = Common::String::format("REMOVED%02d", removedIndexRef++);
-				_objects[objectId].isObstacle  = 0;
-				_objects[objectId].isClickable = 0;
-				_objects[objectId].isHotMouse  = 0;
-				_objects[objectId].unknown1    = 0;
-				_objects[objectId].isTarget    = 0;
+				removeCurrObj = true;
 			}
+			break;
+		case kSceneDR02:
+			if ((objectId == 44 && _objects[objectId].name == "TRASH CAN WITH FIRE")) {
+				// Removing obj 44 (TRASH CAN WITH FIRE) fixes duplicate named box (id: 29) that confuses the engine
+				removeCurrObj = true;
+			}
+			break;
+		default:
+			break;
+		}
+		if (removeCurrObj) {
+			removeCurrObj = false;
+			_objects[objectId].name = Common::String::format("REMOVED%02d", removedIndexRef++);
+			_objects[objectId].isObstacle  = 0;
+			_objects[objectId].isClickable = 0;
+			_objects[objectId].isHotMouse  = 0;
+			_objects[objectId].unknown1    = 0;
+			_objects[objectId].isTarget    = 0;
 		}
-		break;
-	default:
-		break;
 	}
 	return;
 }





More information about the Scummvm-git-logs mailing list