diff -r a46abb65eb0c -r d1e75dcd285f QTfrontend/netserver.cpp --- a/QTfrontend/netserver.cpp Sun Jan 14 21:51:17 2007 +0000 +++ b/QTfrontend/netserver.cpp Sun Jan 14 23:13:24 2007 +0000 @@ -60,7 +60,7 @@ { QList::iterator it=std::find(connclients.begin(), connclients.end(), client); connclients.erase(it); - teamChanged(); + //teamChanged(); } QString HWNetServer::getRunningHostName() const @@ -108,25 +108,18 @@ return false; } -QStringList HWNetServer::getTeams() const +QList HWNetServer::getTeamsConfig() const { - QStringList lst; + QList lst; for(QList::const_iterator it=connclients.begin(); it!=connclients.end(); ++it) { try { - lst.push_back((*it)->getTeamName()); + lst+=(*it)->getTeamNames(); } catch(HWConnectedClient::NoTeamNameException& e) { } } return lst; } -void HWNetServer::teamChanged() -{ - for(QList::const_iterator it=connclients.begin(); it!=connclients.end(); ++it) { - (*it)->teamChangedNotify(); - } -} - bool HWNetServer::shouldStart(HWConnectedClient* client) { QList::iterator it=std::find(connclients.begin(), connclients.end(), client); @@ -166,8 +159,7 @@ HWConnectedClient::HWConnectedClient(HWNetServer* hwserver, QTcpSocket* client) : readyToStart(false), m_hwserver(hwserver), - m_client(client), - pclent_team(0) + m_client(client) { connect(client, SIGNAL(disconnected()), this, SLOT(ClientDisconnect())); connect(client, SIGNAL(readyRead()), this, SLOT(ClientRead())); @@ -175,7 +167,6 @@ HWConnectedClient::~HWConnectedClient() { - if(pclent_team) delete pclent_team; } void HWConnectedClient::ClientDisconnect() @@ -212,13 +203,18 @@ client_nick=lst[1]; qDebug() << "send connected"; RawSendNet(QString("CONNECTED")); - m_hwserver->teamChanged(); if(m_hwserver->isChiefClient(this)) RawSendNet(QString("CONFIGASKED")); else { + // send config 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()); } + // send teams + QList team_conf=m_hwserver->getTeamsConfig(); + for(QList::iterator tmit=team_conf.begin(); tmit!=team_conf.end(); ++tmit) { + RawSendNet(QString("ADDTEAM:")+delimeter+tmit->join(QString(delimeter))); + } } return; } @@ -240,23 +236,17 @@ if(lst[0]=="ADDTEAM:") { if(lst.size()<10) return; lst.pop_front(); - if(pclent_team) delete pclent_team; - pclent_team=new HWTeam(lst); - m_hwserver->teamChanged(); + m_teamsCfg.push_back(lst); + m_hwserver->sendOthers(this, msg); return; } m_hwserver->sendOthers(this, msg); } -void HWConnectedClient::teamChangedNotify() +QList HWConnectedClient::getTeamNames() const { - QString teams; - QStringList lst=m_hwserver->getTeams(); - for(int i=0; iTeamName; -} - bool HWConnectedClient::isReady() const { return readyToStart; @@ -288,5 +272,5 @@ QString HWConnectedClient::getHedgehogsDescription() const { - return pclent_team->TeamGameConfig(65535, 4, 100, true).join((QString)delimeter); + return QString();//pclent_team->TeamGameConfig(65535, 4, 100, true).join((QString)delimeter); }