From 8983d3b38421843db67a05edee180028959c1b51 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Wed, 18 Mar 2015 17:38:51 +0100 Subject: Added ProcessManager, so Clonk can run independently from CRSM. Added support for league with --league flag for !host. --- crsm.hpp | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'crsm.hpp') diff --git a/crsm.hpp b/crsm.hpp index de90241..06407e8 100644 --- a/crsm.hpp +++ b/crsm.hpp @@ -17,6 +17,7 @@ #include #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 userlist; QStringList args; QStringList ircModChecks; QStringList ircMods; @@ -115,8 +126,11 @@ private: QStringList ircModIOList; QString writtenToServer; QMap cmds; + ProcessManager* processManager; + + bool ok = false; - void startScen(QString, QStringList); + void startScen(const ScenarioSettings& scen, QStringList); void readConfig(); void readScenarios(); QMap 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); -- cgit v1.2.3-54-g00ecf