diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2015-09-24 22:10:19 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2015-09-24 22:10:19 +0200 |
| commit | 50d9907af2522a9a6e02a171b9a26938a743971c (patch) | |
| tree | b1f903bae3e13c2db94ba288666d5621e6389e19 /src/crsm.hpp | |
| parent | a1ea09de117bff522e08c4e5e3aa386ba192d276 (diff) | |
| download | manager-50d9907af2522a9a6e02a171b9a26938a743971c.tar.gz manager-50d9907af2522a9a6e02a171b9a26938a743971c.zip | |
Save session to CrServerManager.session on detach and load it on
reattaching
Diffstat (limited to 'src/crsm.hpp')
| -rw-r--r-- | src/crsm.hpp | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/src/crsm.hpp b/src/crsm.hpp index 43a15ae..b2f0671 100644 --- a/src/crsm.hpp +++ b/src/crsm.hpp @@ -23,6 +23,7 @@ #include "CRSMConfig.hpp" #define CONFIG_FILE_NAME "CrServerManager.conf" +#define SESSION_FILE_NAME "CrServerManager.session" #define CUR_SCEN_FILE_NAME "curscen.txt" #define LAST_SCEN_FILE_NAME "lastscen.txt" #define SCOREBOARD_FILE_NAME Config.Auto.Volatile.Clonk.Directory + "scoreboard.html" @@ -106,29 +107,46 @@ private: CRSMConfig Config; - struct CRSMSession { - bool League = false; + struct CRSMSession : public CRSMConfigBase { + Boolean League = false; enum {None = -1, Lobby = 0, Loading = 1, Running = 2} State = None; - bool UserWish = false; - int CountDown = -1; - QString ScenarioName = ""; + Boolean UserWish = false; + Integer CountDown = -1; + String ScenarioName = ""; struct { ClientInfo Admin; - QMap<QString, ClientInfo> Clients; + Map(String, ClientInfo) Clients; QMap<ClientInfo, QDateTime> LeaveAdmins; } Clonk; struct { ClientInfo Admin; - bool UseIngameChat = false; + Boolean UseIngameChat = false; } IRC; void clear() { + auto configVals = configValues; *this = CRSMSession(); + configValues = configVals; } + + CRSMSession() : CRSMConfigBase::CRSMConfigBase({ + ConfigValue(League), + ConfigValue((Integer&)State), + ConfigValue(UserWish), + ConfigValue(CountDown), + ConfigValue(ScenarioName), + + ConfigValue(Clonk.Admin), + ConfigValue(Clonk.Clients), + ConfigValue(Clonk.Clients), + + ConfigValue(IRC.Admin), + ConfigValue(IRC.UseIngameChat), + }) {} } Session; QList<ScenarioSettings> userlist; |
