summaryrefslogtreecommitdiffstats
path: root/src/crsm.hpp
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2015-10-08 20:48:57 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2015-10-08 20:48:57 +0200
commit1ebfb61ce4c997e7fc2aa52ecc34e9dbe0a8968d (patch)
tree9f1f8ca4a5e5458d9403142c4a42ce2fcefb274f /src/crsm.hpp
parent8180123884cb0a00f710333dec7d503b43ed5070 (diff)
downloadmanager-1ebfb61ce4c997e7fc2aa52ecc34e9dbe0a8968d.tar.gz
manager-1ebfb61ce4c997e7fc2aa52ecc34e9dbe0a8968d.zip
Store UserWishes in Session-file
Diffstat (limited to 'src/crsm.hpp')
-rw-r--r--src/crsm.hpp46
1 files changed, 43 insertions, 3 deletions
diff --git a/src/crsm.hpp b/src/crsm.hpp
index 9351db8..d9434d6 100644
--- a/src/crsm.hpp
+++ b/src/crsm.hpp
@@ -49,6 +49,39 @@ public:
ScenarioSettings(const QString& name, bool league = false) : name(name), league(league) {}
ScenarioSettings(const QString& name, const ClientInfo& client, bool league = false) : name(name), league(league), wishClient(client) {}
+ ScenarioSettings() {}
+ inline bool operator ==(const ScenarioSettings& other) const
+ {
+ return name == other.name && league == other.league && randomLeague == other.randomLeague && wishClient == other.wishClient;
+ }
+};
+
+template<>
+class CRSMConfigValue<ScenarioSettings> : public CRSMConfigValueBase {
+ ScenarioSettings& config;
+
+public:
+ CRSMConfigValue(ScenarioSettings& config) : config(config) { }
+
+ void setValue(const QString& val)
+ {
+ QStringList parts = val.split(':', QString::KeepEmptyParts);
+ if(parts.length() < 3)
+ {
+ throw CRSMConfigException("Cannot read corrupt ScenarioSettings");
+ }
+ else
+ {
+ config.name = CRSMConfigValueBase::getValue<QString>(parts.first());
+ parts.removeFirst();
+ config.league = CRSMConfigValueBase::getValue<bool>(parts.first());
+ parts.removeFirst();
+ config.randomLeague = false;
+ config.wishClient = CRSMConfigValueBase::getValue<ClientInfo>(parts.join(':'));
+ }
+ }
+
+ QString value() { return CRSMConfigValueBase::getStringValue(config.name) + ":" + CRSMConfigValueBase::getStringValue(config.league) + ":" + CRSMConfigValueBase::getStringValue(config.wishClient); }
};
class CRSM : public QObject
@@ -84,9 +117,9 @@ public:
~CRSM();
void start();
bool isOk();
-
+
signals:
-
+
private slots:
void readServerOutput();
void readInput();
@@ -147,7 +180,14 @@ private:
ConfigValue(IRC.Admin),
ConfigValue(IRC.UseIngameChat),
}) {}
- } Session;
+
+ CRSMSession(CRSM* crsm) : CRSMSession()
+ {
+ addConfigValue("Hosting.UserWishes", mkConfigValue(crsm->userlist, false));
+ }
+ };
+
+ CRSMSession Session;
QList<ScenarioSettings> userlist;
QList<ScenarioSettings> autolist;