[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.376,2.377 sprite_he.cpp,1.74,1.75

kirben kirben at users.sourceforge.net
Sat Feb 26 22:03:43 CET 2005


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

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

Correct spriteGroupId checks.
Remove duplicate/pointess code.


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.376
retrieving revision 2.377
diff -u -d -r2.376 -r2.377
--- intern.h	27 Feb 2005 03:36:32 -0000	2.376
+++ intern.h	27 Feb 2005 06:01:10 -0000	2.377
@@ -988,8 +988,6 @@
 	void spritesAllocTables(int numSprites, int numGroups, int numMaxSprites);
 	void spritesResetGroup(int spriteGroupId);
 	void spritesResetTables(bool refreshScreen);
-	void spriteGroupCheck(int spriteGroupId);
-	void spriteMarkIfInGroup(int spriteGroupId, uint32 flags);
 	void spriteAddImageToList(int spriteId, int imageNum, int *spriteIdptr);
 
 public:

Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- sprite_he.cpp	27 Feb 2005 05:14:24 -0000	1.74
+++ sprite_he.cpp	27 Feb 2005 06:01:11 -0000	1.75
@@ -57,7 +57,7 @@
 				continue;
 		}
 
-		if (d != 0) {
+		if (d) {
 			if (spi->bbox.left > spi->bbox.right)
 				continue;
 			if (spi->bbox.top > spi->bbox.bottom)
@@ -341,7 +341,7 @@
 int ScummEngine_v90he::spriteGroupGet_allocateGroupSpritesList(int spriteGroupId) {
 	int i, j = 0, sprites = 0;
 
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	for (i = 1; i < _varNumSprites; i++) {
 		if (_spriteTable[i].group_num == spriteGroupId)
@@ -364,43 +364,43 @@
 }
 
 int ScummEngine_v90he::spriteGroupGet_zorderPriority(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].zorderPriority;
 }
 
 int ScummEngine_v90he::spriteGroupGet_field_20(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].field_20;
 }
 
 int ScummEngine_v90he::spriteGroupGet_scale_x_ratio_mul(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].scale_x_ratio_mul;
 }
 
 int ScummEngine_v90he::spriteGroupGet_scale_x_ratio_div(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].scale_x_ratio_div;
 }
 
 int ScummEngine_v90he::spriteGroupGet_scale_y_ratio_mul(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].scale_y_ratio_mul;
 }
 
 int ScummEngine_v90he::spriteGroupGet_scale_y_ratio_div(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	return _spriteGroups[spriteGroupId].scale_y_ratio_div;
 }
 
 void ScummEngine_v90he::spriteGroupGet_tx_ty(int spriteGroupId, int32 &tx, int32 &ty) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	tx = _spriteGroups[spriteGroupId].tx;
 	ty = _spriteGroups[spriteGroupId].ty;
