diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2015-03-18 17:38:51 +0100 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2015-03-18 17:38:51 +0100 |
| commit | 8983d3b38421843db67a05edee180028959c1b51 (patch) | |
| tree | 904305965e9ba3baa27680d5d8b2a7b8dbea213e /crsm.hpp | |
| parent | fbe3c5fbe1327fd81e2eb8fe30a75c4cf5d7b35c (diff) | |
| download | manager-8983d3b38421843db67a05edee180028959c1b51.tar.gz manager-8983d3b38421843db67a05edee180028959c1b51.zip | |
Added ProcessManager, so Clonk can run independently from CRSM.
Added support for league with --league flag for !host.
Diffstat (limited to 'crsm.hpp')
| -rw-r--r-- | crsm.hpp | 25 |
1 files changed, 20 insertions, 5 deletions
@@ -17,6 +17,7 @@ #include <QSignalMapper> #include "CmdFunctionRef.hpp" +#include "ProcessManager.hpp" #define CONFIG_FILE_NAME "CrServerManager.conf" #define CUR_SCEN_FILE_NAME "curscen.txt" @@ -35,6 +36,16 @@ class CRSM; typedef void (CRSM::*IrcCheckCallback)(const ClientInfo&, int, const ClientInfo&); +class ScenarioSettings { +public: + QString name; + bool league = false; + ClientInfo wishClient; + + 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) {} +}; + class CRSM : public QObject { private: @@ -67,12 +78,13 @@ public: explicit CRSM(QObject *parent = 0); ~CRSM(); void start(); + bool isOk(); signals: private slots: void readServerOutput(); - void processError(); + //void processError(); void readInput(); void nextScen(); void printAdditionalHelp(); @@ -82,9 +94,8 @@ private slots: void greet(QString pcName); private: - QProcess *serverprocess; QStringList scenlist; - QStringList userlist; + QList<ScenarioSettings> userlist; QStringList args; QStringList ircModChecks; QStringList ircMods; @@ -115,8 +126,11 @@ private: QStringList ircModIOList; QString writtenToServer; QMap<QString, CmdFunctionRef> cmds; + ProcessManager* processManager; + + bool ok = false; - void startScen(QString, QStringList); + void startScen(const ScenarioSettings& scen, QStringList); void readConfig(); void readScenarios(); QMap<QString, QString> defaultSettings(); @@ -127,7 +141,7 @@ private: QString printQueue(); void ircCheckModCmd(const QString &nick, CmdFunctionRef func, QString arg = ""); QString skipScen(); - void skipCurrent(); + bool skipCurrent(); void writeToServer(const QString& message); void writeConfig(); QString addAliasWish(const QString& param); @@ -172,6 +186,7 @@ private: CMD_FUNCTION(ircadmin); CMD_FUNCTION(noadmin); CMD_FUNCTION(clientlist); + CMD_FUNCTION(set); IRC_CHECK_CALLBACK(ircSetAdmin); IRC_CHECK_CALLBACK(ircModCmd); |
