diff options
author | Dmitry Iskrich | 2016-06-27 14:49:04 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2016-08-03 23:40:36 +0200 |
commit | 8a884ad08cd7e638f3be19cfb49a4642f88eb7bd (patch) | |
tree | 267c6be80565b8a69518c7caa00a6de91100b8dd /engines/director/resource.cpp | |
parent | b2a152dd54e86247a06fa91c5c0ff6f092acc943 (diff) | |
download | scummvm-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.cpp | 14 |
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 |