# HG changeset patch # User displacer # Date 1168809036 0 # Node ID 751348947fceb91a9fe387b44c1e9a1c064ba64c # Parent 85eacbd9827fa2e4e9dc193ccc55ee4ddea38313 CONFIG_PARAM for storing config diff -r 85eacbd9827f -r 751348947fce QTfrontend/netserver.cpp --- a/QTfrontend/netserver.cpp Sun Jan 14 20:46:17 2007 +0000 +++ b/QTfrontend/netserver.cpp Sun Jan 14 21:10:36 2007 +0000 @@ -87,13 +87,15 @@ return getChiefClient()==cl; } -QStringList HWNetServer::getGameCfg() const +QMap HWNetServer::getGameCfg() const { for(QList::const_iterator it=connclients.begin(); it!=connclients.end(); ++it) { - if(isChiefClient(*it)) return (*it)->gameCfg; + if(isChiefClient(*it)) { + return (*it)->m_gameCfg; + } } // error happened if we are here - return QStringList(); + return QMap(); } bool HWNetServer::haveNick(const QString& nick) const @@ -212,7 +214,12 @@ RawSendNet(QString("CONNECTED")); m_hwserver->teamChanged(); if(m_hwserver->isChiefClient(this)) RawSendNet(QString("CONFIGASKED")); - else RawSendNet(QString("CONFIGURED")+delimeter+m_hwserver->getGameCfg().join(QString(delimeter))); + else { + QMap conf=m_hwserver->getGameCfg(); + for(QMap::iterator it=conf.begin(); it!=conf.end(); ++it) { + RawSendNet(QString("CONFIG_PARAM")+delimeter+it.key()+delimeter+it.value()); + } + } return; } if(client_nick=="") return; @@ -225,10 +232,9 @@ return; } - if(lst[0]=="CONFIGANSWER") { - lst.pop_front(); - gameCfg=lst; - return; + if(lst[0]=="CONFIG_PARAM") { + if(!m_hwserver->isChiefClient(this) || lst.size()<3) return; // error or permission denied :) + else m_gameCfg[lst[1]]=lst[2]; } if(lst[0]=="ADDTEAM:") { diff -r 85eacbd9827f -r 751348947fce QTfrontend/netserver.h --- a/QTfrontend/netserver.h Sun Jan 14 20:46:17 2007 +0000 +++ b/QTfrontend/netserver.h Sun Jan 14 21:10:36 2007 +0000 @@ -21,6 +21,7 @@ #include #include +#include #include "team.h" @@ -78,7 +79,7 @@ void StartServer(); void StopServer(); bool isChiefClient(HWConnectedClient* cl) const; - QStringList getGameCfg() const; + QMap getGameCfg() const; void sendAll(QString gameCfg); void sendOthers(HWConnectedClient* this_cl, QString gameCfg); bool haveNick(const QString& nick) const; diff -r 85eacbd9827f -r 751348947fce QTfrontend/newnetclient.cpp --- a/QTfrontend/newnetclient.cpp Sun Jan 14 20:46:17 2007 +0000 +++ b/QTfrontend/newnetclient.cpp Sun Jan 14 21:10:36 2007 +0000 @@ -216,13 +216,11 @@ void HWNewNet::ConfigAsked() { - QString _msg=QString("CONFIGANSWER")+delimeter; - _msg+=m_pGameCFGWidget->getCurrentSeed()+delimeter; - _msg+=m_pGameCFGWidget->getCurrentMap()+delimeter; - _msg+=m_pGameCFGWidget->getCurrentTheme()+delimeter; - _msg+=QString("%1").arg(m_pGameCFGWidget->getInitHealth())+delimeter; - _msg+=QString("%1").arg(m_pGameCFGWidget->getTurnTime()); - RawSendNet(_msg); + onSeedChanged(m_pGameCFGWidget->getCurrentSeed()); + onMapChanged(m_pGameCFGWidget->getCurrentMap()); + onThemeChanged(m_pGameCFGWidget->getCurrentTheme()); + onInitHealthChanged(m_pGameCFGWidget->getInitHealth()); + onTurnTimeChanged(m_pGameCFGWidget->getTurnTime()); } void HWNewNet::RunGame()