diff --git a/engines/neverhood/resourceman.cpp b/engines/neverhood/resourceman.cpp index e10a5523bf2..1e755bada0b 100644 --- a/engines/neverhood/resourceman.cpp +++ b/engines/neverhood/resourceman.cpp @@ -131,6 +131,17 @@ bool ResourceMan::nhcExists(uint32 fileHash, uint32 type) { return false; } +bool ResourceMan::exists(uint32 fileHash) { + ResourceFileEntry *entry = findEntry(fileHash); + if (!entry) + return false; + if (entry->nhcArchiveEntry && entry->nhcArchive && entry->nhcArchiveEntry->isNormal()) + return true; + if (entry->archiveEntry && entry->archive) + return true; + return false; +} + void ResourceMan::queryResource(uint32 fileHash, ResourceHandle &resourceHandle) { ResourceFileEntry *firstEntry; resourceHandle._resourceFileEntry = findEntry(fileHash, &firstEntry); diff --git a/engines/neverhood/resourceman.h b/engines/neverhood/resourceman.h index aeda82a9621..21f935d3bea 100644 --- a/engines/neverhood/resourceman.h +++ b/engines/neverhood/resourceman.h @@ -115,6 +115,7 @@ public: Common::SeekableReadStream *createStream(uint32 fileHash); Common::SeekableReadStream *createNhcStream(uint32 fileHash, uint32 type); bool nhcExists(uint32 fileHash, uint32 type); + bool exists(uint32 fileHash); const ResourceFileEntry& getEntry(uint index) { return _entries[index]; } uint getEntryCount() { return _entries.size(); } void queryResource(uint32 fileHash, ResourceHandle &resourceHandle);