diff options
author | Bertrand Augereau | 2011-09-02 20:54:48 +0200 |
---|---|---|
committer | Bertrand Augereau | 2011-09-02 20:54:48 +0200 |
commit | bd4bc2215f75926b9cab6ca2458bf7b2f604769f (patch) | |
tree | 55dbd81cc8bea993031807ee2f2416ba41c37b12 | |
parent | 6764bfaa1dcd8fefff517649a575bbe2978f2c4b (diff) | |
download | scummvm-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.asm | 5 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 10 |
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()) |