summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Rimpo <jeremy.rimpo@servermonkey.com>2023-09-04 22:20:25 -0500
committerJeremy Rimpo <jeremy.rimpo@servermonkey.com>2023-09-04 22:20:25 -0500
commitfdc4ebd18ce3c988f85abdc894e1e2d736f4ff65 (patch)
tree280de2251fc1aa62f992600e2a01e58f25890535 /src
parent3f33571a181a4e00a1169ef9eb85f37399aa4152 (diff)
Map multiple data directories to USVFS
Diffstat (limited to 'src')
-rw-r--r--src/organizercore.cpp28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index 3a959cb3..f75a8717 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -1984,8 +1984,12 @@ std::vector<Mapping> OrganizerCore::fileMapping(const QString &profileName,
MappingType result;
- QString dataPath
- = QDir::toNativeSeparators(game->dataDirectory().absolutePath());
+ QStringList dataPaths;
+ dataPaths.append(QDir::toNativeSeparators(game->dataDirectory().absolutePath()));
+
+ for (auto directory : game->secondaryDataDirectories()) {
+ dataPaths.append(directory.absolutePath());
+ }
bool overwriteActive = false;
@@ -2002,8 +2006,10 @@ std::vector<Mapping> OrganizerCore::fileMapping(const QString &profileName,
overwriteActive |= createTarget;
if (modPtr->isRegular()) {
- result.insert(result.end(), {QDir::toNativeSeparators(std::get<1>(mod)),
- dataPath, true, createTarget});
+ for (auto dataPath : dataPaths) {
+ result.insert(result.end(), { QDir::toNativeSeparators(std::get<1>(mod)),
+ dataPath, true, createTarget });
+ }
}
}
@@ -2024,12 +2030,14 @@ std::vector<Mapping> OrganizerCore::fileMapping(const QString &profileName,
}
}
- result.insert(result.end(), {
- QDir::toNativeSeparators(m_Settings.paths().overwrite()),
- dataPath,
- true,
- customOverwrite.isEmpty()
- });
+ for (auto dataPath : dataPaths) {
+ result.insert(result.end(), {
+ QDir::toNativeSeparators(m_Settings.paths().overwrite()),
+ dataPath,
+ true,
+ customOverwrite.isEmpty()
+ });
+ }
for (MOBase::IPluginFileMapper *mapper :
m_PluginContainer->plugins<MOBase::IPluginFileMapper>()) {