diff options
| -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()) |
