[Scummvm-cvs-logs] CVS: scummvm/scumm akos.cpp,1.247,1.248

kirben kirben at users.sourceforge.net
Thu Jan 5 17:47:14 CET 2006


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv579/scumm

Modified Files:
	akos.cpp 
Log Message:
Correct bounds checking for akos codec 16 in HE 71+ games.
Fixes crash during introduction of demo of farm (Updated)


Index: akos.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/akos.cpp,v
retrieving revision 1.247
retrieving revision 1.248
diff -u -d -r1.247 -r1.248
--- akos.cpp	4 Jan 2006 05:03:46 -0000	1.247
+++ akos.cpp	6 Jan 2006 01:46:02 -0000	1.248
@@ -1162,7 +1162,7 @@
 
 byte AkosRenderer::codec16(int xmoveCur, int ymoveCur) {
 	Common::Rect clip;
-	int32 maxw, maxh;
+	int32 minx, miny, maxw, maxh;
 	int32 skip_x, skip_y, cur_x, cur_y;
 	byte transparency = (_vm->_heversion >= 61) ? palette[0] : 255;
 
@@ -1180,26 +1180,18 @@
 	clip.top = _actorY + ymoveCur;
 	clip.right = clip.left + _width;
 	clip.bottom = clip.top + _height;
+
+	minx = miny = 0;
 	maxw = _out.w;
 	maxh = _out.h;
 
 	if (_vm->_heversion >= 71) {
 		if (_clipOverride.right > _clipOverride.left && _clipOverride.bottom > _clipOverride.top) {
-			if (clip.left < _clipOverride.left)
-				clip.left = _clipOverride.left;
-
-			if (clip.right > _clipOverride.right)
-				clip.right = _clipOverride.right;
-
-			if (clip.top < _clipOverride.top)
-				clip.top = _clipOverride.top;
-
-			if (clip.bottom > _clipOverride.bottom)
-				clip.bottom = _clipOverride.bottom;
+			minx = _clipOverride.left;
+			miny = _clipOverride.top;
+			maxw = _clipOverride.right;
+			maxh = _clipOverride.bottom;
 		}
-
-		if (clip.isValidRect() == false)
-			return 0;
 	}
 
 	markRectAsDirty(clip);
@@ -1209,7 +1201,7 @@
 	cur_x = _width - 1;
 	cur_y = _height - 1;
 
-	if (clip.left < 0) {
+	if (clip.left < minx) {
 		skip_x = -clip.left;
 		clip.left = 0;
 	}
@@ -1219,7 +1211,7 @@
 		clip.right = maxw;
 	}
 
-	if (clip.top < 0) {
+	if (clip.top < miny) {
 		skip_y -= clip.top;
 		clip.top = 0;
 	}





More information about the Scummvm-git-logs mailing list