[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