@@ -764,7 +764,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case0_0(int spriteGroupId, int value1, int value2) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	for (int i = 1; i < _varNumSprites; i++) {
 		if (_spriteTable[i].group_num == spriteGroupId) {
@@ -778,7 +778,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case0_1(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	for (int i = 1; i < _varNumSprites; i++) {
 		if (_spriteTable[i].group_num == spriteGroupId)
@@ -787,7 +787,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case0_2(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	for (int i = 1; i < _varNumSprites; i++) {
 		if (_spriteTable[i].group_num == spriteGroupId) {
@@ -798,7 +798,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case0_3(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	for (int i = 1; i < _varNumSprites; i++) {
 		if (_spriteTable[i].group_num == spriteGroupId) {
@@ -811,7 +811,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case0_4(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	for (int i = 1; i < _varNumSprites; i++) {
 		if (_spriteTable[i].group_num == spriteGroupId)
@@ -820,7 +820,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case0_5(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	for (int i = 1; i < _varNumSprites; i++) {
 		if (_spriteTable[i].group_num == spriteGroupId) {
@@ -831,7 +831,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case0_6(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	for (int i = 1; i < _varNumSprites; i++) {
 		if (_spriteTable[i].group_num == spriteGroupId) {
@@ -844,7 +844,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case0_7(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	for (int i = 1; i < _varNumSprites; i++) {
 		if (_spriteTable[i].group_num == spriteGroupId) {
@@ -856,7 +856,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case5_0(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	if (_spriteGroups[spriteGroupId].scale_x_ratio_mul == value)
 		return;
@@ -873,7 +873,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case5_1(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	if (_spriteGroups[spriteGroupId].scale_x_ratio_div == value)
 		return;
@@ -890,7 +890,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case5_2(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	if (_spriteGroups[spriteGroupId].scale_y_ratio_mul == value)
 		return;
@@ -907,7 +907,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case5_3(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	if (_spriteGroups[spriteGroupId].scale_y_ratio_div == value)
 		return;
@@ -924,7 +924,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_zorderPriority(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	if (_spriteGroups[spriteGroupId].zorderPriority == value)
 		return;
@@ -935,7 +935,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_tx_ty(int spriteGroupId, int value1, int value2) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	_spriteGroups[spriteGroupId].tx += value1;
 	_spriteGroups[spriteGroupId].ty += value2;
@@ -944,7 +944,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case26(int spriteGroupId, int value) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	if (_spriteGroups[spriteGroupId].field_20 == value)
 		return;
@@ -955,7 +955,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case28(int spriteGroupId, int value1, int value2) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	if (_spriteGroups[spriteGroupId].tx == value1 && _spriteGroups[spriteGroupId].ty == value2)
 		return;
@@ -967,7 +967,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_bbox(int spriteGroupId, int x1, int y1, int x2, int y2) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	_spriteGroups[spriteGroupId].flags |= kSGFClipBox;
 	_spriteGroups[spriteGroupId].bbox.left = x1;
@@ -979,7 +979,7 @@
 }
 
 void ScummEngine_v90he::spriteGroupSet_case56(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
 
 	_spriteGroups[spriteGroupId].flags &= ~(kSGFNeedRedraw);
 
@@ -999,49 +999,23 @@
 }
 
 void ScummEngine_v90he::spritesResetGroup(int spriteGroupId) {
-	int i;
-
 	SpriteGroup *spg = &_spriteGroups[spriteGroupId];
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
-	if (spg->zorderPriority != 0) {
-		spg->zorderPriority = 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 &= ~kSGFClipBox;
-	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;
-			}
-		}
-	}
-	spriteGroupCheck(spriteGroupId);
+	checkRange(_varNumSpriteGroups, 64, spriteGroupId, "Invalid sprite group %d");
+
+	spg->zorderPriority = 0;
+	spg->tx = spg->ty = 0;
+
+	spg->flags &= ~kSGFNeedRedraw;
+	redrawSpriteGroup(spriteGroupId);
+
+	spg->field_20 = 0;
 	spg->scaling = 0;
 	spg->scale_x = 0x3F800000;
-	spg->scale_x_ratio_mul = 0;
-	spg->scale_x_ratio_div = 0;
+	spg->scale_x_ratio_mul = 1;
+	spg->scale_x_ratio_div = 1;
 	spg->scale_y = 0x3F800000;
-	spg->scale_y_ratio_mul = 0;
-	spg->scale_y_ratio_div = 0;
+	spg->scale_y_ratio_mul = 1;
+	spg->scale_y_ratio_div = 1;
 }
 
 void ScummEngine_v90he::spritesResetTables(bool refreshScreen) {
@@ -1061,20 +1035,6 @@
 	_numSpritesToProcess = 0;
 }
 
-void ScummEngine_v90he::spriteGroupCheck(int spriteGroupId) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
-}
-
-void ScummEngine_v90he::spriteMarkIfInGroup(int spriteGroupId, uint32 flags) {
-	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
-	for (int i = 0; i < _numSpritesToProcess; ++i) {
-		SpriteInfo *spi = _activeSpritesTable[i];
-		if (spi->group_num == spriteGroupId) {
-			spi->flags |= flags;
-		}		
-	}
-}
-
 void ScummEngine_v90he::spritesBlitToScreen() {
 	int xmin, xmax, ymin, ymax;
 	xmin = ymin = 1234;
@@ -1148,7 +1108,7 @@
 void ScummEngine_v90he::spritesUpdateImages() {
 	for (int i = 0; i < _numSpritesToProcess; ++i) {
 		SpriteInfo *spi = _activeSpritesTable[i];
-		if (spi->dx != 0 || spi->dy != 0) {
+		if (spi->dx || spi->dy) {
 			checkRange(_varNumSprites, 1, i, "Invalid sprite %d");
 			int tx = spi->tx;
 			int ty = spi->ty;
@@ -1159,7 +1119,7 @@
 			}			
 		}
 		if (spi->flags & kSFYFlipped) {
-			if (spi->field_78 != 0) {
+			if (spi->field_78) {
 				--spi->field_64;
 				if (spi->field_64) 
 					continue;
@@ -1170,7 +1130,7 @@
 			++spi->res_state;
 			if (spi->res_state >= spi->res_wiz_states) {
 				spi->res_state = 0;
-				if (spi->imglist_num != 0) {
+				if (spi->imglist_num) {
 					if (!(spi->flags & kSF25)) {
 						checkRange(_varMaxSprites, 1, spi->imglist_num, "Image list %d out of range");
 						uint16 img1 = _imageListTable[0x21 * spi->imglist_num - 1];
@@ -1252,9 +1212,6 @@
 	int32 w, h;
 	WizParameters wiz;
 
-	if (!_numSpritesToProcess)
-		return;
-
 	for (int i = 0; i < _numSpritesToProcess; i++) {
 		SpriteInfo *spi = _activeSpritesTable[i];
 





More information about the Scummvm-git-logs mailing list