#pragma once #include "qt-config/ConfigBase.hpp" #include "ClientInfo.hpp" class CRSM; class ScenarioSettings { public: QString name; ClientInfo wishClient; bool league = false; bool randomLeague = false; ScenarioSettings(const QString& name, bool league = false) : name(name), league(league) {} ScenarioSettings(const QString& name, const ClientInfo& client, bool league = false) : name(name), wishClient(client), league(league) {} ScenarioSettings() {} inline bool operator ==(const ScenarioSettings& other) const { return name == other.name && league == other.league && randomLeague == other.randomLeague && wishClient == other.wishClient; } }; struct CRSMSession : public ConfigBase { enum SessionState {None = -1, Lobby = 0, Loading = 1, Running = 2}; Boolean League = false; SessionState State = None; Boolean UserWish = false; Boolean AfkAdmin = false; Integer CountDown = -1; ScenarioSettings Scenario; struct { ClientInfo Admin; Map(String, ClientInfo) Clients; ClientInfo Server; QMap LeaveAdmins; } Clonk; struct { ClientInfo Admin; Boolean UseIngameChat = false; } IRC; void clear(); CRSMSession(); CRSMSession(CRSM* crsm); };