aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner')
-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
}
}