From d416ea6abdad5ef487ed3b5624474e1212496233 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Sun, 11 Dec 2011 22:27:05 +0100 Subject: DREAMWEB: Fix regressions in getBack1 and useLighter --- engines/dreamweb/stubs.cpp | 27 ++++++++++++++++----------- engines/dreamweb/use.cpp | 4 ++-- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 3688715ea9..73f65bb145 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -3679,6 +3679,9 @@ void DreamBase::showArrows() { void DreamBase::showOpBox() { showFrame(tempGraphics(), kOpsx, kOpsy, 0, 0); + + // CHECKME: There seem to be versions of dreamweb in which this call + // should be removed. It displays a red dot on the ops dialogs if left in. showFrame(tempGraphics(), kOpsx, kOpsy + 55, 4, 0); } @@ -4205,20 +4208,22 @@ void DreamGenContext::cantDrop() { void DreamGenContext::getBack1() { if (data.byte(kPickup) != 0) { blank(); - } else if (data.byte(kCommandtype) != 202) { - // Not holding object + return; + } + + + if (data.byte(kCommandtype) != 202) { data.byte(kCommandtype) = 202; commandOnly(26); - } else { - // Already got object - if (data.word(kMousebutton) == data.word(kOldbutton)) - return; // nogetback + } - if (data.word(kMousebutton) & 1) { - // Get back - data.byte(kGetback) = 1; - data.byte(kPickup) = 0; - } + if (data.word(kMousebutton) == data.word(kOldbutton)) + return; + + if (data.word(kMousebutton) & 1) { + // Get back + data.byte(kGetback) = 1; + data.byte(kPickup) = 0; } } diff --git a/engines/dreamweb/use.cpp b/engines/dreamweb/use.cpp index 9126b7e885..d328e1d662 100644 --- a/engines/dreamweb/use.cpp +++ b/engines/dreamweb/use.cpp @@ -1130,8 +1130,8 @@ void DreamGenContext::useLighter() { cx = 300; al = 9; showPuzText(); - getExAd(data.byte(kWithobject)); - es.byte(bx + 2) = 255; + DynObject *withObj = getExAd(data.byte(kWithobject)); + withObj->mapad[0] = 255; data.byte(kGetback) = 1; } } -- cgit v1.2.3