QTfrontend/netserver.cpp
changeset 401 bcebe3921740
parent 399 c7da1bd32b4e
child 404 64a62b679b04
equal deleted inserted replaced
400:450ff6326084 401:bcebe3921740
   226       for(QList<QStringList>::iterator tmit=team_conf.begin(); tmit!=team_conf.end(); ++tmit) {
   226       for(QList<QStringList>::iterator tmit=team_conf.begin(); tmit!=team_conf.end(); ++tmit) {
   227 	RawSendNet(QString("ADDTEAM:")+delimeter+tmit->join(QString(delimeter)));
   227 	RawSendNet(QString("ADDTEAM:")+delimeter+tmit->join(QString(delimeter)));
   228       }
   228       }
   229       // send config
   229       // send config
   230       QMap<QString, QStringList> conf=m_hwserver->getGameCfg();
   230       QMap<QString, QStringList> conf=m_hwserver->getGameCfg();
       
   231       qDebug() << "Config:";
   231       for(QMap<QString, QStringList>::iterator it=conf.begin(); it!=conf.end(); ++it) {
   232       for(QMap<QString, QStringList>::iterator it=conf.begin(); it!=conf.end(); ++it) {
   232 	RawSendNet(QString("CONFIG_PARAM")+delimeter+it.key()+delimeter+it.value().join(QString(delimeter)));
   233 	RawSendNet(QString("CONFIG_PARAM")+delimeter+it.key()+delimeter+it.value().join(QString(delimeter)));
       
   234 	qDebug() << QString("CONFIG_PARAM")+delimeter+it.key()+delimeter+it.value().join(QString(delimeter));
   233       }
   235       }
   234     }
   236     }
   235     return;
   237     return;
   236   }
   238   }
   237   if(client_nick=="") return;
   239   if(client_nick=="") return;
   247   }
   249   }
   248 
   250 
   249   if(lst[0]=="CONFIG_PARAM") {
   251   if(lst[0]=="CONFIG_PARAM") {
   250     if(!m_hwserver->isChiefClient(this) || lst.size()<3) return; // error or permission denied :)
   252     if(!m_hwserver->isChiefClient(this) || lst.size()<3) return; // error or permission denied :)
   251     else m_gameCfg[lst[1]]=lst.mid(2);
   253     else m_gameCfg[lst[1]]=lst.mid(2);
       
   254     qDebug() << msg;
   252   }
   255   }
   253 
   256 
   254   if(lst[0]=="ADDTEAM:") {
   257   if(lst[0]=="ADDTEAM:") {
   255     if(lst.size()<11) return;
   258     if(lst.size()<11) return;
   256     lst.pop_front();
   259     lst.pop_front();
   257     
   260     
   258     // add team ID
   261     // add team ID
   259     static unsigned int netTeamID=1;
   262     static unsigned int netTeamID=0;
   260     lst.insert(1, QString::number(netTeamID++));
   263     lst.insert(1, QString::number(++netTeamID));
   261 
   264 
   262     // hedgehogs num count
   265     // hedgehogs num count
   263     int maxAdd=18-m_hwserver->hhnum;
   266     int maxAdd=18-m_hwserver->hhnum;
   264     if (maxAdd<=0) return; // reject command
   267     if (maxAdd<=0) return; // reject command
   265     int toAdd=maxAdd<4 ? maxAdd : 4;
   268     int toAdd=maxAdd<4 ? maxAdd : 4;
   268     QString hhnumCfg=QString("CONFIG_PARAM%1HHNUM+%2+%3%1%4").arg(delimeter).arg(lst[0])\
   271     QString hhnumCfg=QString("CONFIG_PARAM%1HHNUM+%2+%3%1%4").arg(delimeter).arg(lst[0])\
   269       .arg(netTeamID)\
   272       .arg(netTeamID)\
   270       .arg(toAdd);
   273       .arg(toAdd);
   271     
   274     
   272     // creating color config for new team
   275     // creating color config for new team
   273     QString colorCfg=QString("CONFIG_PARAM%1TEAM_COLOR%1%2%1%3%1%4").arg(delimeter).arg(lst[0])\
   276     QString colorCfg=QString("CONFIG_PARAM%1TEAM_COLOR+%2+%3%1%4").arg(delimeter).arg(lst[0])\
   274       .arg(netTeamID)\
   277       .arg(netTeamID)\
   275       .arg(lst.takeAt(2));
   278       .arg(lst.takeAt(2));
   276     qDebug() << "color config:" << colorCfg;
   279     qDebug() << "color config:" << colorCfg;
   277 
   280 
   278     m_gameCfg[colorCfg.split(delimeter)[1]]=colorCfg.split(delimeter).mid(2);
   281     m_gameCfg[colorCfg.split(delimeter)[1]]=colorCfg.split(delimeter).mid(2);
   300       }
   303       }
   301     }
   304     }
   302 
   305 
   303     unsigned int netID=removeTeam(lst[1]);
   306     unsigned int netID=removeTeam(lst[1]);
   304     m_hwserver->sendOthers(this, QString("REMOVETEAM:")+delimeter+lst[1]+delimeter+QString::number(netID));
   307     m_hwserver->sendOthers(this, QString("REMOVETEAM:")+delimeter+lst[1]+delimeter+QString::number(netID));
       
   308     qDebug() << QString("REMOVETEAM:")+delimeter+lst[1]+delimeter+QString::number(netID);
   305     return;
   309     return;
   306   }
   310   }
   307 
   311 
   308   m_hwserver->sendOthers(this, msg);
   312   m_hwserver->sendOthers(this, msg);
   309 }
   313 }