summaryrefslogtreecommitdiffstats
path: root/src/CRSMPackCompatibility.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/CRSMPackCompatibility.hpp')
-rw-r--r--src/CRSMPackCompatibility.hpp39
1 files changed, 32 insertions, 7 deletions
diff --git a/src/CRSMPackCompatibility.hpp b/src/CRSMPackCompatibility.hpp
index eddc350..a35ed95 100644
--- a/src/CRSMPackCompatibility.hpp
+++ b/src/CRSMPackCompatibility.hpp
@@ -1,11 +1,36 @@
-#ifndef PACKCOMPATIBILITY_HPP
-#define PACKCOMPATIBILITY_HPP
+#pragma once
+#include "ConfigBase.hpp"
-
-class PackCompatibility : public ConfigBase
+class CRSMPackCompatibility : public ConfigBase
{
public:
- PackCompatibility();
-};
+ Map(String, String) PackDefaultVersion;
+ Map(String, String) PackVersions;
+ Map(String, List(String)) ScenarioPacks;
+
+ CRSMPackCompatibility() : ConfigBase::ConfigBase({
+ ConfigVal(PackDefaultVersion),
+ ConfigVal(PackVersions),
+ ConfigVal(ScenarioPacks)
+ }) { }
+
+ void clear();
+
+ QString linkScenarioPacks(const QString& scenario);
-#endif // PACKCOMPATIBILITY_HPP
+ QString read(const QString &fileName, const QString &clonkPath, bool writeDefault = true);
+
+ QString addPackVersion(const QString& packVersion, const QString& pack);
+ QString deletePackVersion(const QString& packVersion);
+ QString setDefaultPackVersion(const QString& packVersion, const QString& pack);
+
+ QString addScenarioPackVersion(const QString& packVersion, const QString& scenario);
+ QString deleteScenarioPackVersion(const QString& packVersion, const QString& scenario);
+
+protected:
+ QString checkPackVersion(const QString& packVersion, const QString& pack);
+ QString checkScenarioPack(const QString& packVersion, const QString& scenario);
+
+private:
+ QString clonkPath;
+};