diff options
-rw-r--r-- | devtools/tasmrecover/dreamweb/object.asm | 4 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/devtools/tasmrecover/dreamweb/object.asm b/devtools/tasmrecover/dreamweb/object.asm index 93710d3c23..d0465e09bc 100644 --- a/devtools/tasmrecover/dreamweb/object.asm +++ b/devtools/tasmrecover/dreamweb/object.asm @@ -2583,8 +2583,10 @@ findlenextext: mov cl,[es:si] sub bx,extext push bx ax sub cx,bx + cmp cx, 0xffff; BIG FIXME! Find out why this is happening + jz $1 rep movsb - pop bx +$1: pop bx sub extextpos,bx pop si diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 7c9c88136c..d4fb4441f6 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -8302,7 +8302,11 @@ findlenextext: push(bx); push(ax); _sub(cx, bx); + _cmp(cx, 0xffff); + if (flags.z()) + goto _tmp1; _movsb(cx, true); +_tmp1: bx = pop(); _sub(data.word(kExtextpos), bx); si = pop(); @@ -9536,6 +9540,9 @@ void DreamGenContext::selectlocation() { playchannel0(); data.byte(kNewlocation) = 255; select: + _cmp(data.byte(kQuitrequested), 0); + if (!flags.z()) + goto quittravel; delpointer(); readmouse(); showpointer(); |