aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrand Augereau2011-09-02 20:54:48 +0200
committerBertrand Augereau2011-09-02 20:54:48 +0200
commitbd4bc2215f75926b9cab6ca2458bf7b2f604769f (patch)
tree55dbd81cc8bea993031807ee2f2416ba41c37b12
parent6764bfaa1dcd8fefff517649a575bbe2978f2c4b (diff)
downloadscummvm-rg350-bd4bc2215f75926b9cab6ca2458bf7b2f604769f.tar.gz
scummvm-rg350-bd4bc2215f75926b9cab6ca2458bf7b2f604769f.tar.bz2
scummvm-rg350-bd4bc2215f75926b9cab6ca2458bf7b2f604769f.zip
DREAMWEB: Fix quitting in the inventory screen
-rw-r--r--devtools/tasmrecover/dreamweb/object.asm5
-rw-r--r--engines/dreamweb/dreamgen.cpp10
2 files changed, 14 insertions, 1 deletions
diff --git a/devtools/tasmrecover/dreamweb/object.asm b/devtools/tasmrecover/dreamweb/object.asm
index e6f8037579..807a100052 100644
--- a/devtools/tasmrecover/dreamweb/object.asm
+++ b/devtools/tasmrecover/dreamweb/object.asm
@@ -336,11 +336,16 @@ waitexam: ;call delpointer
jz notuseinv
mov bx,offset cs:withlist1
notuseinv: call checkcoords
+
+ cmp quitrequested, 0
+ jnz stopwaiting
+
cmp examagain,0
jz norex
jmp examineagain
norex: cmp getback,0
jz waitexam
+stopwaiting:
mov pickup,0
cmp watchingtime,0
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index df235c592f..70f84a2028 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -3921,6 +3921,9 @@ waitexam:
bx = offset_withlist1;
notuseinv:
checkcoords();
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ goto stopwaiting;
_cmp(data.byte(kExamagain), 0);
if (flags.z())
goto norex;
@@ -3929,6 +3932,7 @@ norex:
_cmp(data.byte(kGetback), 0);
if (flags.z())
goto waitexam;
+stopwaiting:
data.byte(kPickup) = 0;
_cmp(data.word(kWatchingtime), 0);
if (!flags.z())
@@ -4301,7 +4305,7 @@ doopeninv:
data.byte(kOpenedob) = 255;
goto waitexam;
return;
-/*continuing to unbounded code: examineagain from examineob:3-66*/
+/*continuing to unbounded code: examineagain from examineob:3-69*/
examineagain:
data.byte(kInmaparea) = 0;
data.byte(kExamagain) = 0;
@@ -4344,6 +4348,9 @@ waitexam:
bx = offset_withlist1;
notuseinv:
checkcoords();
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ goto stopwaiting;
_cmp(data.byte(kExamagain), 0);
if (flags.z())
goto norex;
@@ -4352,6 +4359,7 @@ norex:
_cmp(data.byte(kGetback), 0);
if (flags.z())
goto waitexam;
+stopwaiting:
data.byte(kPickup) = 0;
_cmp(data.word(kWatchingtime), 0);
if (!flags.z())