aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-24 00:01:59 +0400
committerVladimir Menshakov2011-06-24 00:01:59 +0400
commit72965b6406adbd701b3fca00029cfdb5d71e8628 (patch)
tree8679442bdd555ccad39f860f0baed7bb3b4d7f7a
parent8148f4d81d250ae66d5ac015161227fa1f78814e (diff)
downloadscummvm-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.asm4
-rw-r--r--engines/dreamweb/dreamgen.cpp7
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;