[Scummvm-git-logs] scummvm master -> eb5aafa90ce8ab8c2ed4a78ca5073b3b16716a5c

antoniou79 antoniou at cti.gr
Wed May 8 22:58:15 CEST 2019


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

Summary:
eb5aafa90c BLADERUNNER: Fix scorpion cage blink in and out


Commit: eb5aafa90ce8ab8c2ed4a78ca5073b3b16716a5c
    https://github.com/scummvm/scummvm/commit/eb5aafa90ce8ab8c2ed4a78ca5073b3b16716a5c
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-05-08T23:56:38+03:00

Commit Message:
BLADERUNNER: Fix scorpion cage blink in and out

Original bug occurs in transitions from AR01 to AR02

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


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 59185a5..7140243 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -552,7 +552,7 @@ enum Flags {
 	kFlagHC02toHC04 = 110,
 	kFlagPS07KleinTalkClues = 111,
 	// 112 is never used
-	// 113 is never used
+	kFlagScorpionsInAR02 = 113, // // Re-purposed. Original: 113 is never used
 	kFlagRC03toRC01 = 114,
 	kFlagRC01toRC03 = 115,
 	kFlagRC03toAR02 = 116,
diff --git a/engines/bladerunner/script/scene/ar01.cpp b/engines/bladerunner/script/scene/ar01.cpp
index 4659783..11b6794 100644
--- a/engines/bladerunner/script/scene/ar01.cpp
+++ b/engines/bladerunner/script/scene/ar01.cpp
@@ -119,6 +119,26 @@ void SceneScriptAR01::InitializeScene() {
 void SceneScriptAR01::SceneLoaded() {
 	Obstacle_Object("DF_BOOTH", true);
 	Unobstacle_Object("SPINNER BODY", true);
+
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+	if (Global_Variable_Query(kVariableChapter) < 4
+	    && !Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)
+	    && !Game_Flag_Query(kFlagScorpionsInAR02)
+	) {
+		// the kFlagScorpionsInAR02 flag helps keep track of the item in AR
+		// and make it not blink in and out of existence
+		// in the transition from AR01 to AR02
+		Game_Flag_Set(kFlagScorpionsInAR02);
+		Item_Add_To_World(kItemScorpions, kModelAnimationCageOfScorpions, kSetAR01_AR02, -442.84f, 36.77f, -1144.51f, 360, 36, 36, false, true, false, true);
+	} else if (Global_Variable_Query(kVariableChapter) >= 4
+	           && !Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)
+	           && Game_Flag_Query(kFlagScorpionsInAR02)
+	) {
+		Game_Flag_Reset(kFlagScorpionsInAR02);
+		Item_Remove_From_World(kItemScorpions);
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 }
 
 bool SceneScriptAR01::MouseClick(int x, int y) {
diff --git a/engines/bladerunner/script/scene/ar02.cpp b/engines/bladerunner/script/scene/ar02.cpp
index f02e3e6..882a13a 100644
--- a/engines/bladerunner/script/scene/ar02.cpp
+++ b/engines/bladerunner/script/scene/ar02.cpp
@@ -79,6 +79,7 @@ void SceneScriptAR02::InitializeScene() {
 
 void SceneScriptAR02::SceneLoaded() {
 	Obstacle_Object("DF_BOOTH", true);
+#if BLADERUNNER_ORIGINAL_BUGS
 	if (!Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
 		Item_Add_To_World(kItemScorpions, kModelAnimationCageOfScorpions, kSetAR01_AR02, -442.84f, 36.77f, -1144.51f, 360, 36, 36, false, true, false, true);
 	}
@@ -88,6 +89,24 @@ void SceneScriptAR02::SceneLoaded() {
 		Game_Flag_Set(kFlagNotUsed0);
 		Item_Remove_From_World(kItemScorpions);
 	}
+#else
+	if (Global_Variable_Query(kVariableChapter) < 4
+	    && !Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)
+	    && !Game_Flag_Query(kFlagScorpionsInAR02)
+	) {
+		// the kFlagScorpionsInAR02 flag helps keep track of the item in AR
+		// and make it not blink in and out of existence
+		// in the transition from AR01 to AR02
+		Game_Flag_Set(kFlagScorpionsInAR02);
+		Item_Add_To_World(kItemScorpions, kModelAnimationCageOfScorpions, kSetAR01_AR02, -442.84f, 36.77f, -1144.51f, 360, 36, 36, false, true, false, true);
+	} else if (Global_Variable_Query(kVariableChapter) >= 4
+	           && !Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)
+	           && Game_Flag_Query(kFlagScorpionsInAR02)
+	) {
+		Game_Flag_Reset(kFlagScorpionsInAR02);
+		Item_Remove_From_World(kItemScorpions);
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 }
 
 bool SceneScriptAR02::MouseClick(int x, int y) {





More information about the Scummvm-git-logs mailing list