aboutsummaryrefslogtreecommitdiff
path: root/engines/director/resource.cpp
diff options
context:
space:
mode:
authorDmitry Iskrich2016-06-27 14:49:04 +0300
committerEugene Sandulenko2016-08-03 23:40:36 +0200
commit8a884ad08cd7e638f3be19cfb49a4642f88eb7bd (patch)
tree267c6be80565b8a69518c7caa00a6de91100b8dd /engines/director/resource.cpp
parentb2a152dd54e86247a06fa91c5c0ff6f092acc943 (diff)
downloadscummvm-rg350-8a884ad08cd7e638f3be19cfb49a4642f88eb7bd.tar.gz
scummvm-rg350-8a884ad08cd7e638f3be19cfb49a4642f88eb7bd.tar.bz2
scummvm-rg350-8a884ad08cd7e638f3be19cfb49a4642f88eb7bd.zip
DIRECTOR: Change ReadStream to ReadStreamEndian
Diffstat (limited to 'engines/director/resource.cpp')
-rw-r--r--engines/director/resource.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 3ac9b4b6ca..5a2033a5a5 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -34,6 +34,7 @@ namespace Director {
Archive::Archive() {
_stream = 0;
+ _isBigEndian = true;
}
Archive::~Archive() {
@@ -81,7 +82,7 @@ bool Archive::hasResource(uint32 tag, const Common::String &resName) const {
return false;
}
-Common::SeekableReadStream *Archive::getResource(uint32 tag, uint16 id) {
+Common::SeekableSubReadStreamEndian *Archive::getResource(uint32 tag, uint16 id) {
if (!_types.contains(tag))
error("Archive does not contain '%s' %04x", tag2str(tag), id);
@@ -92,7 +93,7 @@ Common::SeekableReadStream *Archive::getResource(uint32 tag, uint16 id) {
const Resource &res = resMap[id];
- return new Common::SeekableSubReadStream(_stream, res.offset, res.offset + res.size);
+ return new Common::SeekableSubReadStreamEndian(_stream, res.offset, res.offset + res.size, _isBigEndian, DisposeAfterUse::NO);
}
uint32 Archive::getOffset(uint32 tag, uint16 id) const {
@@ -211,9 +212,10 @@ bool MacArchive::openStream(Common::SeekableReadStream *stream, uint32 startOffs
return false;
}
-Common::SeekableReadStream *MacArchive::getResource(uint32 tag, uint16 id) {
+Common::SeekableSubReadStreamEndian *MacArchive::getResource(uint32 tag, uint16 id) {
assert(_resFork);
- return _resFork->getResource(tag, id);
+ Common::SeekableReadStream *stream = _resFork->getResource(tag, id);
+ return new Common::SeekableSubReadStreamEndian(stream, 0, stream->size(), DisposeAfterUse::NO);
}
// RIFF Archive code
@@ -275,7 +277,7 @@ bool RIFFArchive::openStream(Common::SeekableReadStream *stream, uint32 startOff
return true;
}
-Common::SeekableReadStream *RIFFArchive::getResource(uint32 tag, uint16 id) {
+Common::SeekableSubReadStreamEndian *RIFFArchive::getResource(uint32 tag, uint16 id) {
if (!_types.contains(tag))
error("Archive does not contain '%s' %04x", tag2str(tag), id);
@@ -302,7 +304,7 @@ Common::SeekableReadStream *RIFFArchive::getResource(uint32 tag, uint16 id) {
size--;
}
- return new Common::SeekableSubReadStream(_stream, offset, offset + size);
+ return new Common::SeekableSubReadStreamEndian(_stream, offset, offset + size, true, DisposeAfterUse::NO);
}
// RIFX Archive code