[Scummvm-cvs-logs] CVS: residual/imuse imuse_mcmp_mgr.cpp,1.3,1.4 imuse_sndmgr.cpp,1.4,1.5

Pawel Kolodziejski aquadran at users.sourceforge.net
Fri Dec 31 10:18:05 CET 2004


Update of /cvsroot/scummvm/residual/imuse
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27022

Modified Files:
	imuse_mcmp_mgr.cpp imuse_sndmgr.cpp 
Log Message:
fixes to imuse

Index: imuse_mcmp_mgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/imuse/imuse_mcmp_mgr.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- imuse_mcmp_mgr.cpp	29 Dec 2004 06:32:07 -0000	1.3
+++ imuse_mcmp_mgr.cpp	31 Dec 2004 18:17:21 -0000	1.4
@@ -57,30 +57,31 @@
 
 	uint32 tag;
 	fread(&tag, 1, 4, _file);
-	tag = MKID_BE(tag);
-	if (tag != MKID_BE('MCMP')) {
+	if (READ_BE_UINT32(&tag) != MKID_BE('MCMP')) {
 		error("McmpMgr::loadCompTable() Expected MCMP tag");
 		return false;
 	}
 
 	fread(&_numCompItems, 1, 2, _file);
-	_numCompItems = MKID_BE(_numCompItems);
+	_numCompItems = READ_BE_UINT16(&_numCompItems);
 	assert(_numCompItems > 0);
 
-	int offset = ftell(_file) + (_numCompItems * 9) + 8;
+	int offset = ftell(_file) + (_numCompItems * 9) + 2;
 	_numCompItems--;
 	_compTable = (CompTable *)malloc(sizeof(CompTable) * _numCompItems);
 	fseek(_file, 5, SEEK_CUR);
 	fread(&_compTable[0].decompSize, 1, 4, _file);
+	int headerSize = _compTable[0].decompSize = READ_BE_UINT32(&_compTable[0].decompSize);
+	int maxSize = headerSize;
+	offset += headerSize;
 
-	int32 maxSize = 0;
 	int i;
 	for (i = 0; i < _numCompItems; i++) {
 		fread(&_compTable[i].codec, 1, 1, _file);
 		fread(&_compTable[i].decompSize, 1, 4, _file);
-		_compTable[i].decompSize = MKID_BE(_compTable[i].decompSize);
+		_compTable[i].decompSize = READ_BE_UINT32(&_compTable[i].decompSize);
 		fread(&_compTable[i].compSize, 1, 4, _file);
-		_compTable[i].compSize = MKID_BE(_compTable[i].compSize);
+		_compTable[i].compSize = READ_BE_UINT32(&_compTable[i].compSize);
 		_compTable[i].offset = offset;
 		offset += _compTable[i].compSize;
 		if (_compTable[i].compSize > maxSize)
@@ -88,16 +89,15 @@
 	}
 	int16 sizeCodecs;
 	fread(&sizeCodecs, 1, 2, _file);
-	sizeCodecs = MKID_BE(sizeCodecs);
+	sizeCodecs = READ_BE_UINT16(&sizeCodecs);
 	for (i = 0; i < _numCompItems; i++) {
 		_compTable[i].offset += sizeCodecs;
 	}
 	fseek(_file, sizeCodecs, SEEK_CUR);
 	_compInput = (byte *)malloc(maxSize);
-	fread(_compInput, 1, _compTable[0].decompSize, _file);
+	fread(_compInput, 1, headerSize, _file);
 	*resPtr = _compInput;
-	offsetData = _compTable[0].compSize;
-
+	offsetData = headerSize;
 	return true;
 }
 

Index: imuse_sndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/imuse/imuse_sndmgr.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- imuse_sndmgr.cpp	29 Dec 2004 06:32:07 -0000	1.4
+++ imuse_sndmgr.cpp	31 Dec 2004 18:17:25 -0000	1.5
@@ -134,6 +134,7 @@
 		}
 		for (i = 0; i < sound->numJumps; i++) {
 			sound->jump[i].offset -= headerSize;
+			sound->jump[i].dest -= headerSize;
 		}
 	} else {
 		error("ImuseSndMgr::prepareSound() Unknown sound format");





More information about the Scummvm-git-logs mailing list