From ef593ed8e33891200f80410a5aef6bd3e87f0a0a Mon Sep 17 00:00:00 2001 From: Adrian Frühwirth Date: Mon, 19 Mar 2018 23:18:08 +0100 Subject: TUCKER: Work around original game bug when using the map in the mall in part three If you don't have the appointment card yet and use the map to go to Seedy Street Bud ends up being teleported back to the mall. Because of the destination coordinates which warp Bud past x==583 Violet's logic, which makes him refuse Bud entrance to the dentist, triggers. On top of that the graphics end up all garbled which indicates that even worse things happen under the hood. To work around this we only trigger Violet if Bud actually _walked_ past the trigger coordinates (as opposed to using the map). This fixes Trac#10452. --- engines/tucker/locations.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'engines/tucker') diff --git a/engines/tucker/locations.cpp b/engines/tucker/locations.cpp index 28fca114b0..93f2451bfc 100644 --- a/engines/tucker/locations.cpp +++ b/engines/tucker/locations.cpp @@ -2893,7 +2893,19 @@ void TuckerEngine::updateSprite_locationNum66_4(int i) { } void TuckerEngine::execData3PreUpdate_locationNum66() { - // FIXME: shouldn't be executed after using the map + // WORKAROUND + // If you don't have the appointment card yet and use the map to go to + // Seedy Street Bud ends up being teleported back to the mall. + // Because of the destination coordinates which warp Bud past x==583 the + // below 'if' triggers and automatically makes Violet refuse Bud entrance + // to the dentist. On top of that the graphics end up all garbled which + // indicates that even worse things happen under the hood. + // To work around this we only trigger Violet if Bud actually _walked_ past + // the trigger coordinates (as opposed to using the map). + // Fixes Trac#10452. + if (_nextLocationNum != 0) + return; + _flagsTable[137] = 0; if (_xPosCurrent > 583 && _flagsTable[191] == 0 && _nextAction == 0 && _locationMaskType == 0) { _panelLockedFlag = false; -- cgit v1.2.3