[Scummvm-cvs-logs] CVS: scummvm/scumm costume.cpp,1.158,1.159

Eugene Sandulenko sev at users.sourceforge.net
Mon Mar 14 18:48:36 CET 2005


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

Modified Files:
	costume.cpp 
Log Message:
First (unsuccessful) attempt to make NES costume animation work.


Index: costume.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/costume.cpp,v
retrieving revision 1.158
retrieving revision 1.159
diff -u -d -r1.158 -r1.159
--- costume.cpp	15 Mar 2005 02:23:42 -0000	1.158
+++ costume.cpp	15 Mar 2005 02:47:36 -0000	1.159
@@ -676,13 +676,14 @@
 	int offset, numSprites, spritesOffset, numAnims;
 	byte *table, *ptr, *spritesDefs, *spritesOffsetTab, *numSpritesTab, *spritesPal;
 	const CostumeData &cost = a->_cost;
-	int frame = cost.frame[limb];
+	int anim = cost.frame[limb];
+	int frameNum = cost.curpos[limb];
 
 	src = _loaded._dataOffsets;
 
 	// Cost(a)
-	offset = src[frame * 2];
-	numAnims = src[frame * 2 + 1];
+	offset = src[anim * 2];
+	numAnims = src[anim * 2 + 1];
 
 	// Lookup & desc
 	table = _vm->getResourceAddress(rtCostume, v1MMNEScostTables[_vm->_v1MMNESCostumeSet][0]);
@@ -700,9 +701,7 @@
 	// data
 	spritesPal = _vm->getResourceAddress(rtCostume, v1MMNEScostTables[_vm->_v1MMNESCostumeSet][5]) + 2;
 
-	int frameNum = 0;
-
-	offset = READ_LE_UINT16(table + v1MMNESLookup[_loaded._id] * 2 + 2 + frameNum * 2);
+	offset = READ_LE_UINT16(table + v1MMNESLookup[_loaded._id] * 2 + 2) + frameNum;
 	numSprites = numSpritesTab[offset + 2] + 1;
 	spritesOffset = READ_LE_UINT16(spritesOffsetTab + offset * 2 + 2);
 
@@ -856,7 +855,7 @@
 	}
 
 	if (_features & GF_NES) {
-		a->_cost.curpos[0] = 1;
+		a->_cost.curpos[0] = 0;
 		a->_cost.start[0] = 0;
 		a->_cost.frame[0] = frame;
 		return;
@@ -973,6 +972,9 @@
 	byte code, nc;
 
 	if (_vm->_features & GF_NES) {
+		a->_cost.curpos[slot]++;
+		if (a->_cost.curpos[slot] == _numAnim)
+			a->_cost.curpos[slot] = a->_cost.start[slot];
 		return 0;
 	}
 





More information about the Scummvm-git-logs mailing list