diff options
-rw-r--r-- | engines/pegasus/neighborhood/tsa/fulltsa.cpp | 1 | ||||
-rw-r--r-- | engines/pegasus/neighborhood/tsa/tinytsa.cpp | 1 | ||||
-rw-r--r-- | engines/pegasus/neighborhood/wsc/wsc.cpp | 13 |
3 files changed, 8 insertions, 7 deletions
diff --git a/engines/pegasus/neighborhood/tsa/fulltsa.cpp b/engines/pegasus/neighborhood/tsa/fulltsa.cpp index 9b843da5d6..99efe10272 100644 --- a/engines/pegasus/neighborhood/tsa/fulltsa.cpp +++ b/engines/pegasus/neighborhood/tsa/fulltsa.cpp @@ -2653,7 +2653,6 @@ void FullTSA::receiveNotification(Notification *notification, const Notification GameState.setWSCAnalyzerOn(false); GameState.setWSCDartInAnalyzer(false); GameState.setWSCAnalyzedDart(false); - GameState.setWSCPickedUpAntidote(false); GameState.setWSCSawMorph(false); GameState.setWSCDesignedAntidote(false); GameState.setWSCOfficeMessagesOpen(false); diff --git a/engines/pegasus/neighborhood/tsa/tinytsa.cpp b/engines/pegasus/neighborhood/tsa/tinytsa.cpp index 4f109620c1..0d11f5d904 100644 --- a/engines/pegasus/neighborhood/tsa/tinytsa.cpp +++ b/engines/pegasus/neighborhood/tsa/tinytsa.cpp @@ -337,7 +337,6 @@ void TinyTSA::receiveNotification(Notification *notification, const Notification GameState.setWSCRemovedDart(false); GameState.setWSCAnalyzerOn(false); GameState.setWSCAnalyzedDart(false); - GameState.setWSCPickedUpAntidote(false); GameState.setWSCSawMorph(false); GameState.setWSCDesignedAntidote(false); GameState.setWSCOfficeMessagesOpen(false); diff --git a/engines/pegasus/neighborhood/wsc/wsc.cpp b/engines/pegasus/neighborhood/wsc/wsc.cpp index 50b7774da4..09e2a48a52 100644 --- a/engines/pegasus/neighborhood/wsc/wsc.cpp +++ b/engines/pegasus/neighborhood/wsc/wsc.cpp @@ -2336,13 +2336,16 @@ Hotspot *WSC::getItemScreenSpot(Item *item, DisplayElement *element) { void WSC::pickedUpItem(Item *item) { switch (item->getObjectID()) { case kAntidote: + // WORKAROUND: Make sure the poison is cleared separately from deactivating + // the synthesizer video. + GameState.setWSCPoisoned(false); + GameState.setWSCRemovedDart(false); + _privateFlags.setFlag(kWSCDraggingAntidoteFlag, false); + playSpotSoundSync(kDrinkAntidoteIn, kDrinkAntidoteOut); + setUpPoison(); + if (!GameState.getWSCPickedUpAntidote()) { - GameState.setWSCPoisoned(false); - GameState.setWSCRemovedDart(false); GameState.setWSCPickedUpAntidote(true); - _privateFlags.setFlag(kWSCDraggingAntidoteFlag, false); - playSpotSoundSync(kDrinkAntidoteIn, kDrinkAntidoteOut); - setUpPoison(); startExtraSequence(kW03SouthDeactivate, kExtraCompletedFlag, kFilterNoInput); } break; |