[Scummvm-cvs-logs] CVS: scummvm/scumm sprite_he.cpp,1.65,1.66 sprite_he.h,1.15,1.16

Gregory Montoir cyx at users.sourceforge.net
Sat Feb 26 02:08:15 CET 2005


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

Modified Files:
	sprite_he.cpp sprite_he.h 
Log Message:
fix issue in spritesBlitToScreen and added some suggestions for fields/flags renaming

Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -d -r1.65 -r1.66
--- sprite_he.cpp	26 Feb 2005 04:53:43 -0000	1.65
+++ sprite_he.cpp	26 Feb 2005 10:02:21 -0000	1.66
@@ -1086,27 +1086,28 @@
 			if (spi->bbox.left <= spi->bbox.right && spi->bbox.top <= spi->bbox.bottom) {
 				if (spi->flags & kSFBlitDirectly) {
 					gdi.copyVirtScreenBuffers(spi->bbox); // XXX 0, 0x40000000);
-				}
-			} else if (firstLoop) {
-				xmin = spi->bbox.left;
-				ymin = spi->bbox.top;
-				xmax = spi->bbox.right;
-				ymax = spi->bbox.bottom;
-				firstLoop = false;
-			} else {
-				if (xmin < spi->bbox.left) {
+				} else if (firstLoop) {
 					xmin = spi->bbox.left;
-				}
-				if (ymin < spi->bbox.top) {
 					ymin = spi->bbox.top;
-				}
-				if (xmax > spi->bbox.right) {
 					xmax = spi->bbox.right;
-				}
-				if (ymax > spi->bbox.bottom) {
 					ymax = spi->bbox.bottom;
+					firstLoop = false;
+					refreshScreen = true;
+				} else {
+					if (xmin < spi->bbox.left) {
+						xmin = spi->bbox.left;
+					}
+					if (ymin < spi->bbox.top) {
+						ymin = spi->bbox.top;
+					}
+					if (xmax > spi->bbox.right) {
+						xmax = spi->bbox.right;
+					}
+					if (ymax > spi->bbox.bottom) {
+						ymax = spi->bbox.bottom;
+					}
+					refreshScreen = true;
 				}
-				refreshScreen = true;
 			}
 			if (!(spi->flags & (kSFNeedRedraw | kSF30)) && spi->res_id) {
 				spi->flags |= kSFNeedRedraw;
@@ -1168,7 +1169,6 @@
 				spi->res_state = 0;
 				if (spi->imglist_num != 0) {
 					if (!(spi->flags & kSF25)) {
-						// XXX
 						checkRange(_varMaxSprites, 1, spi->imglist_num, "Image list %d out of range");
 						uint16 img1 = _imageListTable[0x21 * spi->imglist_num - 1];
 						uint16 img2 = spi->field_74 + 1;

Index: sprite_he.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- sprite_he.h	24 Feb 2005 23:28:56 -0000	1.15
+++ sprite_he.h	26 Feb 2005 10:02:22 -0000	1.16
@@ -56,17 +56,17 @@
 	kSF28           = (1 << 27),
 	kSF29           = (1 << 28),
 	kSF30           = (1 << 29),
-	kSF31           = (1 << 30),
+	kSF31           = (1 << 30), // kSFHasImage ?
 	kSF32           = (1 << 31)
 };
 
 enum SpriteGroupFlags {
-	kSGF01  = 1 << 0,
-	kSGF02  = 1 << 1
+	kSGF01  = 1 << 0, // kSGFClipBox
+	kSGF02  = 1 << 1  // kSGFNeedRedraw
 };
 
 struct SpriteInfo {
-	int field_0;
+	int field_0; // zorder ?
 	int flags;
 	int res_id;
 	int res_state;
@@ -104,7 +104,7 @@
 
 struct SpriteGroup {
 	Common::Rect bbox;
-	int field_10;
+	int field_10; // zorderPriority ?
 	int flags;
 	int tx;
 	int ty;
@@ -112,10 +112,10 @@
 	int scaling;
 	int scale_x;
 	int scale_y;
-	int field_30;
-	int field_34;
-	int field_38;
-	int field_3C;
+	int field_30; // scale_x_ratio_mul
+	int field_34; // scale_x_ratio_div
+	int field_38; // scale_y_ratio_mul
+	int field_3C; // scale_y_ratio_div
 };
 
 	int _varNumSpriteGroups;





More information about the Scummvm-git-logs mailing list