[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.367,2.368 script_v100he.cpp,2.65,2.66 script_v90he.cpp,2.160,2.161 sprite_he.cpp,1.62,1.63

kirben kirben at users.sourceforge.net
Fri Feb 25 20:00:05 CET 2005


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

Modified Files:
	intern.h script_v100he.cpp script_v90he.cpp sprite_he.cpp 
Log Message:

Rename sprite function
Correct spritesResetSpriteGroup


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.367
retrieving revision 2.368
diff -u -d -r2.367 -r2.368
--- intern.h	25 Feb 2005 15:19:02 -0000	2.367
+++ intern.h	26 Feb 2005 03:57:11 -0000	2.368
@@ -959,11 +959,11 @@
 	void spriteGroupSet_tx_ty(int spriteGroupId, int value1, int value2);
 	void spriteGroupSet_case26(int spriteGroupId, int value);
 	void spriteGroupSet_case28(int spriteGroupId, int value1, int value2);
-	void spriteGroupSet_fields_0_4_8_C(int spriteGroupId, int value1, int value2, int value3, int value4);
+	void spriteGroupSet_bbox(int spriteGroupId, int x1, int y1, int x2, int y2);
 	void spriteGroupSet_case56(int spriteGroupId);
 
 	void spritesAllocTables(int numSprites, int numGroups, int numMaxSprites);
-	void spritesResetGroup(int spriteGroupId);
+	void spritesResetSpriteGroup(int spriteGroupId);
 	void spritesResetTables(bool refreshScreen);
 	void spriteGroupCheck(int spriteGroupId);
 	void spriteMarkIfInGroup(int spriteGroupId, uint32 flags);

Index: script_v100he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v100he.cpp,v
retrieving revision 2.65
retrieving revision 2.66
diff -u -d -r2.65 -r2.66
--- script_v100he.cpp	25 Feb 2005 20:15:00 -0000	2.65
+++ script_v100he.cpp	26 Feb 2005 03:57:11 -0000	2.66
@@ -858,7 +858,7 @@
 		if (!_curSpriteGroupId)
 			break;
 
-		spriteGroupSet_fields_0_4_8_C(_curSpriteGroupId, value1, value2, value3, value4);
+		spriteGroupSet_bbox(_curSpriteGroupId, value1, value2, value3, value4);
 		break;
 	case 38:
 		type = pop() - 1;
@@ -945,7 +945,7 @@
 		if (!_curSpriteGroupId)
 			break;
 
-		spritesResetGroup(_curSpriteGroupId);
+		spritesResetSpriteGroup(_curSpriteGroupId);
 		break;
 	case 54:
 		// dummy case

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.160
retrieving revision 2.161
diff -u -d -r2.160 -r2.161
--- script_v90he.cpp	25 Feb 2005 20:15:01 -0000	2.160
+++ script_v90he.cpp	26 Feb 2005 03:57:11 -0000	2.161
@@ -1507,7 +1507,7 @@
 		if (!_curSpriteGroupId)
 			break;
 
-		spriteGroupSet_fields_0_4_8_C(_curSpriteGroupId, value1, value2, value3, value4);
+		spriteGroupSet_bbox(_curSpriteGroupId, value1, value2, value3, value4);
 		break;
 	case 56:
 		if (!_curSpriteGroupId)
@@ -1519,7 +1519,7 @@
 		if (!_curSpriteGroupId)
 			break;
 
-		spritesResetGroup(_curSpriteGroupId);
+		spritesResetSpriteGroup(_curSpriteGroupId);
 		break;
 	default:
 		error("o90_setSpriteGroupInfo: Unknown case %d", subOp);

Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -d -r1.62 -r1.63
--- sprite_he.cpp	26 Feb 2005 01:39:52 -0000	1.62
+++ sprite_he.cpp	26 Feb 2005 03:57:11 -0000	1.63
@@ -697,9 +697,10 @@
 	origResId = _spriteTable[spriteId].res_id;
 	origResWizStates = _spriteTable[spriteId].res_wiz_states;
 
-	if (imageNum == 1)
+	if (imageNum == 1) {
 		_spriteTable[spriteId].res_id = *spriteIdptr;
-	else {
+	} else {
+		// This section is currently never called
 		if (!_curSprImageListNum)
 			error("Out of image lists");
 
@@ -957,14 +958,14 @@
 	redrawSpriteGroup(spriteGroupId);
 }
 
-void ScummEngine_v90he::spriteGroupSet_fields_0_4_8_C(int spriteGroupId, int value1, int value2, int value3, int value4) {
+void ScummEngine_v90he::spriteGroupSet_bbox(int spriteGroupId, int x1, int y1, int x2, int y2) {
 	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
 	_spriteGroups[spriteGroupId].flags |= kSGF01;
-	_spriteGroups[spriteGroupId].bbox.left = value1;
-	_spriteGroups[spriteGroupId].bbox.top = value2;
-	_spriteGroups[spriteGroupId].bbox.right = value3;
-	_spriteGroups[spriteGroupId].bbox.bottom = value4;
+	_spriteGroups[spriteGroupId].bbox.left = x1;
+	_spriteGroups[spriteGroupId].bbox.top = y1;
+	_spriteGroups[spriteGroupId].bbox.right = x2;
+	_spriteGroups[spriteGroupId].bbox.bottom = y2;
 
 	redrawSpriteGroup(spriteGroupId);
 }
@@ -989,50 +990,13 @@
 	_imageListStack = (uint16 *)malloc((_varMaxSprites + 1) * sizeof(uint16));
 }
 
-void ScummEngine_v90he::spritesResetGroup(int spriteGroupId) {
-	int i;
-
-	SpriteGroup *spg = &_spriteGroups[spriteGroupId];
+void ScummEngine_v90he::spritesResetSpriteGroup(int spriteGroupId) {
 	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
-	if (spg->field_10 != 0) {
-		spg->field_10 = 0;
-		spriteGroupCheck(spriteGroupId);
-		for (i = 0; i < _numSpritesToProcess; ++i) {
-			SpriteInfo *spi = _activeSpritesTable[i];
-			if (spi->group_num == spriteGroupId) {
-				spi->flags |= kSFChanged | kSFNeedRedraw;
-			}
-		}
-	}
-	if (spg->tx != 0 || spg->ty != 0) {
-		spg->tx = spg->ty = 0;
-		spriteGroupCheck(spriteGroupId);
-		for (i = 0; i < _numSpritesToProcess; ++i) {
-		SpriteInfo *spi = _activeSpritesTable[i];
-			if (spi->group_num == spriteGroupId) {
-				spi->flags |= kSFChanged | kSFNeedRedraw;
-			}
-		}
-	}
-	spg->flags &= ~kSGF01;
-	spriteMarkIfInGroup(spriteGroupId, kSFChanged | kSFNeedRedraw);
-	if (spg->field_20 != 0) {
-		spriteGroupCheck(spriteGroupId);
-		for (i = 0; i < _numSpritesToProcess; ++i) {
-			SpriteInfo *spi = _activeSpritesTable[i];
-			if (spi->group_num == spriteGroupId) {
-				spi->flags |= kSFChanged | kSFNeedRedraw;
-			}
-		}
+
+	for (int i = 1; i < _varNumSprites; i++) {
+		if (_spriteTable[i].group_num == spriteGroupId)
+			spriteInfoSet_resetSprite(i);
 	}
-	spriteGroupCheck(spriteGroupId);
-	spg->scaling = 0;
-	spg->scale_x = 0x3F800000;
-	spg->field_30 = 0;
-	spg->field_34 = 0;
-	spg->scale_y = 0x3F800000;
-	spg->field_38 = 0;
-	spg->field_3C = 0;
 }
 
 void ScummEngine_v90he::spritesResetTables(bool refreshScreen) {
@@ -1043,9 +1007,49 @@
 	}
 	memset(_spriteTable, 0, (_varNumSprites + 1) * sizeof(SpriteInfo));
 	memset(_spriteGroups, 0, (_varNumSpriteGroups + 1) * sizeof(SpriteGroup));
-	for (int curGrp = 1; curGrp < _varNumSpriteGroups; ++curGrp)
-		spritesResetGroup(curGrp);
-
+	for (int curGrp = 1; curGrp < _varNumSpriteGroups; ++curGrp) {
+		SpriteGroup *spg = &_spriteGroups[curGrp];
+		checkRange(_varNumSpriteGroups, 1, curGrp, "Invalid sprite group %d");
+		if (spg->field_10) {
+			spg->field_10 = 0;
+			spriteGroupCheck(curGrp);
+			for (i = 0; i < _numSpritesToProcess; ++i) {
+				SpriteInfo *spi = _activeSpritesTable[i];
+				if (spi->group_num == curGrp) {
+					spi->flags |= kSFChanged | kSFNeedRedraw;
+				}
+			}
+		}
+		if (spg->tx || spg->ty) {
+			spg->tx = spg->ty = 0;
+			spriteGroupCheck(curGrp);
+			for (i = 0; i < _numSpritesToProcess; ++i) {
+			SpriteInfo *spi = _activeSpritesTable[i];
+				if (spi->group_num == curGrp) {
+					spi->flags |= kSFChanged | kSFNeedRedraw;
+				}
+			}
+		}
+		spg->flags &= ~kSGF01;
+		spriteMarkIfInGroup(curGrp, kSFChanged | kSFNeedRedraw);
+		if (spg->field_20 != 0) {
+			spriteGroupCheck(curGrp);
+			for (i = 0; i < _numSpritesToProcess; ++i) {
+				SpriteInfo *spi = _activeSpritesTable[i];
+				if (spi->group_num == curGrp) {
+					spi->flags |= kSFChanged | kSFNeedRedraw;
+				}
+			}
+		}
+		spriteGroupCheck(curGrp);
+		spg->scaling = 0;
+		spg->scale_x = 0x3F800000;
+		spg->field_30 = 0;
+		spg->field_34 = 0;
+		spg->scale_y = 0x3F800000;
+		spg->field_38 = 0;
+		spg->field_3C = 0;
+	}
 	if (refreshScreen) {
 		gdi.copyVirtScreenBuffers(Common::Rect(_screenWidth, _screenHeight));
 	}
@@ -1102,7 +1106,7 @@
 				}
 				refreshScreen = true;
 			}
-			if (!(spi->flags & (kSFNeedRedraw | kSF30)) && (spi->res_id != 0)) {
+			if (!(spi->flags & (kSFNeedRedraw | kSF30)) && spi->res_id) {
 				spi->flags |= kSFNeedRedraw;
 			}			
 		}
@@ -1151,9 +1155,9 @@
 		if (spi->flags & kSFYFlipped) {
 			if (spi->field_78 != 0) {
 				--spi->field_64;
-				if (spi->field_64 != 0) {
+				if (spi->field_64) 
 					continue;
-				}
+
 				spi->field_64 = spi->field_78;
 			}
 			int state = spi->res_state;
@@ -1166,9 +1170,9 @@
 						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;
-						if (img2 >= img1) {
+						if (img2 >= img1)
 							img2 = 0;
-						}
+
 						if (spi->field_74 != img2) {
 							spi->field_74 = img2;
 							spi->res_id = _imageListTable[0x21 * (img2 - 1)];





More information about the Scummvm-git-logs mailing list