summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/crsm.cpp15
-rw-r--r--src/crsm.hpp5
2 files changed, 13 insertions, 7 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp
index 52edbf7..06ec498 100644
--- a/src/crsm.cpp
+++ b/src/crsm.cpp
@@ -225,20 +225,18 @@ void CRSM::readServerOutput()
static QRegExp lobbyStartExp(R"((?:Los geht's!|Action go!)\s*)");
if(lobbyStartExp.exactMatch(what) && Session.State == CRSMSession::Lobby)
{
- Session.State = CRSMSession::Loading;
- ircSetIngameChannelTopic();
+ setSessionState(CRSMSession::Loading);
}
static QRegExp startExp("^Start!\\s*$");
if(startExp.exactMatch(what))
{
- Session.State = CRSMSession::Running;
+ setSessionState(CRSMSession::Running);
Stats.AddScenarioStart(Session.Scenario.wishClient, scenarioFileName(Session.Scenario.name));
if(!Session.League)
{
writeToServer(QString("/set maxplayer 0\n"));
}
- ircSetIngameChannelTopic();
}
@@ -732,8 +730,7 @@ void CRSM::startScen(const ScenarioSettings &scen, QStringList argList)
Session.Scenario = scen;
Session.IRC.UseIngameChat = Config.IRC.UseIngameChat;
- Session.State = CRSMSession::Lobby;
- ircSetIngameChannelTopic();
+ setSessionState(CRSMSession::Lobby);
filename = scenarioFileName(scen.name);
if(scen.league && !Config.Hosting.DisableLeague)
@@ -1309,6 +1306,12 @@ void CRSM::ircSetIngameChannelTopic()
}
}
+void CRSM::setSessionState(CRSMSession::SessionState state)
+{
+ Session.State = state;
+ ircSetIngameChannelTopic();
+}
+
void CRSM::addCommand(const QString &name, CmdFunction func, int interfaces, UserType userType, const QString &shortDescription, const QString &argList, const QString &longDescription)
{
const QString& nName = name.trimmed().toLower();
diff --git a/src/crsm.hpp b/src/crsm.hpp
index 0e1464f..b9b7e18 100644
--- a/src/crsm.hpp
+++ b/src/crsm.hpp
@@ -151,8 +151,10 @@ private:
struct CRSMSession : public ConfigBase {
+ enum SessionState {None = -1, Lobby = 0, Loading = 1, Running = 2};
+
Boolean League = false;
- enum {None = -1, Lobby = 0, Loading = 1, Running = 2} State = None;
+ SessionState State = None;
Boolean UserWish = false;
Boolean AfkAdmin = false;
Integer CountDown = -1;
@@ -267,6 +269,7 @@ private:
QString ircActivateIngameChat(bool activated = true);
QStringList listC4Folder(const QString &path);
void ircSetIngameChannelTopic();
+ void setSessionState(CRSMSession::SessionState state);
void addCommand(const QString& name, CmdFunction func, int interfaces = Clonk | IRC, UserType userType = User, const QString& shortDescription = "", const QString &argList = "", const QString &longDescription = "");
inline void addCommandGroup(const QString& name, int interfaces = Clonk | IRC, UserType userType = User, const QString& shortDescription = "", const QString &longDescription = "", CmdFunction defaultFunc = &CRSM::groupinfo);