[Scummvm-git-logs] scummvm master -> 09d41af771edbb942eea78dcc89ab86c3d05abca
sev-
sev at scummvm.org
Thu Oct 27 16:48:47 CEST 2016
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
ba9eeded27 DIRECTOR: More debug output to RIFX archive reader
09d41af771 DIRECTOR: Fix RIFX resource loading
Commit: ba9eeded271cba1ae68d39e6bb7d81a32c51f73c
https://github.com/scummvm/scummvm/commit/ba9eeded271cba1ae68d39e6bb7d81a32c51f73c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-10-27T16:48:17+02:00
Commit Message:
DIRECTOR: More debug output to RIFX archive reader
Changed paths:
engines/director/archive.cpp
diff --git a/engines/director/archive.cpp b/engines/director/archive.cpp
index 8297645..a96ffa9 100644
--- a/engines/director/archive.cpp
+++ b/engines/director/archive.cpp
@@ -371,11 +371,12 @@ bool RIFXArchive::openStream(Common::SeekableReadStream *stream, uint32 startOff
uint32 tag = subStream.readUint32();
uint32 size = subStream.readUint32();
uint32 offset = subStream.readUint32();
- /*uint16 flags = */ subStream.readUint16();
- /*uint16 unk1 = */ subStream.readUint16();
- /*uint32 unk2 = */ subStream.readUint32();
+ uint16 flags = subStream.readUint16();
+ uint16 unk1 = subStream.readUint16();
+ uint32 unk2 = subStream.readUint32();
- debug(3, "Found RIFX resource index %d: '%s', %d @ 0x%08x", i, tag2str(tag), size, offset);
+ debug(3, "Found RIFX resource index %d: '%s', %d @ 0x%08x (%d), flags: %x unk1: %x unk2: %x",
+ i, tag2str(tag), size, offset, offset, flags, unk1, unk2);
Resource res;
res.offset = offset;
@@ -438,7 +439,7 @@ bool RIFXArchive::openStream(Common::SeekableReadStream *stream, uint32 startOff
}
const Resource &res = resources[index];
- debug(3, "Found RIFX resource: '%s' 0x%04x, %d @ 0x%08x", tag2str(resTag), id, res.size, res.offset);
+ debug(3, "Found RIFX resource: '%s' 0x%04x, %d @ 0x%08x (%d)", tag2str(resTag), id, res.size, res.offset, res.offset);
_types[resTag][id] = res;
}
Commit: 09d41af771edbb942eea78dcc89ab86c3d05abca
https://github.com/scummvm/scummvm/commit/09d41af771edbb942eea78dcc89ab86c3d05abca
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-10-27T16:48:21+02:00
Commit Message:
DIRECTOR: Fix RIFX resource loading
Changed paths:
engines/director/archive.cpp
engines/director/archive.h
engines/director/score.cpp
diff --git a/engines/director/archive.cpp b/engines/director/archive.cpp
index a96ffa9..9122572 100644
--- a/engines/director/archive.cpp
+++ b/engines/director/archive.cpp
@@ -447,4 +447,22 @@ bool RIFXArchive::openStream(Common::SeekableReadStream *stream, uint32 startOff
return true;
}
+Common::SeekableSubReadStreamEndian *RIFXArchive::getResource(uint32 tag, uint16 id) {
+ if (!_types.contains(tag))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const ResourceMap &resMap = _types[tag];
+
+ if (!resMap.contains(id))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const Resource &res = resMap[id];
+
+ uint32 offset = res.offset + 8;
+ uint32 size = res.size;
+
+ return new Common::SeekableSubReadStreamEndian(_stream, offset, offset + size, true, DisposeAfterUse::NO);
+}
+
+
} // End of namespace Director
diff --git a/engines/director/archive.h b/engines/director/archive.h
index 54d7086..93f4ce7 100644
--- a/engines/director/archive.h
+++ b/engines/director/archive.h
@@ -102,6 +102,7 @@ public:
~RIFXArchive() {}
bool openStream(Common::SeekableReadStream *stream, uint32 startOffset = 0);
+ Common::SeekableSubReadStreamEndian *getResource(uint32 tag, uint16 id);
};
} // End of namespace Director
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 1345f4b..7b03ca1 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -365,11 +365,6 @@ void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream) {
}
void Score::loadLabels(Common::SeekableSubReadStreamEndian &stream) {
- if (_vm->getVersion() >= 4) { // HACK: Skip the header. Why it is there?
- stream.readUint32LE();
- stream.readUint32LE();
- }
-
_labels = new Common::SortedArray<Label *>(compareLabels);
uint16 count = stream.readUint16() + 1;
uint16 offset = count * 4 + 2;
More information about the Scummvm-git-logs
mailing list