aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNipun Garg2019-06-07 21:07:36 +0530
committerEugene Sandulenko2019-09-03 17:16:44 +0200
commitf512307f70840439dcd85739bd6190ec21bfbaf9 (patch)
tree7dacbb4ca359420f52c5f8344a2a79cfa88d0175
parentc110733371ba6051f0041e78e5e4d20a44dac56d (diff)
downloadscummvm-rg350-f512307f70840439dcd85739bd6190ec21bfbaf9.tar.gz
scummvm-rg350-f512307f70840439dcd85739bd6190ec21bfbaf9.tar.bz2
scummvm-rg350-f512307f70840439dcd85739bd6190ec21bfbaf9.zip
HDB: Add findFiles to file-manager
It finds all MPC files of a common DataType that consist of a substring.
-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);
};