diff options
Diffstat (limited to 'engines/mohawk')
-rw-r--r-- | engines/mohawk/resource.cpp | 22 | ||||
-rw-r--r-- | engines/mohawk/resource.h | 3 |
2 files changed, 25 insertions, 0 deletions
diff --git a/engines/mohawk/resource.cpp b/engines/mohawk/resource.cpp index df8271dc5a..9b39692958 100644 --- a/engines/mohawk/resource.cpp +++ b/engines/mohawk/resource.cpp @@ -131,6 +131,28 @@ Common::String Archive::getName(uint32 tag, uint16 id) const { return resMap[id].name; } +Common::Array<uint32> Archive::getResourceTypeList() const { + Common::Array<uint32> typeList; + + for (TypeMap::const_iterator it = _types.begin(); it != _types.end(); it++) + typeList.push_back(it->_key); + + return typeList; +} + +Common::Array<uint16> Archive::getResourceIDList(uint32 type) const { + Common::Array<uint16> idList; + + if (!_types.contains(type)) + return idList; + + const ResourceMap &resMap = _types[type]; + + for (ResourceMap::const_iterator it = resMap.begin(); it != resMap.end(); it++) + idList.push_back(it->_key); + + return idList; +} // Mohawk Archive code diff --git a/engines/mohawk/resource.h b/engines/mohawk/resource.h index d4e91e0ec4..f2ead7af65 100644 --- a/engines/mohawk/resource.h +++ b/engines/mohawk/resource.h @@ -148,6 +148,9 @@ public: uint16 findResourceID(uint32 tag, const Common::String &resName) const; Common::String getName(uint32 tag, uint16 id) const; + Common::Array<uint32> getResourceTypeList() const; + Common::Array<uint16> getResourceIDList(uint32 type) const; + protected: Common::SeekableReadStream *_stream; |