aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanasis Antoniou2019-05-09 00:29:26 +0300
committerThanasis Antoniou2019-05-09 00:29:26 +0300
commit36ae364b9326df4ec19026a44e9204da0a0381e7 (patch)
tree735bba0e52f93177ed99fa260993604f59277d55
parenteb5aafa90ce8ab8c2ed4a78ca5073b3b16716a5c (diff)
downloadscummvm-rg350-36ae364b9326df4ec19026a44e9204da0a0381e7.tar.gz
scummvm-rg350-36ae364b9326df4ec19026a44e9204da0a0381e7.tar.bz2
scummvm-rg350-36ae364b9326df4ec19026a44e9204da0a0381e7.zip
BLADERUNNER: Complementary fix for scorpion cage
-rw-r--r--engines/bladerunner/game_constants.h4
-rw-r--r--engines/bladerunner/script/ai/dektora.cpp8
-rw-r--r--engines/bladerunner/script/ai/insect_dealer.cpp7
3 files changed, 17 insertions, 2 deletions
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 7140243053..e412adf944 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
- kFlagScorpionsInAR02 = 113, // // Re-purposed. Original: 113 is never used
+ kFlagScorpionsInAR02 = 113, // Re-purposed. Original: 113 is never used
kFlagRC03toRC01 = 114,
kFlagRC01toRC03 = 115,
kFlagRC03toAR02 = 116,
@@ -1165,7 +1165,7 @@ enum Flags {
kFlagZubenBountyPaid = 723,
kFlagUG15BridgeBreaks = 724,
kFlagCT11DogWrapperAvailable = 725,
- kFlagAR02Entered = 726,
+ kFlagAR02Entered = 726, // Now: never checked (superseded by new kFlagScorpionsInAR02). Original: used to track if McCoy visited AR02 in order to remove scorpion's cage item if Dektora buys it
kFlagPS04WeaponsOrderForm = 727,
kFlagDR01Visited = 728, // Re-purposed. Original: 728 is never used
kFlagNR08DektoraShow = 729
diff --git a/engines/bladerunner/script/ai/dektora.cpp b/engines/bladerunner/script/ai/dektora.cpp
index 0d76f10b2c..94bdfe37e3 100644
--- a/engines/bladerunner/script/ai/dektora.cpp
+++ b/engines/bladerunner/script/ai/dektora.cpp
@@ -56,10 +56,18 @@ bool AIScriptDektora::Update() {
&& Player_Query_Current_Scene() != kSceneAR01
&& Player_Query_Current_Scene() != kSceneAR02
) {
+#if BLADERUNNER_ORIGINAL_BUGS
if (Game_Flag_Query(kFlagAR02Entered)) {
Item_Remove_From_World(kItemScorpions);
}
Game_Flag_Set(kFlagAR02DektoraBoughtScorpions);
+#else
+ if (Game_Flag_Query(kFlagScorpionsInAR02)) {
+ Item_Remove_From_World(kItemScorpions);
+ Game_Flag_Reset(kFlagScorpionsInAR02);
+ }
+ Game_Flag_Set(kFlagAR02DektoraBoughtScorpions);
+#endif
}
}
return true;
diff --git a/engines/bladerunner/script/ai/insect_dealer.cpp b/engines/bladerunner/script/ai/insect_dealer.cpp
index 245aebbafe..41e2c26dc2 100644
--- a/engines/bladerunner/script/ai/insect_dealer.cpp
+++ b/engines/bladerunner/script/ai/insect_dealer.cpp
@@ -113,7 +113,14 @@ bool AIScriptInsectDealer::GoalChanged(int currentGoalNumber, int newGoalNumber)
if (!Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {
Game_Flag_Set(kFlagAR02DektoraBoughtScorpions);
+#if BLADERUNNER_ORIGINAL_BUGS
Item_Remove_From_World(kItemScorpions);
+#else
+ if (Game_Flag_Query(kFlagScorpionsInAR02)) {
+ Game_Flag_Reset(kFlagScorpionsInAR02);
+ Item_Remove_From_World(kItemScorpions);
+ }
+#endif
}
}