diff options
| author | manuel <manuel@mausz.at> | 2011-04-13 17:41:28 +0200 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2011-04-13 17:41:28 +0200 |
| commit | 3d20638fa8e295271ce38953ad1c657d9275bd99 (patch) | |
| tree | 66cc9f2c3cc1e8772cb99b27b0c20ec8067ff80f /pacman-c++/mainwidget.cpp | |
| parent | 2c351a8bccdfe0fe9ad0ccb4dba5e15ef23b4c0c (diff) | |
| download | foop-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.cpp | 10 |
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 | ||
| 147 | void MainWidget::tick() | 147 | void 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(); |
