summaryrefslogtreecommitdiff
path: root/src/modinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modinfo.cpp')
-rw-r--r--src/modinfo.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/modinfo.cpp b/src/modinfo.cpp
index de103cb0..28a906fa 100644
--- a/src/modinfo.cpp
+++ b/src/modinfo.cpp
@@ -525,6 +525,13 @@ void ModInfoRegular::readMeta()
}
}
+ int numFiles = metaFile.beginReadArray("installedFiles");
+ for (int i = 0; i < numFiles; ++i) {
+ metaFile.setArrayIndex(i);
+ m_InstalledFileIDs.insert(std::make_pair(metaFile.value("modid").toInt(), metaFile.value("fileid").toInt()));
+ }
+ metaFile.endArray();
+
m_MetaInfoChanged = false;
}
@@ -547,6 +554,16 @@ void ModInfoRegular::saveMeta()
if (m_EndorsedState != ENDORSED_UNKNOWN) {
metaFile.setValue("endorsed", m_EndorsedState);
}
+
+ metaFile.beginWriteArray("installedFiles");
+ int idx = 0;
+ for (auto iter = m_InstalledFileIDs.begin(); iter != m_InstalledFileIDs.end(); ++iter) {
+ metaFile.setArrayIndex(idx++);
+ metaFile.setValue("modid", iter->first);
+ metaFile.setValue("fileid", iter->second);
+ }
+ metaFile.endArray();
+
metaFile.sync(); // sync needs to be called to ensure the file is created
if (metaFile.status() == QSettings::NoError) {
@@ -882,6 +899,12 @@ QStringList ModInfoRegular::archives() const
return result;
}
+void ModInfoRegular::addInstalledFile(int modId, int fileId)
+{
+ m_InstalledFileIDs.insert(std::make_pair(modId, fileId));
+ m_MetaInfoChanged = true;
+}
+
std::vector<QString> ModInfoRegular::getIniTweaks() const
{
QString metaFileName = absolutePath().append("/meta.ini");