[Scummvm-cvs-logs] scummvm master -> 613a203c8a8ac6175988938fbbceaa47ee8b2877

whoozle whoozle at yandex.ru
Sun Jun 19 14:58:47 CEST 2011


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
57c68af92e DREAMWEB: Fixed quit from travel screen
5efe835f20 DREAMWEB: Added assertions on cx == 0xffff
613a203c8a DREAMWEB: Added crash workaround


Commit: 57c68af92e856f300a45c0b0ab929464e1f414eb
    https://github.com/scummvm/scummvm/commit/57c68af92e856f300a45c0b0ab929464e1f414eb
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-19T05:57:10-07:00

Commit Message:
DREAMWEB: Fixed quit from travel screen

Changed paths:
    devtools/tasmrecover/dreamweb/newplace.asm



diff --git a/devtools/tasmrecover/dreamweb/newplace.asm b/devtools/tasmrecover/dreamweb/newplace.asm
index cac6e10..10a587f 100644
--- a/devtools/tasmrecover/dreamweb/newplace.asm
+++ b/devtools/tasmrecover/dreamweb/newplace.asm
@@ -53,7 +53,10 @@ Selectlocation	proc	near
 	call	playchannel0
 	mov	newlocation,255
 
-select:	call	delpointer
+select:
+	cmp quitrequested, 0
+	jnz quittravel
+	call	delpointer
 	call	readmouse
 	call	showpointer
 	call	vsync


Commit: 5efe835f203a94d06f3ff64a9df39c9fdaae8a3b
    https://github.com/scummvm/scummvm/commit/5efe835f203a94d06f3ff64a9df39c9fdaae8a3b
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-19T05:57:10-07:00

Commit Message:
DREAMWEB: Added assertions on cx == 0xffff

Changed paths:
    engines/dreamweb/runtime.h



diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index 47dcbf8..bbffa78 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -463,6 +463,7 @@ public:
 	}
 
 	inline void _movsb(uint size, bool clear_cx = false) {
+		assert(size != 0xffff);
 		uint8 *dst = es.ptr(di, size);
 		uint8 *src = ds.ptr(si, size);
 		memcpy(dst, src, size);
@@ -478,6 +479,7 @@ public:
 	}
 
 	inline void _movsw(uint size, bool clear_cx = false) {
+		assert(size != 0xffff);
 		_movsb(size * 2, clear_cx);
 	}
 
@@ -486,6 +488,7 @@ public:
 	}
 
 	inline void _stosb(uint size, bool clear_cx = false) {
+		assert(size != 0xffff);
 		uint8 *dst = es.ptr(di, size);
 		memset(dst, al, size);
 		di += size;
@@ -499,6 +502,7 @@ public:
 	}
 
 	inline void _stosw(uint size, bool clear_cx = false) {
+		assert(size != 0xffff);
 		uint8 *dst = es.ptr(di, size * 2);
 		di += 2 * size;
 		while(size--) {


Commit: 613a203c8a8ac6175988938fbbceaa47ee8b2877
    https://github.com/scummvm/scummvm/commit/613a203c8a8ac6175988938fbbceaa47ee8b2877
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-19T05:57:10-07:00

Commit Message:
DREAMWEB: Added crash workaround

Changed paths:
    devtools/tasmrecover/dreamweb/object.asm
    engines/dreamweb/dreamgen.cpp



diff --git a/devtools/tasmrecover/dreamweb/object.asm b/devtools/tasmrecover/dreamweb/object.asm
index 93710d3..d0465e0 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 7c9c881..d4fb444 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();






More information about the Scummvm-git-logs mailing list