[Scummvm-cvs-logs] CVS: scummvm/saga sprite.cpp,1.65,1.66

Eugene Sandulenko sev at users.sourceforge.net
Fri Oct 7 03:46:42 CEST 2005


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

Modified Files:
	sprite.cpp 
Log Message:
Cleanup sprite header reader.


Index: sprite.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/sprite.cpp,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -d -r1.65 -r1.66
--- sprite.cpp	7 Oct 2005 05:31:13 -0000	1.65
+++ sprite.cpp	7 Oct 2005 10:44:48 -0000	1.66
@@ -108,34 +108,30 @@
 		spritePointer = spriteListData;
 		spritePointer += offset;
 
-		MemoryReadStream readS2(spritePointer, (_vm->getFeatures() & GF_MAC_RESOURCES || _vm->getGameType() == GType_IHNM) ? 8 : 4);
+		if ((_vm->getGameType()) != GType_ITE || (_vm->getFeatures() & GF_MAC_RESOURCES)) {
+			MemoryReadStreamEndian readS2(spritePointer, 8,  _spriteContext->isBigEndian);
 
-		if (_vm->getGameType() == GType_ITE) {
-			if (!(_vm->getFeatures() & GF_MAC_RESOURCES)) {
-				spriteInfo->xAlign = readS2.readSByte();
-				spriteInfo->yAlign = readS2.readSByte();
+			spriteInfo->xAlign = readS2.readSint16();
+			spriteInfo->yAlign = readS2.readSint16();
 
-				spriteInfo->width = readS2.readByte();
-				spriteInfo->height = readS2.readByte();
-			} else {
-				spriteInfo->xAlign = readS2.readSint16BE();
-				spriteInfo->yAlign = readS2.readSint16BE();
+			spriteInfo->width = readS2.readUint16();
+			spriteInfo->height = readS2.readUint16();
 
-				spriteInfo->width = readS2.readUint16BE();
-				spriteInfo->height = readS2.readUint16BE();
+			if (spriteInfo->width > 100) { // FIXME: HACK
+				spriteInfo->width = spriteInfo->height = 0;
 			}
+			spriteDataPointer = spritePointer + readS2.pos();
 		} else {
-			spriteInfo->xAlign = readS2.readSint16LE();
-			spriteInfo->yAlign = readS2.readSint16LE();
+			MemoryReadStreamEndian readS2(spritePointer, 4);
 
-			spriteInfo->width = readS2.readUint16LE();
-			spriteInfo->height = readS2.readUint16LE();
+			spriteInfo->xAlign = readS2.readSByte();
+			spriteInfo->yAlign = readS2.readSByte();
 
-			if (spriteInfo->width > 100) { // FIXME: HACK
-				spriteInfo->width = spriteInfo->height = 0;
-			}
+			spriteInfo->width = readS2.readByte();
+			spriteInfo->height = readS2.readByte();
+			spriteDataPointer = spritePointer + readS2.pos();
 		}
-		spriteDataPointer = spritePointer + readS2.pos();
+
 		outputLength = spriteInfo->width * spriteInfo->height;
 		inputLength = spriteListLength - (spriteDataPointer -  spriteListData);
 		decodeRLEBuffer(spriteDataPointer, inputLength, outputLength);





More information about the Scummvm-git-logs mailing list