diff options
author | Thanasis Antoniou | 2019-05-08 23:56:38 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-05-08 23:56:38 +0300 |
commit | eb5aafa90ce8ab8c2ed4a78ca5073b3b16716a5c (patch) | |
tree | e923c72f999a2be9f879c431b69e116f0f8072db /engines/bladerunner/script | |
parent | db0020c55fa0078e1ff01156454f224df02dba6c (diff) | |
download | scummvm-rg350-eb5aafa90ce8ab8c2ed4a78ca5073b3b16716a5c.tar.gz scummvm-rg350-eb5aafa90ce8ab8c2ed4a78ca5073b3b16716a5c.tar.bz2 scummvm-rg350-eb5aafa90ce8ab8c2ed4a78ca5073b3b16716a5c.zip |
BLADERUNNER: Fix scorpion cage blink in and out
Original bug occurs in transitions from AR01 to AR02
Diffstat (limited to 'engines/bladerunner/script')
-rw-r--r-- | engines/bladerunner/script/scene/ar01.cpp | 20 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ar02.cpp | 19 |
2 files changed, 39 insertions, 0 deletions
diff --git a/engines/bladerunner/script/scene/ar01.cpp b/engines/bladerunner/script/scene/ar01.cpp index 465978376f..11b67945ce 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 f02e3e6b03..882a13aacf 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) { |