diff options
author | Vladimir Menshakov | 2011-06-19 16:56:19 +0400 |
---|---|---|
committer | Vladimir Menshakov | 2011-06-19 16:57:10 +0400 |
commit | 613a203c8a8ac6175988938fbbceaa47ee8b2877 (patch) | |
tree | f5ec2e0e11314f6693c5bbdc6c41bfecfc82bf7e | |
parent | 5efe835f203a94d06f3ff64a9df39c9fdaae8a3b (diff) | |
download | scummvm-rg350-613a203c8a8ac6175988938fbbceaa47ee8b2877.tar.gz scummvm-rg350-613a203c8a8ac6175988938fbbceaa47ee8b2877.tar.bz2 scummvm-rg350-613a203c8a8ac6175988938fbbceaa47ee8b2877.zip |
DREAMWEB: Added crash workaround
-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(); |