aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Menshakov2011-06-19 16:56:19 +0400
committerVladimir Menshakov2011-06-19 16:57:10 +0400
commit613a203c8a8ac6175988938fbbceaa47ee8b2877 (patch)
treef5ec2e0e11314f6693c5bbdc6c41bfecfc82bf7e
parent5efe835f203a94d06f3ff64a9df39c9fdaae8a3b (diff)
downloadscummvm-rg350-613a203c8a8ac6175988938fbbceaa47ee8b2877.tar.gz
scummvm-rg350-613a203c8a8ac6175988938fbbceaa47ee8b2877.tar.bz2
scummvm-rg350-613a203c8a8ac6175988938fbbceaa47ee8b2877.zip
DREAMWEB: Added crash workaround
-rw-r--r--devtools/tasmrecover/dreamweb/object.asm4
-rw-r--r--engines/dreamweb/dreamgen.cpp7
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();