diff options
| -rw-r--r-- | src/crsm.cpp | 15 | ||||
| -rw-r--r-- | src/crsm.hpp | 5 |
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); |
