aboutsummaryrefslogtreecommitdiff
path: root/common/macresman.cpp
diff options
context:
space:
mode:
authorMatthew Hoops2010-05-11 15:38:21 +0000
committerMatthew Hoops2010-05-11 15:38:21 +0000
commit59476e44b9d72349fb094a665759729bef1c95b2 (patch)
tree54dfcc89f6171f7780dbc0de5dbc3cbb7435f0a7 /common/macresman.cpp
parenta9a56d50f0a534faac550e7a429848bcfda25ef3 (diff)
downloadscummvm-rg350-59476e44b9d72349fb094a665759729bef1c95b2.tar.gz
scummvm-rg350-59476e44b9d72349fb094a665759729bef1c95b2.tar.bz2
scummvm-rg350-59476e44b9d72349fb094a665759729bef1c95b2.zip
Add support for getting a resource from the resource fork by name.
svn-id: r49004
Diffstat (limited to 'common/macresman.cpp')
-rw-r--r--common/macresman.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/common/macresman.cpp b/common/macresman.cpp
index f36f8b2fe3..fd17944fa9 100644
--- a/common/macresman.cpp
+++ b/common/macresman.cpp
@@ -381,6 +381,20 @@ Common::SeekableReadStream *MacResManager::getResource(uint32 typeID, uint16 res
return _stream->readStream(len);
}
+Common::SeekableReadStream *MacResManager::getResource(Common::String filename) {
+ for (uint32 i = 0; i < _resMap.numTypes; i++) {
+ for (uint32 j = 0; j < _resTypes[i].items; j++) {
+ if (_resLists[i][j].nameOffset != -1 && filename.equalsIgnoreCase(_resLists[i][j].name)) {
+ _stream->seek(_dataOffset + _resLists[i][j].dataOffset);
+ uint32 len = _stream->readUint32BE();
+ return _stream->readStream(len);
+ }
+ }
+ }
+
+ return 0;
+}
+
void MacResManager::readMap() {
_stream->seek(_mapOffset + 22);