summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CRSMPackCompatibility.cpp36
-rw-r--r--src/CRSMPackCompatibility.hpp3
2 files changed, 25 insertions, 14 deletions
diff --git a/src/CRSMPackCompatibility.cpp b/src/CRSMPackCompatibility.cpp
index cea57f7..9d171a8 100644
--- a/src/CRSMPackCompatibility.cpp
+++ b/src/CRSMPackCompatibility.cpp
@@ -1,5 +1,6 @@
#include "CRSMPackCompatibility.hpp"
+#include <QDir>
#include <QFile>
void CRSMPackCompatibility::clear()
@@ -36,7 +37,7 @@ QString CRSMPackCompatibility::linkScenarioPacks(const QString &scenario)
{
packFile.remove();
}
- if(!QFile::link(clonkPath + packs[packName], clonkPath + packName))
+ if(!QFile::link(clonkPath + PacksDirectory + QDir::separator() + packs[packName], clonkPath + packName))
{
ret.append("Warning: Could not link pack \"" + packName + "\" to \"" + packs[packName] + "\".\n");
}
@@ -50,18 +51,7 @@ QString CRSMPackCompatibility::read(const QString &fileName, const QString& clon
this->clonkPath = clonkPath;
QString ret = ConfigBase::read(fileName, writeDefault);
- foreach(const QString& packVersion, PackVersions.keys())
- {
- ret.append(checkPackVersion(packVersion, PackVersions[packVersion]));
- }
-
- foreach(const QString& scenario, ScenarioPacks.keys())
- {
- foreach(const QString& scenarioPack, ScenarioPacks[scenario])
- {
- ret.append(checkScenarioPack(scenarioPack, scenario));
- }
- }
+ ret.append(applyConfig());
return ret;
}
@@ -147,9 +137,27 @@ QString CRSMPackCompatibility::deleteScenarioPackVersion(const QString &packVers
}
}
+QString CRSMPackCompatibility::applyConfig()
+{
+ QString ret;
+ foreach(const QString& packVersion, PackVersions.keys())
+ {
+ ret.append(checkPackVersion(packVersion, PackVersions[packVersion]));
+ }
+
+ foreach(const QString& scenario, ScenarioPacks.keys())
+ {
+ foreach(const QString& scenarioPack, ScenarioPacks[scenario])
+ {
+ ret.append(checkScenarioPack(scenarioPack, scenario));
+ }
+ }
+ return ret;
+}
+
QString CRSMPackCompatibility::checkPackVersion(const QString &packVersion, const QString &pack)
{
- if(!QFile(clonkPath + packVersion).exists())
+ if(!QFile(clonkPath + PacksDirectory + QDir::separator() + packVersion).exists())
{
return "Warning: PackVersion \"" + packVersion + "\" of pack \"" + pack + "\" does not exist.\n";
}
diff --git a/src/CRSMPackCompatibility.hpp b/src/CRSMPackCompatibility.hpp
index a35ed95..08b666e 100644
--- a/src/CRSMPackCompatibility.hpp
+++ b/src/CRSMPackCompatibility.hpp
@@ -7,10 +7,12 @@ public:
Map(String, String) PackDefaultVersion;
Map(String, String) PackVersions;
Map(String, List(String)) ScenarioPacks;
+ String PacksDirectory = "Packs";
CRSMPackCompatibility() : ConfigBase::ConfigBase({
ConfigVal(PackDefaultVersion),
ConfigVal(PackVersions),
+ ConfigVal(PacksDirectory),
ConfigVal(ScenarioPacks)
}) { }
@@ -26,6 +28,7 @@ public:
QString addScenarioPackVersion(const QString& packVersion, const QString& scenario);
QString deleteScenarioPackVersion(const QString& packVersion, const QString& scenario);
+ QString applyConfig();
protected:
QString checkPackVersion(const QString& packVersion, const QString& pack);