aboutsummaryrefslogtreecommitdiff
path: root/engines/hdb/file-manager.cpp
diff options
context:
space:
mode:
authorNipun Garg2019-06-01 01:59:12 +0530
committerEugene Sandulenko2019-09-03 17:16:42 +0200
commitfb00f5cb4e7edcf912b56952a5b1a77768a36286 (patch)
treee4cd7e64e90e0ceeee0b2fd63fed527a874dd082 /engines/hdb/file-manager.cpp
parentd5aa1a62b09db339be75ea64d7ec1a61a2e89eeb (diff)
downloadscummvm-rg350-fb00f5cb4e7edcf912b56952a5b1a77768a36286.tar.gz
scummvm-rg350-fb00f5cb4e7edcf912b56952a5b1a77768a36286.tar.bz2
scummvm-rg350-fb00f5cb4e7edcf912b56952a5b1a77768a36286.zip
HDB: Fix Endian problem with the MPC data file
Diffstat (limited to 'engines/hdb/file-manager.cpp')
-rw-r--r--engines/hdb/file-manager.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/engines/hdb/file-manager.cpp b/engines/hdb/file-manager.cpp
index d43c4dac2b..1632da90bb 100644
--- a/engines/hdb/file-manager.cpp
+++ b/engines/hdb/file-manager.cpp
@@ -48,13 +48,13 @@ bool FileMan::openMPC(const Common::String &filename) {
else if (dataHeader.id == MKTAG('M', 'P', 'C', 'U')) {
_compressed = false;
- offset = _mpcFile->readUint32BE();
+ offset = _mpcFile->readUint32LE();
_mpcFile->seek((int32)offset);
// Note: The MPC archive format assumes the offset to be uint32,
// but Common::File::seek() takes the offset as int32.
- dataHeader.dirSize = _mpcFile->readUint32BE();
+ dataHeader.dirSize = _mpcFile->readUint32LE();
debug(8, "MPC: Read %d entries", dataHeader.dirSize);
@@ -65,10 +65,10 @@ bool FileMan::openMPC(const Common::String &filename) {
dirEntry->filename[i] = _mpcFile->readByte();
}
- dirEntry->offset = _mpcFile->readUint32BE();
- dirEntry->length = _mpcFile->readUint32BE();
- dirEntry->ulength = _mpcFile->readUint32BE();
- dirEntry->type = (DataType)_mpcFile->readUint32BE();
+ dirEntry->offset = _mpcFile->readUint32LE();
+ dirEntry->length = _mpcFile->readUint32LE();
+ dirEntry->ulength = _mpcFile->readUint32LE();
+ dirEntry->type = (DataType)_mpcFile->readUint32LE();
_dir.push_back(dirEntry);
}
@@ -92,7 +92,6 @@ MPCEntry *FileMan::findFirstData(const char *string, DataType type) {
debug("Hello");
- int i = 0;
/*for (MPCIterator it = _dir.begin(); it != _dir.end(); it++) {
fileString = (*it)->filename;
if (fileString.contains(string)) {