diff options
author | Thanasis Antoniou | 2019-05-09 00:29:26 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-05-09 00:29:26 +0300 |
commit | 36ae364b9326df4ec19026a44e9204da0a0381e7 (patch) | |
tree | 735bba0e52f93177ed99fa260993604f59277d55 | |
parent | eb5aafa90ce8ab8c2ed4a78ca5073b3b16716a5c (diff) | |
download | scummvm-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.h | 4 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/dektora.cpp | 8 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/insect_dealer.cpp | 7 |
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 } } |