diff options
author | Vladimir Menshakov | 2011-06-24 00:01:59 +0400 |
---|---|---|
committer | Vladimir Menshakov | 2011-06-24 00:01:59 +0400 |
commit | 72965b6406adbd701b3fca00029cfdb5d71e8628 (patch) | |
tree | 8679442bdd555ccad39f860f0baed7bb3b4d7f7a | |
parent | 8148f4d81d250ae66d5ac015161227fa1f78814e (diff) | |
download | scummvm-rg350-72965b6406adbd701b3fca00029cfdb5d71e8628.tar.gz scummvm-rg350-72965b6406adbd701b3fca00029cfdb5d71e8628.tar.bz2 scummvm-rg350-72965b6406adbd701b3fca00029cfdb5d71e8628.zip |
DREAMWEB: Fixed quit() from dialogue
-rw-r--r-- | devtools/tasmrecover/dreamweb/talk.asm | 4 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/devtools/tasmrecover/dreamweb/talk.asm b/devtools/tasmrecover/dreamweb/talk.asm index 6bee4409b7..b6b96313f7 100644 --- a/devtools/tasmrecover/dreamweb/talk.asm +++ b/devtools/tasmrecover/dreamweb/talk.asm @@ -28,6 +28,8 @@ waittalk: call delpointer mov getback,0 mov bx,offset cs:talklist call checkcoords + cmp quitrequested, 0 + jnz finishtalk cmp getback,0 jz waittalk finishtalk: mov bx,persondata @@ -490,6 +492,8 @@ hangloopq: push cx bx pop bx cx cmp getback,1 jz quitconv + cmp quitrequested, 0 + jnz quitconv cmp speechloaded,1 jnz notspeaking cmp ch1playing,255 diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 2485b5ad6a..e92cd83c2b 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -9065,9 +9065,13 @@ waittalk: data.byte(kGetback) = 0; bx = 2660; checkcoords(); + _cmp(data.byte(kQuitrequested), 0); + if (!flags.z()) + goto finishtalk; _cmp(data.byte(kGetback), 0); if (flags.z()) goto waittalk; +finishtalk: bx = data.word(kPersondata); es = cs; _cmp(data.byte(kTalkpos), 4); @@ -9360,6 +9364,9 @@ hangloopq: _cmp(data.byte(kGetback), 1); if (flags.z()) goto quitconv; + _cmp(data.byte(kQuitrequested), 0); + if (!flags.z()) + goto quitconv; _cmp(data.byte(kSpeechloaded), 1); if (!flags.z()) goto notspeaking; |