diff options
Diffstat (limited to 'engines/pegasus/neighborhood/wsc/wsc.cpp')
-rw-r--r-- | engines/pegasus/neighborhood/wsc/wsc.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
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; |