aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/hdb/file-manager.cpp17
-rw-r--r--engines/hdb/file-manager.h1
2 files changed, 18 insertions, 0 deletions
diff --git a/engines/hdb/file-manager.cpp b/engines/hdb/file-manager.cpp
index b3945b3456..0226f56b4d 100644
--- a/engines/hdb/file-manager.cpp
+++ b/engines/hdb/file-manager.cpp
@@ -159,6 +159,23 @@ int FileMan::getCount(char *subString, DataType type) {
return count;
}
+Common::Array<const char *> *FileMan::findFiles(const char *string, DataType type) {
+ Common::Array<const char *> *result = new Common::Array<const char *>;
+ Common::String fileString;
+
+ // Find MPC Entry
+ for (MPCIterator it = _dir.begin(); it != _dir.end(); it++) {
+ fileString = (*it)->filename;
+ if (fileString.contains(string)) {
+ if ((*it)->type == type) {
+ result->push_back((*it)->filename);
+ }
+ }
+ }
+
+ return result;
+}
+
#if 0
MPCEntry **FileMan::findNextData(MPCIterator begin) {
Common::String fileString;
diff --git a/engines/hdb/file-manager.h b/engines/hdb/file-manager.h
index 492f97ed75..15558d99cd 100644
--- a/engines/hdb/file-manager.h
+++ b/engines/hdb/file-manager.h
@@ -77,6 +77,7 @@ public:
Common::SeekableReadStream *findFirstData(const char *string, DataType type);
int32 getLength(const char *string, DataType type);
int getCount(char *subString, DataType type);
+ Common::Array<const char *> *findFiles(const char *string, DataType type);
};