diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2015-10-31 01:53:32 +0100 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2015-10-31 01:53:32 +0100 |
| commit | e048846d0f5179e69690718305a8bde529687a43 (patch) | |
| tree | e00cb22b9e24d95f5d904965405bc2ef9500c968 /src | |
| parent | 9cbc1db9c20aba934c2184cb3496aec854e19dbc (diff) | |
| download | manager-e048846d0f5179e69690718305a8bde529687a43.tar.gz manager-e048846d0f5179e69690718305a8bde529687a43.zip | |
Add config option to add a prefix (folder) to PackVersions
Diffstat (limited to 'src')
| -rw-r--r-- | src/CRSMPackCompatibility.cpp | 36 | ||||
| -rw-r--r-- | src/CRSMPackCompatibility.hpp | 3 |
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); |
