summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-02-13 15:25:21 +0300
committerAndrei Karas <akaras@inbox.ru>2017-02-13 15:25:21 +0300
commit63f37017719d01f9ea72fb1f1e1722918a368755 (patch)
tree555c9d860becb70205bf2608bea2d869e2386b7e /src
parent20ba8c348fe5e4d3af16fd3775e74d2200a53b98 (diff)
downloadmv-63f37017719d01f9ea72fb1f1e1722918a368755.tar.gz
mv-63f37017719d01f9ea72fb1f1e1722918a368755.tar.bz2
mv-63f37017719d01f9ea72fb1f1e1722918a368755.tar.xz
mv-63f37017719d01f9ea72fb1f1e1722918a368755.zip
Remove from resourcemanager function for add/remove archives from directory.
Diffstat (limited to 'src')
-rw-r--r--src/client.cpp8
-rw-r--r--src/dyetool/client.cpp4
-rw-r--r--src/resources/resourcemanager/resourcemanager.cpp46
-rw-r--r--src/resources/resourcemanager/resourcemanager.h15
-rw-r--r--src/utils/virtfs.cpp46
-rw-r--r--src/utils/virtfs.h5
6 files changed, 57 insertions, 67 deletions
diff --git a/src/client.cpp b/src/client.cpp
index 29fdc971a..79d4ce339 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -1074,7 +1074,7 @@ int Client::gameExec()
if (settings.options.dataPath.empty())
{
// Add customdata directory
- resourceManager->searchAndRemoveArchives(
+ VirtFs::searchAndRemoveArchives(
"customdata/",
"zip");
}
@@ -1087,7 +1087,7 @@ int Client::gameExec()
if (!settings.options.skipUpdate)
{
- resourceManager->searchAndRemoveArchives(
+ VirtFs::searchAndRemoveArchives(
settings.updatesDir +
"/local/",
"zip");
@@ -1302,7 +1302,7 @@ int Client::gameExec()
if (settings.options.dataPath.empty())
{
// Add customdata directory
- resourceManager->searchAndAddArchives(
+ VirtFs::searchAndAddArchives(
"customdata/",
"zip",
Append_false);
@@ -1310,7 +1310,7 @@ int Client::gameExec()
if (!settings.options.skipUpdate)
{
- resourceManager->searchAndAddArchives(
+ VirtFs::searchAndAddArchives(
settings.updatesDir + "/local/",
"zip",
Append_false);
diff --git a/src/dyetool/client.cpp b/src/dyetool/client.cpp
index 19ad331a3..c601881f7 100644
--- a/src/dyetool/client.cpp
+++ b/src/dyetool/client.cpp
@@ -628,7 +628,7 @@ int Client::gameExec()
if (settings.options.dataPath.empty())
{
// Add customdata directory
- resourceManager->searchAndAddArchives(
+ VirtFs::searchAndAddArchives(
"customdata/",
"zip",
Append_false);
@@ -636,7 +636,7 @@ int Client::gameExec()
if (!settings.options.skipUpdate)
{
- resourceManager->searchAndAddArchives(
+ VirtFs::searchAndAddArchives(
settings.updatesDir + "/local/",
"zip",
Append_false);
diff --git a/src/resources/resourcemanager/resourcemanager.cpp b/src/resources/resourcemanager/resourcemanager.cpp
index 530d45902..244f657e2 100644
--- a/src/resources/resourcemanager/resourcemanager.cpp
+++ b/src/resources/resourcemanager/resourcemanager.cpp
@@ -335,52 +335,6 @@ void ResourceManager::clearDeleted(const bool full)
}
}
-void ResourceManager::searchAndAddArchives(const std::string &restrict path,
- const std::string &restrict ext,
- const Append append) const
-{
- const char *const dirSep = dirSeparator;
- char **list = VirtFs::enumerateFiles(path.c_str());
-
- for (char **i = list; *i; i++)
- {
- const size_t len = strlen(*i);
-
- if (len > ext.length() && !ext.compare((*i) + (len - ext.length())))
- {
- const std::string file = path + (*i);
- const std::string realPath = std::string(
- VirtFs::getRealDir(file.c_str()));
- VirtFs::addZipToSearchPath(std::string(realPath).append(
- dirSep).append(file), append);
- }
- }
-
- VirtFs::freeList(list);
-}
-
-void ResourceManager::searchAndRemoveArchives(const std::string &restrict path,
- const std::string &restrict ext)
- const
-{
- const char *const dirSep = dirSeparator;
- char **list = VirtFs::enumerateFiles(path.c_str());
-
- for (char **i = list; *i; i++)
- {
- const size_t len = strlen(*i);
- if (len > ext.length() && !ext.compare((*i) + (len - ext.length())))
- {
- const std::string file = path + (*i);
- const std::string realPath = std::string(
- VirtFs::getRealDir(file.c_str()));
- VirtFs::removeZipFromSearchPath(std::string(realPath).append(
- dirSep).append(file));
- }
- }
-
- VirtFs::freeList(list);
-}
bool ResourceManager::addResource(const std::string &idPath,
Resource *const resource)
diff --git a/src/resources/resourcemanager/resourcemanager.h b/src/resources/resourcemanager/resourcemanager.h
index b9732947f..6fff83df0 100644
--- a/src/resources/resourcemanager/resourcemanager.h
+++ b/src/resources/resourcemanager/resourcemanager.h
@@ -25,8 +25,6 @@
#include "resources/memorycounter.h"
-#include "enums/simpletypes/append.h"
-
#include <map>
#include <set>
@@ -60,19 +58,6 @@ class ResourceManager final : public MemoryCounter
~ResourceManager();
/**
- * Searches for zip files and adds them to the search path.
- */
- void searchAndAddArchives(const std::string &restrict path,
- const std::string &restrict ext,
- const Append append) const;
-
- /**
- * Searches for zip files and remove them from the search path.
- */
- void searchAndRemoveArchives(const std::string &restrict path,
- const std::string &restrict ext) const;
-
- /**
* Creates a resource and adds it to the resource map.
*
* @param idPath The resource identifier path.
diff --git a/src/utils/virtfs.cpp b/src/utils/virtfs.cpp
index 0ab3b668f..e5b407f35 100644
--- a/src/utils/virtfs.cpp
+++ b/src/utils/virtfs.cpp
@@ -299,4 +299,50 @@ namespace VirtFs
{
return PHYSFS_eof(file->mPrivate->mFile);
}
+
+ void searchAndAddArchives(const std::string &restrict path,
+ const std::string &restrict ext,
+ const Append append)
+ {
+ char **list = VirtFs::enumerateFiles(path.c_str());
+
+ for (char **i = list; *i; i++)
+ {
+ const size_t len = strlen(*i);
+
+ if (len > ext.length() &&
+ !ext.compare((*i) + (len - ext.length())))
+ {
+ const std::string file = path + (*i);
+ const std::string realPath = std::string(
+ VirtFs::getRealDir(file.c_str()));
+ VirtFs::addZipToSearchPath(std::string(realPath).append(
+ dirSeparator).append(file), append);
+ }
+ }
+ VirtFs::freeList(list);
+ }
+
+ void searchAndRemoveArchives(const std::string &restrict path,
+ const std::string &restrict ext)
+ {
+ char **list = VirtFs::enumerateFiles(path.c_str());
+
+ for (char **i = list; *i; i++)
+ {
+ const size_t len = strlen(*i);
+ if (len > ext.length() &&
+ !ext.compare((*i) + (len - ext.length())))
+ {
+ const std::string file = path + (*i);
+ const std::string realPath = std::string(
+ VirtFs::getRealDir(file.c_str()));
+ VirtFs::removeZipFromSearchPath(std::string(
+ realPath).append(
+ dirSeparator).append(
+ file));
+ }
+ }
+ VirtFs::freeList(list);
+ }
} // namespace PhysFs
diff --git a/src/utils/virtfs.h b/src/utils/virtfs.h
index f28354790..05243817f 100644
--- a/src/utils/virtfs.h
+++ b/src/utils/virtfs.h
@@ -70,6 +70,11 @@ namespace VirtFs
int seek(VirtFile *const file,
const uint64_t pos);
int eof(VirtFile *const file);
+ void searchAndAddArchives(const std::string &restrict path,
+ const std::string &restrict ext,
+ const Append append);
+ void searchAndRemoveArchives(const std::string &restrict path,
+ const std::string &restrict ext);
} // namespace VirtFs
extern const char *dirSeparator;