summaryrefslogtreecommitdiffstats
path: root/pacman-c++/mainwidget.cpp
diff options
context:
space:
mode:
authortotycro <totycro@unknown-horizons.org>2011-04-11 11:51:16 +0200
committertotycro <totycro@unknown-horizons.org>2011-04-11 11:51:16 +0200
commit30c36b7549f8ae411f8eca4de144627331895a24 (patch)
tree148a51093daa14f0e9019b3ed9188d5ae3e3d5cb /pacman-c++/mainwidget.cpp
parente38dea479acf2d02c68af233e07b068f91afe935 (diff)
downloadfoop-30c36b7549f8ae411f8eca4de144627331895a24.tar.gz
foop-30c36b7549f8ae411f8eca4de144627331895a24.tar.bz2
foop-30c36b7549f8ae411f8eca4de144627331895a24.zip
First parameter for client is server ip
Added asserts to confirm that packets were parsed correctly
Diffstat (limited to 'pacman-c++/mainwidget.cpp')
-rw-r--r--pacman-c++/mainwidget.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp
index b69e0c0..6c4012e 100644
--- a/pacman-c++/mainwidget.cpp
+++ b/pacman-c++/mainwidget.cpp
@@ -149,7 +149,8 @@ void MainWidget::tick()
149 149
150 //qDebug() << "read str " << dataStr.length(); 150 //qDebug() << "read str " << dataStr.length();
151 ProtoBuf::MapUpdate packet; 151 ProtoBuf::MapUpdate packet;
152 packet.ParseFromString(dataStr); 152 bool worked = packet.ParseFromString(dataStr);
153 Q_ASSERT(worked);
153 Transmission::map_t map = Util::createUninitialisedMap(); 154 Transmission::map_t map = Util::createUninitialisedMap();
154 Q_ASSERT(packet.field_size() == (int) (Constants::map_size.width * Constants::map_size.height)); 155 Q_ASSERT(packet.field_size() == (int) (Constants::map_size.width * Constants::map_size.height));
155 int i = 0; 156 int i = 0;
@@ -229,8 +230,14 @@ void MainWidget::playerScoreClicked()
229 230
230Color::Color MainWidget::connectToServer() 231Color::Color MainWidget::connectToServer()
231{ 232{
233 // check command line arguments for server port
234 const QStringList &args = QCoreApplication::arguments();
235 QString srv = args.value(1, "127.0.0.1");
236 qDebug() << "srv: " << srv;
237
238 // connect to server
232 m_socket = new QTcpSocket(this); 239 m_socket = new QTcpSocket(this);
233 m_socket->connectToHost("127.0.0.1", Constants::port); 240 m_socket->connectToHost(srv, Constants::port);
234 bool worked = m_socket->waitForConnected(Constants::connection_timeout); 241 bool worked = m_socket->waitForConnected(Constants::connection_timeout);
235 if (worked) 242 if (worked)
236 { 243 {
@@ -239,10 +246,12 @@ Color::Color MainWidget::connectToServer()
239 worked = m_socket->waitForReadyRead(); 246 worked = m_socket->waitForReadyRead();
240 if (worked) 247 if (worked)
241 { 248 {
249 // receive color
242 std::string data; 250 std::string data;
243 Util::QByteArrayToStdString(m_socket->readAll(), data); 251 Util::QByteArrayToStdString(m_socket->readAll(), data);
244 ProtoBuf::WhoAmI packet; 252 ProtoBuf::WhoAmI packet;
245 packet.ParseFromString(data); 253 Q_ASSERT(worked);
254 bool worked = packet.ParseFromString(data);
246 return static_cast<Color::Color>(packet.color() & Transmission::color_mask); 255 return static_cast<Color::Color>(packet.color() & Transmission::color_mask);
247 } 256 }
248 } 257 }