QTfrontend/netconnectedclient.cpp
changeset 455 925891c52e40
parent 443 eec37eb7f5db
child 461 105af110b0e6
--- a/QTfrontend/netconnectedclient.cpp	Sun Feb 18 21:16:41 2007 +0000
+++ b/QTfrontend/netconnectedclient.cpp	Mon Feb 19 15:31:40 2007 +0000
@@ -88,6 +88,7 @@
 	qDebug() << QString("CONFIG_PARAM")+delimeter+it.key()+delimeter+it.value().join(QString(delimeter));
       }
     }
+    m_hwserver->sendAll(QString("JOINED")+delimeter+client_nick);
     return;
   }
   if(client_nick=="") return;
@@ -102,6 +103,17 @@
     return;
   }
 
+  if(lst[0]=="HHNUM") {
+    if(!m_hwserver->isChiefClient(this) || lst.size()<4) return; // error or permission denied :)
+    const QString confstr=lst[0]+"+"+lst[1]+"+"+lst[2];
+    QMap<QString, QStringList>::iterator it=m_hwserver->m_gameCfg.find(confstr);
+    int oldTeamHHNum = it==m_hwserver->m_gameCfg.end() ? 0 : it.value()[0].toUInt();
+    int newTeamHHNum = lst[3].toUInt();
+    m_hwserver->hhnum+=newTeamHHNum-oldTeamHHNum;
+    // create CONFIG_PARAM to save HHNUM at server from lst
+    lst=QStringList("CONFIG_PARAM") << confstr << lst[3];
+  }
+
   if(lst[0]=="CONFIG_PARAM") {
     if(!m_hwserver->isChiefClient(this) || lst.size()<3) return; // error or permission denied :)
     else m_hwserver->m_gameCfg[lst[1]]=lst.mid(2);
@@ -121,6 +133,7 @@
     if (maxAdd<=0) return; // reject command
     int toAdd=maxAdd<4 ? maxAdd : 4;
     m_hwserver->hhnum+=toAdd;
+    qDebug() << "added " << toAdd << " hedgehogs";
     // hedgehogs num config
     QString hhnumCfg=QString("CONFIG_PARAM%1HHNUM+%2+%3%1%4").arg(delimeter).arg(lst[0])\
       .arg(netTeamID)\
@@ -149,9 +162,8 @@
     for(QMap<QString, QStringList>::iterator it=m_hwserver->m_gameCfg.begin(); it!=m_hwserver->m_gameCfg.end(); ++it) {
       QStringList hhTmpList=it.key().split('+');
       if(hhTmpList[0] == "HHNUM") {
-	qDebug() << "hhnum config found";
 	if(hhTmpList[1]==lst[1]) {
-	  qDebug() << "hhnum config team found with: " << lst[1] << ":" << it.value()[0].toUInt();
+	  qDebug() << "removed " << it.value()[0].toUInt() << " hedgehogs";
 	  m_hwserver->hhnum-=it.value()[0].toUInt();
 	  break;
 	}