Map multiple data directories to USVFS

This commit is contained in:
Jeremy Rimpo
2023-09-04 22:20:25 -05:00
parent 3f33571a18
commit fdc4ebd18c
+18 -10
View File
@@ -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>()) {