summaryrefslogtreecommitdiffstats
path: root/pacman-c++/server.cpp
diff options
context:
space:
mode:
authortotycro <totycro@unknown-horizons.org>2011-04-10 00:55:13 +0200
committertotycro <totycro@unknown-horizons.org>2011-04-10 00:55:13 +0200
commitda481762bded855ffd709114ee3a16ec4dbaaeb6 (patch)
tree10f323140f11280f5185c19666a8412199613e0e /pacman-c++/server.cpp
parent5b4ddc78484448886135e031bee3d423e2fd3b83 (diff)
downloadfoop-da481762bded855ffd709114ee3a16ec4dbaaeb6.tar.gz
foop-da481762bded855ffd709114ee3a16ec4dbaaeb6.tar.bz2
foop-da481762bded855ffd709114ee3a16ec4dbaaeb6.zip
Tell player about their color
minor cleanup
Diffstat (limited to 'pacman-c++/server.cpp')
-rw-r--r--pacman-c++/server.cpp30
1 files changed, 11 insertions, 19 deletions
diff --git a/pacman-c++/server.cpp b/pacman-c++/server.cpp
index bbe4ad6..422f7e0 100644
--- a/pacman-c++/server.cpp
+++ b/pacman-c++/server.cpp
@@ -77,14 +77,21 @@ void Server::waitForClientConnections()
77 // server must stay alive as long as sockets (qt parent mem mechanism) 77 // server must stay alive as long as sockets (qt parent mem mechanism)
78 tcpSrv->listen(QHostAddress::Any, Constants::port); 78 tcpSrv->listen(QHostAddress::Any, Constants::port);
79 79
80 Color::Color playerColors[3] = { Color::red, Color::blue, Color::green };
80 //for (unsigned int i=0; i<Color::max; ++i) { 81 //for (unsigned int i=0; i<Color::max; ++i) {
81 for (unsigned int i=0; i<1; ++i) { 82 for (unsigned int i=0; i<1; ++i) {
82 bool connectionAvailable = tcpSrv->waitForNewConnection(-1); 83 bool connectionAvailable = tcpSrv->waitForNewConnection(-1);
83 Q_ASSERT(connectionAvailable); 84 Q_ASSERT(connectionAvailable);
84 QTcpSocket *socket = tcpSrv->nextPendingConnection(); 85 QTcpSocket *socket = tcpSrv->nextPendingConnection();
85 // TODO: color assignment
86 m_clientConnections[Color::red] = socket;
87 connect(socket, SIGNAL(readyRead()), this, SLOT(keyPressUpdate())); 86 connect(socket, SIGNAL(readyRead()), this, SLOT(keyPressUpdate()));
87
88 // assign color
89 Color::Color color = playerColors[i];
90 m_clientConnections[color] = socket;
91 // notify player of color
92 ProtoBuf::WhoAmI packet;
93 packet.set_color(color);
94 Util::sendPacket(packet, socket);
88 } 95 }
89} 96}
90 97
@@ -93,16 +100,7 @@ void Server::sendUpdate(QSharedPointer< ProtoBuf::MapUpdate > packet)
93 std::string dataStr = packet->SerializeAsString(); 100 std::string dataStr = packet->SerializeAsString();
94 const char *data = dataStr.c_str(); 101 const char *data = dataStr.c_str();
95 foreach(QTcpSocket *socket, m_clientConnections) { 102 foreach(QTcpSocket *socket, m_clientConnections) {
96 //qDebug() << "sending str len: " << dataStr.length(); 103 Util::sendPacket(data, dataStr.length(), socket);
97 int bytesWritten = socket->write(data, dataStr.length());
98 if (bytesWritten != dataStr.length()) {
99 qDebug() << "written: " << bytesWritten;
100 qDebug() << "strl: " << dataStr.length();
101 }
102 Q_ASSERT(bytesWritten == dataStr.length());
103 }
104 foreach(QTcpSocket *socket, m_clientConnections) {
105 socket->flush();
106 } 104 }
107} 105}
108 106
@@ -117,12 +115,8 @@ void Server::keyPressUpdate()
117 qDebug() << "data?"; 115 qDebug() << "data?";
118 if (socket->bytesAvailable() > 0) { 116 if (socket->bytesAvailable() > 0) {
119 qDebug() << "data!"; 117 qDebug() << "data!";
120 QByteArray data = socket->readAll();
121 // see mainwidget.cpp:153
122 std::string dataStr; 118 std::string dataStr;
123 for (int i = 0; i < data.size(); ++i) { 119 Util::QByteArrayToStdString(socket->readAll(), dataStr);
124 dataStr += data[i];
125 }
126 ProtoBuf::KeyPressUpdate packet; 120 ProtoBuf::KeyPressUpdate packet;
127 packet.ParseFromString(dataStr); 121 packet.ParseFromString(dataStr);
128 Transmission::field_t direction = packet.newkey(); 122 Transmission::field_t direction = packet.newkey();
@@ -130,10 +124,8 @@ void Server::keyPressUpdate()
130 m_actorMovements[ color ] = Util::transmissionMovementToActor(direction); 124 m_actorMovements[ color ] = Util::transmissionMovementToActor(direction);
131 } 125 }
132 } 126 }
133
134} 127}
135 128
136
137int main(int argc, char ** argv) 129int main(int argc, char ** argv)
138{ 130{
139 GOOGLE_PROTOBUF_VERIFY_VERSION; 131 GOOGLE_PROTOBUF_VERIFY_VERSION;