[Scummvm-cvs-logs] SF.net SVN: scummvm:[39155] scummvm/trunk/engines/sci/scicore

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Fri Mar 6 14:09:10 CET 2009


Revision: 39155
          http://scummvm.svn.sourceforge.net/scummvm/?rev=39155&view=rev
Author:   thebluegr
Date:     2009-03-06 13:09:10 +0000 (Fri, 06 Mar 2009)

Log Message:
-----------
Cleanup and unification. Merged decryptinit3() inside decrypt3() 

Modified Paths:
--------------
    scummvm/trunk/engines/sci/scicore/decompress0.cpp
    scummvm/trunk/engines/sci/scicore/decompress01.cpp
    scummvm/trunk/engines/sci/scicore/decompress1.cpp

Modified: scummvm/trunk/engines/sci/scicore/decompress0.cpp
===================================================================
--- scummvm/trunk/engines/sci/scicore/decompress0.cpp	2009-03-06 11:06:04 UTC (rev 39154)
+++ scummvm/trunk/engines/sci/scicore/decompress0.cpp	2009-03-06 13:09:10 UTC (rev 39155)
@@ -238,19 +238,20 @@
 	uint16 compressedLength;
 	uint16 compressionMethod;
 	uint8 *buffer;
+	uint8 type;
 
 	result->id = stream.readUint16LE();
 	if (stream.err())
 		return SCI_ERROR_IO_ERROR;
 
 	result->number = result->id & 0x07ff;
-	uint8 type = result->id >> 11;
+	type = result->id >> 11;
 
+	result->type = (ResourceType)type;
+
 	if ((result->number > sci_max_resource_nr[sci_version]) || (type > kResourceTypeInvalid))
 		return SCI_ERROR_DECOMPRESSION_INSANE;
 
-	result->type = (ResourceType)type;
-
 	compressedLength = stream.readUint16LE();
 	result->size = stream.readUint16LE();
 	compressionMethod = stream.readUint16LE();
@@ -259,7 +260,6 @@
 
 	if (result->size > SCI_MAX_RESOURCE_SIZE)
 		return SCI_ERROR_RESOURCE_TOO_BIG;
-	// With SCI0, this simply cannot happen.
 
 	if (compressedLength > 4)
 		compressedLength -= 4;

Modified: scummvm/trunk/engines/sci/scicore/decompress01.cpp
===================================================================
--- scummvm/trunk/engines/sci/scicore/decompress01.cpp	2009-03-06 11:06:04 UTC (rev 39154)
+++ scummvm/trunk/engines/sci/scicore/decompress01.cpp	2009-03-06 13:09:10 UTC (rev 39155)
@@ -51,7 +51,8 @@
 
 uint32 gbits(int numbits,  uint8 * data, int dlen);
 
-void decryptinit3() {
+int decrypt3(uint8 *dest, uint8 *src, int length, int complength) {
+	// Init
 	int i;
 
 	lastchar = lastbits = s_bitstring = stakptr = 0;
@@ -65,9 +66,9 @@
 		tokens[i].next = 0;
 		tokens[i].data = 0;
 	}
-}
 
-int decrypt3(uint8 *dest, uint8 *src, int length, int complength) {
+	// Start decrypting
+
 	static int16 token;
 	while (length != 0) {
 		switch (decryptstart) {
@@ -514,10 +515,6 @@
 	if (stream.err())
 		return SCI_ERROR_IO_ERROR;
 
-	//if ((result->size < 0) || (compressedLength < 0))
-	//	return SCI_ERROR_DECOMPRESSION_INSANE;
-	// This return will never happen in SCI0 or SCI1 (does it have any use?)
-
 	if (result->size > SCI_MAX_RESOURCE_SIZE)
 		return SCI_ERROR_RESOURCE_TOO_BIG;
 
@@ -566,7 +563,6 @@
 	case 2:
 	case 3:
 	case 4:
-		decryptinit3();
 		if (decrypt3(result->data, buffer, result->size, compressedLength)) {
 			overflow = true;
 		} else {

Modified: scummvm/trunk/engines/sci/scicore/decompress1.cpp
===================================================================
--- scummvm/trunk/engines/sci/scicore/decompress1.cpp	2009-03-06 11:06:04 UTC (rev 39154)
+++ scummvm/trunk/engines/sci/scicore/decompress1.cpp	2009-03-06 13:09:10 UTC (rev 39155)
@@ -249,7 +249,6 @@
 	return 0;
 }
 
-void decryptinit3();
 int decrypt3(uint8* dest, uint8* src, int length, int complength);
 
 int decompress1(Resource *result, Common::ReadStream &stream, int sci_version) {
@@ -349,7 +348,6 @@
 	case 2: // ???
 	case 3:
 	case 4:
-		decryptinit3();
 		if (decrypt3(result->data, buffer, result->size, compressedLength)) {
 			free(result->data);
 			result->data = 0; // So that we know that it didn't work


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list