summaryrefslogtreecommitdiffstats
path: root/pacman-c++/mainwidget.cpp
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2011-04-13 17:41:28 +0200
committermanuel <manuel@mausz.at>2011-04-13 17:41:28 +0200
commit3d20638fa8e295271ce38953ad1c657d9275bd99 (patch)
tree66cc9f2c3cc1e8772cb99b27b0c20ec8067ff80f /pacman-c++/mainwidget.cpp
parent2c351a8bccdfe0fe9ad0ccb4dba5e15ef23b4c0c (diff)
downloadfoop-3d20638fa8e295271ce38953ad1c657d9275bd99.tar.gz
foop-3d20638fa8e295271ce38953ad1c657d9275bd99.tar.bz2
foop-3d20638fa8e295271ce38953ad1c657d9275bd99.zip
some speed improvments regarding protobuf
Diffstat (limited to 'pacman-c++/mainwidget.cpp')
-rw-r--r--pacman-c++/mainwidget.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp
index d441607..9507e85 100644
--- a/pacman-c++/mainwidget.cpp
+++ b/pacman-c++/mainwidget.cpp
@@ -146,26 +146,24 @@ Transmission::field_t MainWidget::translateKey(int key)
146 146
147void MainWidget::tick() 147void MainWidget::tick()
148{ 148{
149 //TODO: allocate + reuse packet
150 QSharedPointer<QByteArray> data = Util::receivePacket(m_socket); 149 QSharedPointer<QByteArray> data = Util::receivePacket(m_socket);
151 ProtoBuf::MapUpdate packet; 150 bool worked = m_updatepacket.ParseFromArray(data->data(), data->size());
152 bool worked = packet.ParseFromArray(data->data(), data->size());
153 Q_ASSERT(worked); 151 Q_ASSERT(worked);
154 Q_UNUSED(worked); 152 Q_UNUSED(worked);
155 Transmission::map_t map = Util::createUninitialisedMap(); 153 Transmission::map_t map = Util::createUninitialisedMap();
156 Q_ASSERT(packet.field_size() == (int) (Constants::map_size.width * Constants::map_size.height)); 154 Q_ASSERT(m_updatepacket.field_size() == (int) (Constants::map_size.width * Constants::map_size.height));
157 int i = 0; 155 int i = 0;
158 for (unsigned int x = 0; x < Constants::map_size.width; ++x) 156 for (unsigned int x = 0; x < Constants::map_size.width; ++x)
159 { 157 {
160 for (unsigned int y = 0; y < Constants::map_size.height; ++y) 158 for (unsigned int y = 0; y < Constants::map_size.height; ++y)
161 { 159 {
162 map[x][y] = packet.field(i); 160 map[x][y] = m_updatepacket.field(i);
163 ++i; 161 ++i;
164 } 162 }
165 } 163 }
166 m_scene->updateMap(map); 164 m_scene->updateMap(map);
167 Util::deleteMap(map); 165 Util::deleteMap(map);
168 updateScore(packet); 166 updateScore(m_updatepacket);
169 167
170 if (m_socket->bytesAvailable() > (qint64)sizeof(qint64)) 168 if (m_socket->bytesAvailable() > (qint64)sizeof(qint64))
171 tick(); 169 tick();