diff options
Diffstat (limited to 'pacman-c++/server.cpp')
| -rw-r--r-- | pacman-c++/server.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/pacman-c++/server.cpp b/pacman-c++/server.cpp index b1877ad..51dcc24 100644 --- a/pacman-c++/server.cpp +++ b/pacman-c++/server.cpp | |||
| @@ -153,8 +153,8 @@ void Server::waitForClientConnections() | |||
| 153 | // server must stay alive as long as sockets (qt parent mem mechanism) | 153 | // server must stay alive as long as sockets (qt parent mem mechanism) |
| 154 | tcpSrv->listen(QHostAddress::Any, Constants::Networking::port); | 154 | tcpSrv->listen(QHostAddress::Any, Constants::Networking::port); |
| 155 | 155 | ||
| 156 | ProtoBuf::WhoAmI packet; | ||
| 156 | #define SINGLE | 157 | #define SINGLE |
| 157 | |||
| 158 | #ifdef SINGLE | 158 | #ifdef SINGLE |
| 159 | for (unsigned int i = 0; i < 1; ++i) | 159 | for (unsigned int i = 0; i < 1; ++i) |
| 160 | { | 160 | { |
| @@ -172,8 +172,6 @@ void Server::waitForClientConnections() | |||
| 172 | Color::Color color = Color::order[i]; | 172 | Color::Color color = Color::order[i]; |
| 173 | m_clientConnections[color] = socket; | 173 | m_clientConnections[color] = socket; |
| 174 | /* notify player of color */ | 174 | /* notify player of color */ |
| 175 | //TODO: allocate + reuse packet | ||
| 176 | ProtoBuf::WhoAmI packet; | ||
| 177 | packet.set_color(color); | 175 | packet.set_color(color); |
| 178 | Util::sendPacket(packet, socket); | 176 | Util::sendPacket(packet, socket); |
| 179 | 177 | ||
| @@ -183,21 +181,21 @@ void Server::waitForClientConnections() | |||
| 183 | 181 | ||
| 184 | void Server::sendUpdate(Transmission::map_t map) | 182 | void Server::sendUpdate(Transmission::map_t map) |
| 185 | { | 183 | { |
| 186 | ProtoBuf::MapUpdate packet; | 184 | m_updatepacket.Clear(); |
| 187 | 185 | ||
| 188 | for (unsigned int x = 0; x < Constants::map_size.width; ++x) | 186 | for (unsigned int x = 0; x < Constants::map_size.width; ++x) |
| 189 | { | 187 | { |
| 190 | for (unsigned int y = 0; y < Constants::map_size.height; ++y) | 188 | for (unsigned int y = 0; y < Constants::map_size.height; ++y) |
| 191 | packet.add_field(map[x][y]); | 189 | m_updatepacket.add_field(map[x][y]); |
| 192 | } | 190 | } |
| 193 | 191 | ||
| 194 | for(unsigned i = 0; Color::order[i] != Color::none; ++i) | 192 | for(unsigned i = 0; Color::order[i] != Color::none; ++i) |
| 195 | { | 193 | { |
| 196 | packet.add_round_points(m_actors.value(Color::order[i])->getRoundPoints()); | 194 | m_updatepacket.add_round_points(m_actors.value(Color::order[i])->getRoundPoints()); |
| 197 | packet.add_game_points(m_actors.value(Color::order[i])->getGamePoints()); | 195 | m_updatepacket.add_game_points(m_actors.value(Color::order[i])->getGamePoints()); |
| 198 | } | 196 | } |
| 199 | 197 | ||
| 200 | QSharedPointer<QByteArray> data = Util::createPacket(packet); | 198 | QSharedPointer<QByteArray> data = Util::createPacket(m_updatepacket); |
| 201 | foreach(QTcpSocket *socket, m_clientConnections) | 199 | foreach(QTcpSocket *socket, m_clientConnections) |
| 202 | { | 200 | { |
| 203 | if (!Util::sendPacket(data.data(), socket)) | 201 | if (!Util::sendPacket(data.data(), socket)) |
| @@ -210,6 +208,7 @@ void Server::sendUpdate(Transmission::map_t map) | |||
| 210 | 208 | ||
| 211 | void Server::keyPressUpdate() | 209 | void Server::keyPressUpdate() |
| 212 | { | 210 | { |
| 211 | ProtoBuf::KeyPressUpdate packet; | ||
| 213 | QMapIterator<Color::Color, QTcpSocket *> i(m_clientConnections); | 212 | QMapIterator<Color::Color, QTcpSocket *> i(m_clientConnections); |
| 214 | while (i.hasNext()) | 213 | while (i.hasNext()) |
| 215 | { | 214 | { |
| @@ -220,8 +219,6 @@ void Server::keyPressUpdate() | |||
| 220 | while (socket->bytesAvailable() > (qint64)sizeof(qint64)) | 219 | while (socket->bytesAvailable() > (qint64)sizeof(qint64)) |
| 221 | { | 220 | { |
| 222 | QSharedPointer<QByteArray> data = Util::receivePacket(socket); | 221 | QSharedPointer<QByteArray> data = Util::receivePacket(socket); |
| 223 | //TODO: allocate + reuse packet | ||
| 224 | ProtoBuf::KeyPressUpdate packet; | ||
| 225 | bool worked = packet.ParseFromArray(data->data(), data->size()); | 222 | bool worked = packet.ParseFromArray(data->data(), data->size()); |
| 226 | Q_ASSERT(worked); | 223 | Q_ASSERT(worked); |
| 227 | Q_UNUSED(worked); | 224 | Q_UNUSED(worked); |
