[Scummvm-cvs-logs] CVS: scummvm/scumm sprite_he.cpp,1.94,1.95

kirben kirben at users.sourceforge.net
Tue Mar 8 22:29:18 CET 2005


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

Modified Files:
	sprite_he.cpp 
Log Message:

A few more safety checks


Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -d -r1.94 -r1.95
--- sprite_he.cpp	9 Mar 2005 01:05:08 -0000	1.94
+++ sprite_he.cpp	9 Mar 2005 06:28:46 -0000	1.95
@@ -866,10 +866,11 @@
 void ScummEngine_v90he::spriteGroupSet_inc_tx_ty(int spriteGroupId, int value1, int value2) {
 	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
-	_spriteGroups[spriteGroupId].tx += value1;
-	_spriteGroups[spriteGroupId].ty += value2;
-
-	redrawSpriteGroup(spriteGroupId);
+	if (value1 || value2) {
+		_spriteGroups[spriteGroupId].tx += value1;
+		_spriteGroups[spriteGroupId].ty += value2;
+		redrawSpriteGroup(spriteGroupId);
+	}
 }
 
 void ScummEngine_v90he::spriteGroupSet_field_20(int spriteGroupId, int value) {
@@ -904,6 +905,9 @@
 void ScummEngine_v90he::spriteGroupSet_scale_x_ratio_div(int spriteGroupId, int value) {
 	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
+	if (value == 0)
+		error("spriteGroupSet_scale_x_ratio_div: Divisor must not be 0");
+
 	if (_spriteGroups[spriteGroupId].scale_x_ratio_div != value) {
 		_spriteGroups[spriteGroupId].scale_x_ratio_div = value;
 		_spriteGroups[spriteGroupId].scale_x = _spriteGroups[spriteGroupId].scale_x_ratio_mul / _spriteGroups[spriteGroupId].scale_x_ratio_div;
@@ -928,6 +932,9 @@
 void ScummEngine_v90he::spriteGroupSet_scale_y_ratio_div(int spriteGroupId, int value) {
 	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
+	if (value == 0)
+		error("spriteGroupSet_scale_y_ratio_div: Divisor must not be 0");
+
 	if (_spriteGroups[spriteGroupId].scale_y_ratio_div != value) {
 		_spriteGroups[spriteGroupId].scale_y_ratio_div = value;
 		_spriteGroups[spriteGroupId].scale_y = _spriteGroups[spriteGroupId].scale_y_ratio_mul / _spriteGroups[spriteGroupId].scale_y_ratio_div;
@@ -941,7 +948,6 @@
 	checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d");
 
 	_spriteGroups[spriteGroupId].flags &= ~(kSGFNeedRedraw);
-
 	redrawSpriteGroup(spriteGroupId);
 }
 





More information about the Scummvm-git-logs mailing list