[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