[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.356,2.357 script_v90he.cpp,2.148,2.149 sprite_he.cpp,1.30,1.31 sprite_he.h,1.8,1.9

kirben kirben at users.sourceforge.net
Wed Feb 23 01:25:20 CET 2005


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

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

freddicove adds extra SpriteInfo field.
Correction, only redraw sprite if value changed.


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.356
retrieving revision 2.357
diff -u -d -r2.356 -r2.357
--- intern.h	23 Feb 2005 04:35:18 -0000	2.356
+++ intern.h	23 Feb 2005 09:23:53 -0000	2.357
@@ -938,6 +938,7 @@
 	void spriteInfoSet_field_78_64(int spriteId, int value);
 	void spriteInfoSet_setClassFlags(int spriteId, int value1, int value2);
 	void spriteInfoSet_resetClassFlags(int spriteId);
+	void spriteInfoSet_field_88(int spriteId, int value1, int value2);
 
 	void redrawSpriteGroup(int spriteGroupId);
 	void spriteGroupSet_case0_0(int spriteGroupId, int value1, int value2);

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.148
retrieving revision 2.149
diff -u -d -r2.148 -r2.149
--- script_v90he.cpp	23 Feb 2005 04:35:19 -0000	2.148
+++ script_v90he.cpp	23 Feb 2005 09:23:53 -0000	2.149
@@ -1234,8 +1234,16 @@
 		}
 		break;
 	case 105: // HE 99+
-		pop();
-		pop();
+		args[1] = pop();
+		args[0] = pop();
+		if (_curSpriteId > _curMaxSpriteId)
+			break;
+		spriteId = _curSpriteId;
+		if (!spriteId)
+			spriteId++;
+
+		for (; spriteId <= _curMaxSpriteId; spriteId++)
+			spriteInfoSet_field_88(spriteId, args[0], args[1]);
 		break;
 	case 106: // HE 99+
 		args[0] = pop();

Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- sprite_he.cpp	23 Feb 2005 05:26:56 -0000	1.30
+++ sprite_he.cpp	23 Feb 2005 09:23:53 -0000	1.31
@@ -386,7 +386,7 @@
 	_spriteTable[spriteId].tx += value1;
 	_spriteTable[spriteId].ty += value2;
 
-	if  (_spriteTable[spriteId].tx || _spriteTable[spriteId].ty)
+	if  (value1 || value2)
 		_spriteTable[spriteId].flags |= kSF01 | kSFNeedRedraw;
 }
 
@@ -525,6 +525,15 @@
 	_spriteTable[spriteId].class_flags = 0;
 }
 
+void ScummEngine_v90he::spriteInfoSet_field_88(int spriteId, int value1, int value2) {
+	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
+
+	if (value1 == 0x7B) {
+		_spriteTable[spriteId].field_88 = value2;
+		_spriteTable[spriteId].flags |= kSF01 | kSFNeedRedraw;
+	}
+}
+
 void ScummEngine_v90he::spriteInfoSet_resetSprite(int spriteId) {
 	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 

Index: sprite_he.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- sprite_he.h	22 Feb 2005 21:38:44 -0000	1.8
+++ sprite_he.h	23 Feb 2005 09:23:54 -0000	1.9
@@ -100,6 +100,7 @@
 	int field_7C;
 	int field_80;
 	int class_flags;
+	int field_88;
 };
 
 struct SpriteGroup {





More information about the Scummvm-git-logs mailing list