summaryrefslogtreecommitdiffstats
path: root/src/CRSMPackCompatibility.hpp
blob: 3b13cda92d8107d220e20cc0a574935ba2201935 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once
#include "qt-config/ConfigBase.hpp"

class CRSMPackCompatibility : public ConfigBase
{
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)
    }) {  }

    void clear();

    QString linkScenarioPacks(const QString& scenario);

    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);
    QString applyConfig();

protected:
    QString checkPackVersion(const QString& packVersion, const QString& pack);
    QString checkScenarioPack(const QString& packVersion, const QString& scenario);

private:
    QString clonkPath;
};