QTfrontend/netconnectedclient.cpp
changeset 455 925891c52e40
parent 443 eec37eb7f5db
child 461 105af110b0e6
equal deleted inserted replaced
454:19b0164f4284 455:925891c52e40
    86       for(QMap<QString, QStringList>::iterator it=conf.begin(); it!=conf.end(); ++it) {
    86       for(QMap<QString, QStringList>::iterator it=conf.begin(); it!=conf.end(); ++it) {
    87 	RawSendNet(QString("CONFIG_PARAM")+delimeter+it.key()+delimeter+it.value().join(QString(delimeter)));
    87 	RawSendNet(QString("CONFIG_PARAM")+delimeter+it.key()+delimeter+it.value().join(QString(delimeter)));
    88 	qDebug() << QString("CONFIG_PARAM")+delimeter+it.key()+delimeter+it.value().join(QString(delimeter));
    88 	qDebug() << QString("CONFIG_PARAM")+delimeter+it.key()+delimeter+it.value().join(QString(delimeter));
    89       }
    89       }
    90     }
    90     }
       
    91     m_hwserver->sendAll(QString("JOINED")+delimeter+client_nick);
    91     return;
    92     return;
    92   }
    93   }
    93   if(client_nick=="") return;
    94   if(client_nick=="") return;
    94 
    95 
    95   if (lst[0]=="START:") {
    96   if (lst[0]=="START:") {
    98       // start
    99       // start
    99       m_hwserver->sendAll("RUNGAME");
   100       m_hwserver->sendAll("RUNGAME");
   100       m_hwserver->resetStart();
   101       m_hwserver->resetStart();
   101     }
   102     }
   102     return;
   103     return;
       
   104   }
       
   105 
       
   106   if(lst[0]=="HHNUM") {
       
   107     if(!m_hwserver->isChiefClient(this) || lst.size()<4) return; // error or permission denied :)
       
   108     const QString confstr=lst[0]+"+"+lst[1]+"+"+lst[2];
       
   109     QMap<QString, QStringList>::iterator it=m_hwserver->m_gameCfg.find(confstr);
       
   110     int oldTeamHHNum = it==m_hwserver->m_gameCfg.end() ? 0 : it.value()[0].toUInt();
       
   111     int newTeamHHNum = lst[3].toUInt();
       
   112     m_hwserver->hhnum+=newTeamHHNum-oldTeamHHNum;
       
   113     // create CONFIG_PARAM to save HHNUM at server from lst
       
   114     lst=QStringList("CONFIG_PARAM") << confstr << lst[3];
   103   }
   115   }
   104 
   116 
   105   if(lst[0]=="CONFIG_PARAM") {
   117   if(lst[0]=="CONFIG_PARAM") {
   106     if(!m_hwserver->isChiefClient(this) || lst.size()<3) return; // error or permission denied :)
   118     if(!m_hwserver->isChiefClient(this) || lst.size()<3) return; // error or permission denied :)
   107     else m_hwserver->m_gameCfg[lst[1]]=lst.mid(2);
   119     else m_hwserver->m_gameCfg[lst[1]]=lst.mid(2);
   119     // hedgehogs num count
   131     // hedgehogs num count
   120     int maxAdd=18-m_hwserver->hhnum;
   132     int maxAdd=18-m_hwserver->hhnum;
   121     if (maxAdd<=0) return; // reject command
   133     if (maxAdd<=0) return; // reject command
   122     int toAdd=maxAdd<4 ? maxAdd : 4;
   134     int toAdd=maxAdd<4 ? maxAdd : 4;
   123     m_hwserver->hhnum+=toAdd;
   135     m_hwserver->hhnum+=toAdd;
       
   136     qDebug() << "added " << toAdd << " hedgehogs";
   124     // hedgehogs num config
   137     // hedgehogs num config
   125     QString hhnumCfg=QString("CONFIG_PARAM%1HHNUM+%2+%3%1%4").arg(delimeter).arg(lst[0])\
   138     QString hhnumCfg=QString("CONFIG_PARAM%1HHNUM+%2+%3%1%4").arg(delimeter).arg(lst[0])\
   126       .arg(netTeamID)\
   139       .arg(netTeamID)\
   127       .arg(toAdd);
   140       .arg(toAdd);
   128     
   141     
   147     if(lst.size()<2) return;
   160     if(lst.size()<2) return;
   148     
   161     
   149     for(QMap<QString, QStringList>::iterator it=m_hwserver->m_gameCfg.begin(); it!=m_hwserver->m_gameCfg.end(); ++it) {
   162     for(QMap<QString, QStringList>::iterator it=m_hwserver->m_gameCfg.begin(); it!=m_hwserver->m_gameCfg.end(); ++it) {
   150       QStringList hhTmpList=it.key().split('+');
   163       QStringList hhTmpList=it.key().split('+');
   151       if(hhTmpList[0] == "HHNUM") {
   164       if(hhTmpList[0] == "HHNUM") {
   152 	qDebug() << "hhnum config found";
       
   153 	if(hhTmpList[1]==lst[1]) {
   165 	if(hhTmpList[1]==lst[1]) {
   154 	  qDebug() << "hhnum config team found with: " << lst[1] << ":" << it.value()[0].toUInt();
   166 	  qDebug() << "removed " << it.value()[0].toUInt() << " hedgehogs";
   155 	  m_hwserver->hhnum-=it.value()[0].toUInt();
   167 	  m_hwserver->hhnum-=it.value()[0].toUInt();
   156 	  break;
   168 	  break;
   157 	}
   169 	}
   158       }
   170       }
   159     }
   171     }