From e048846d0f5179e69690718305a8bde529687a43 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Sat, 31 Oct 2015 01:53:32 +0100 Subject: Add config option to add a prefix (folder) to PackVersions --- src/CRSMPackCompatibility.cpp | 36 ++++++++++++++++++++++-------------- src/CRSMPackCompatibility.hpp | 3 +++ 2 files changed, 25 insertions(+), 14 deletions(-) (limited to 'src') 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 #include 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); -- cgit v1.2.3-54-g00ecf