aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/dreamweb/object.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/engines/dreamweb/object.cpp b/engines/dreamweb/object.cpp
index 3cea2a5c2f..dbae7e2ba5 100644
--- a/engines/dreamweb/object.cpp
+++ b/engines/dreamweb/object.cpp
@@ -401,8 +401,19 @@ void DreamGenContext::selectOb() {
data.byte(kWithobject) = objectId & 0x00FF;
data.byte(kWithtype) = objectId >> 8;
- if (objectId == data.word(kOldsubject) && data.byte(kCommandtype) != 221)
- data.byte(kCommandtype) = 221;
+ if (objectId == data.word(kOldsubject)) {
+ if (data.byte(kCommandtype) == 221) {
+ // Object already selected
+ if (data.word(kMousebutton) != data.word(kOldbutton) && (data.word(kMousebutton) & 1)) {
+ delPointer();
+ data.byte(kInvopen) = 0;
+ useRoutine();
+ }
+ return;
+ } else {
+ data.byte(kCommandtype) = 221;
+ }
+ }
data.word(kOldsubject) = objectId;
commandWithOb(0, data.byte(kWithtype), data.byte(kWithobject));