[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