[Scummvm-cvs-logs] SF.net SVN: scummvm:[48889] scummvm/trunk/engines/sci/resource.cpp

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Sun May 2 12:21:02 CEST 2010


Revision: 48889
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48889&view=rev
Author:   m_kiewitz
Date:     2010-05-02 10:21:02 +0000 (Sun, 02 May 2010)

Log Message:
-----------
SCI: make audio decompression (mp3/ogg/flac) work on BE devices

Modified Paths:
--------------
    scummvm/trunk/engines/sci/resource.cpp

Modified: scummvm/trunk/engines/sci/resource.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource.cpp	2010-05-02 10:04:38 UTC (rev 48888)
+++ scummvm/trunk/engines/sci/resource.cpp	2010-05-02 10:21:02 UTC (rev 48889)
@@ -282,14 +282,18 @@
 		// Detected a compressed audio volume
 		source->audioCompressionType = compressionType;
 		// Now read the whole offset mapping table for later usage
-		uint32 recordCount = file->readUint32LE();
+		int32 recordCount = file->readUint32LE();
 		if (!recordCount)
 			error("compressed audio volume doesn't contain any entries!");
-		source->audioCompressionOffsetMapping = new int32[(recordCount + 1) * 2];
-		file->read(source->audioCompressionOffsetMapping, recordCount * 4 * 2);
+		int32 *offsetMapping = new int32[(recordCount + 1) * 2];
+		source->audioCompressionOffsetMapping = offsetMapping;
+		for (int recordNo = 0; recordNo < recordCount; recordNo++) {
+			*offsetMapping++ = file->readUint32LE();
+			*offsetMapping++ = file->readUint32LE();
+		}
 		// Put ending zero
-		source->audioCompressionOffsetMapping[recordCount * 2] = 0;
-		source->audioCompressionOffsetMapping[recordCount * 2 + 1] = file->size();
+		*offsetMapping++ = 0;
+		*offsetMapping++ = file->size();
 	}
 }
 


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