# HG changeset patch # User displacer # Date 1168558197 0 # Node ID 7f3bd9e31f189c2dad9d35e5c5287ecebae788a8 # Parent 46a43b02bbb3e8e2e60e3ac3b5c9875c56e9b51e some changes diff -r 46a43b02bbb3 -r 7f3bd9e31f18 QTfrontend/netserver.cpp --- a/QTfrontend/netserver.cpp Thu Jan 11 23:19:18 2007 +0000 +++ b/QTfrontend/netserver.cpp Thu Jan 11 23:29:57 2007 +0000 @@ -131,13 +131,21 @@ return msg; } -void HWNetServer::startAll(QString gameCfg) +void HWNetServer::sendAll(QString gameCfg) { for(QList::iterator it=connclients.begin(); it!=connclients.end(); ++it) { (*it)->RawSendNet(gameCfg); } } +void HWNetServer::sendOthers(HWConnectedClient* this_cl, QString gameCfg) +{ + for(QList::iterator it=connclients.begin(); it!=connclients.end(); ++it) { + if(*it==this_cl) continue; + (*it)->RawSendNet(gameCfg); + } +} + HWConnectedClient::HWConnectedClient(HWNetServer* hwserver, QTcpSocket* client) : readyToStart(false), m_hwserver(hwserver), @@ -176,8 +184,9 @@ qDebug() << "line " << msg << " received"; QStringList lst = msg.split(delimeter); - if(lst.size()<2) return; + if(!lst.size()) return; if (lst[0] == "NICK") { + if(lst.size()<2) return; if(m_hwserver->haveNick(lst[1])) { RawSendNet(QString("ERRONEUSNICKNAME")); throw ShouldDisconnectException(); @@ -196,7 +205,7 @@ readyToStart=true; if(m_hwserver->shouldStart(this)) { // start - m_hwserver->startAll(QString("CONFIGURED")+delimeter+m_hwserver->prepareConfig(gameCfg)+delimeter+"!"+delimeter); + m_hwserver->sendAll(QString("CONFIGURED")+delimeter+m_hwserver->prepareConfig(gameCfg)+delimeter+"!"+delimeter); } return; } @@ -207,14 +216,16 @@ return; } - if(lst.size()<10) return; 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(); return; } + + m_hwserver->sendOthers(this, msg); } void HWConnectedClient::teamChangedNotify() @@ -256,5 +267,5 @@ QString HWConnectedClient::getHedgehogsDescription() const { - return pclent_team->TeamGameConfig(65535, 4, 100).join((QString)delimeter); + return pclent_team->TeamGameConfig(65535, 4, 100, true).join((QString)delimeter); } diff -r 46a43b02bbb3 -r 7f3bd9e31f18 QTfrontend/netserver.h --- a/QTfrontend/netserver.h Thu Jan 11 23:19:18 2007 +0000 +++ b/QTfrontend/netserver.h Thu Jan 11 23:29:57 2007 +0000 @@ -78,7 +78,8 @@ void StartServer(); void StopServer(); bool isCheefClient(HWConnectedClient* cl) const; - void startAll(QString gameCfg); + void sendAll(QString gameCfg); + void sendOthers(HWConnectedClient* this_cl, QString gameCfg); bool haveNick(const QString& nick) const; QString getRunningHostName() const; quint16 getRunningPort() const; diff -r 46a43b02bbb3 -r 7f3bd9e31f18 QTfrontend/newnetclient.cpp --- a/QTfrontend/newnetclient.cpp Thu Jan 11 23:19:18 2007 +0000 +++ b/QTfrontend/newnetclient.cpp Thu Jan 11 23:29:57 2007 +0000 @@ -70,10 +70,11 @@ void HWNewNet::SendNet(const QByteArray & buf) { + qDebug() << "to net:" << buf; QString msg = QString(buf.toBase64()); //NetBuffer += buf; - //RawSendNet(QString("PRIVMSG %1 :"MAGIC_CHAR MAGIC_CHAR"%2").arg(channel, msg)); + RawSendNet(QString(msg)); } void HWNewNet::RawSendNet(const QString & str) @@ -169,6 +170,7 @@ } QByteArray em = QByteArray::fromBase64(msg.toAscii()); + qDebug() << "to engine:" << em; emit FromNet(em); } @@ -177,6 +179,7 @@ { QByteArray cache; HWProto::addStringToBuffer(cache, "eseed " + seed); + HWProto::addStringToBuffer(cache, "TN"); HWProto::addStringToBuffer(cache, "e$gmflags 0"); HWProto::addStringToBuffer(cache, QString("etheme %1").arg(config->GetRandomTheme())); QString _msg = QString("CONFIGANSWER") + delimeter + QString(cache.toBase64()); diff -r 46a43b02bbb3 -r 7f3bd9e31f18 QTfrontend/team.cpp --- a/QTfrontend/team.cpp Thu Jan 11 23:19:18 2007 +0000 +++ b/QTfrontend/team.cpp Thu Jan 11 23:29:57 2007 +0000 @@ -198,7 +198,7 @@ } } -QStringList HWTeam::TeamGameConfig(quint32 color, int hedgehogs, quint32 InitHealth) const +QStringList HWTeam::TeamGameConfig(quint32 color, int hedgehogs, quint32 InitHealth, bool netTeam) const { QStringList sl; sl.push_back("eaddteam"); @@ -206,16 +206,18 @@ sl.push_back("ename team " + TeamName); for (int i = 0; i < hedgehogs; i++) sl.push_back(QString("ename hh%1 ").arg(i).append(HHName[i])); - sl.push_back(QString("egrave " + Grave)); - sl.push_back(QString("efort " + Fort)); - for(int i = 0; i < BINDS_NUMBER; i++) - { - sl.push_back(QString("ebind " + binds[i].strbind + " " + binds[i].action)); + if(!netTeam) { + sl.push_back(QString("egrave " + Grave)); + sl.push_back(QString("efort " + Fort)); + for(int i = 0; i < BINDS_NUMBER; i++) + { + sl.push_back(QString("ebind " + binds[i].strbind + " " + binds[i].action)); + } } for (int t = 0; t < hedgehogs; t++) - sl.push_back(QString("eaddhh %1 %2") - .arg(QString::number(difficulty), - QString::number(InitHealth))); + sl.push_back(QString("eaddhh %1 %2") + .arg(QString::number(difficulty), + QString::number(InitHealth))); return sl; } diff -r 46a43b02bbb3 -r 7f3bd9e31f18 QTfrontend/team.h --- a/QTfrontend/team.h Thu Jan 11 23:19:18 2007 +0000 +++ b/QTfrontend/team.h Thu Jan 11 23:29:57 2007 +0000 @@ -48,7 +48,7 @@ bool SaveToFile(); void SetToPage(HWForm * hwform); void GetFromPage(HWForm * hwform); - QStringList TeamGameConfig(quint32 color, int hedgehogs, quint32 InitHealth) const; + QStringList TeamGameConfig(quint32 color, int hedgehogs, quint32 InitHealth, bool netTeam=false) const; bool operator==(const HWTeam& t1) const; bool operator<(const HWTeam& t1) const;