21 |
21 |
22 #include "newnetclient.h" |
22 #include "newnetclient.h" |
23 #include "proto.h" |
23 #include "proto.h" |
24 #include "gameuiconfig.h" |
24 #include "gameuiconfig.h" |
25 #include "game.h" |
25 #include "game.h" |
|
26 #include "gamecfgwidget.h" |
26 |
27 |
27 char delimeter='\t'; |
28 char delimeter='\t'; |
28 |
29 |
29 HWNewNet::HWNewNet(GameUIConfig * config) : |
30 HWNewNet::HWNewNet(GameUIConfig * config, GameCFGWidget* pGameCFGWidget) : |
30 config(config) |
31 config(config), |
|
32 m_pGameCFGWidget(pGameCFGWidget), |
|
33 isChief(false) |
31 { |
34 { |
32 connect(&NetSocket, SIGNAL(readyRead()), this, SLOT(ClientRead())); |
35 connect(&NetSocket, SIGNAL(readyRead()), this, SLOT(ClientRead())); |
33 connect(&NetSocket, SIGNAL(connected()), this, SLOT(OnConnect())); |
36 connect(&NetSocket, SIGNAL(connected()), this, SLOT(OnConnect())); |
34 connect(&NetSocket, SIGNAL(disconnected()), this, SLOT(OnDisconnect())); |
37 connect(&NetSocket, SIGNAL(disconnected()), this, SLOT(OnDisconnect())); |
35 connect(&NetSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, |
38 connect(&NetSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, |
147 emit ChangeInTeams(lst); |
150 emit ChangeInTeams(lst); |
148 return; |
151 return; |
149 } |
152 } |
150 |
153 |
151 if (lst[0] == "CONFIGASKED") { |
154 if (lst[0] == "CONFIGASKED") { |
|
155 isChief=true; |
152 ConfigAsked(); |
156 ConfigAsked(); |
153 return; |
157 return; |
154 } |
158 } |
155 |
159 |
156 if (lst[0] == "CONFIGURED") { |
160 if (lst[0] == "CONFIGURED") { |
157 lst.pop_front(); |
161 lst.pop_front(); |
158 RunGame(); |
162 if(lst.size()<5) return; |
159 qDebug() << lst[0]; |
163 qDebug() << lst; |
160 QByteArray ar=QByteArray::fromBase64(lst[0].toAscii()); |
164 emit seedChanged(lst[0]); |
161 emit FromNet(ar); |
165 emit mapChanged(lst[1]); |
162 |
166 emit themeChanged(lst[2]); |
163 lst.pop_front(); |
167 emit initHealthChanged(lst[3].toUInt()); |
164 QByteArray cache; |
168 emit turnTimeChanged(lst[4].toUInt()); |
165 emit FromNet(HWProto::addStringListToBuffer(cache, lst)); |
169 //emit fortsModeChanged(lst[5].toInt() != 0); // FIXME: add a getFortsMode in ConfigAsked |
166 return; |
170 return; |
167 } |
171 } |
168 |
172 |
169 if (lst[0] == "CONFIG_PARAM") { |
173 if (lst[0] == "CONFIG_PARAM") { |
170 if (lst[1] == "SEED") { |
174 if (lst[1] == "SEED") { |
210 } |
214 } |
211 |
215 |
212 |
216 |
213 void HWNewNet::ConfigAsked() |
217 void HWNewNet::ConfigAsked() |
214 { |
218 { |
215 QByteArray cache; |
219 QString _msg=QString("CONFIGANSWER")+delimeter; |
216 HWProto::addStringToBuffer(cache, "eseed " + seed); |
220 _msg+=m_pGameCFGWidget->getCurrentSeed()+delimeter; |
217 HWProto::addStringToBuffer(cache, "TN"); |
221 _msg+=m_pGameCFGWidget->getCurrentMap()+delimeter; |
218 HWProto::addStringToBuffer(cache, "e$gmflags 0"); |
222 _msg+=m_pGameCFGWidget->getCurrentTheme()+delimeter; |
219 HWProto::addStringToBuffer(cache, QString("etheme steel")); |
223 _msg+=QString("%1").arg(m_pGameCFGWidget->getInitHealth())+delimeter; |
220 QString _msg = QString("CONFIGANSWER") + delimeter + QString(cache.toBase64()); |
224 _msg+=QString("%1").arg(m_pGameCFGWidget->getTurnTime()); |
221 RawSendNet(_msg); |
225 RawSendNet(_msg); |
222 } |
226 } |
223 |
227 |
224 void HWNewNet::RunGame() |
228 void HWNewNet::RunGame() |
225 { |
229 { |