summaryrefslogtreecommitdiffstats
path: root/pacman-c++/util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pacman-c++/util.cpp')
-rw-r--r--pacman-c++/util.cpp52
1 files changed, 29 insertions, 23 deletions
diff --git a/pacman-c++/util.cpp b/pacman-c++/util.cpp
index 23826f7..3d04d9f 100644
--- a/pacman-c++/util.cpp
+++ b/pacman-c++/util.cpp
@@ -2,9 +2,10 @@
2 2
3#include <QtNetwork/QTcpSocket> 3#include <QtNetwork/QTcpSocket>
4 4
5namespace Util { 5namespace Util
6 6{
7 Transmission::map_t createUninitialisedMap() { 7 Transmission::map_t createUninitialisedMap()
8 {
8 Transmission::map_t map; 9 Transmission::map_t map;
9 map = new Transmission::field_t*[Constants::map_size.width]; 10 map = new Transmission::field_t*[Constants::map_size.width];
10 for (unsigned int i = 0; i < Constants::map_size.width; ++i) 11 for (unsigned int i = 0; i < Constants::map_size.width; ++i)
@@ -12,7 +13,8 @@ namespace Util {
12 return map; 13 return map;
13 } 14 }
14 15
15 Transmission::map_t createEmptyMap() { 16 Transmission::map_t createEmptyMap()
17 {
16 Transmission::map_t map = createUninitialisedMap(); 18 Transmission::map_t map = createUninitialisedMap();
17 for (unsigned int x = 0; x < Constants::map_size.width; ++x) 19 for (unsigned int x = 0; x < Constants::map_size.width; ++x)
18 { 20 {
@@ -24,8 +26,9 @@ namespace Util {
24 } 26 }
25 return map; 27 return map;
26 } 28 }
29
27 // temporary 30 // temporary
28 Transmission::map_t createDummyMap() 31 Transmission::map_t createDemoMap()
29 { 32 {
30 Transmission::map_t map = createEmptyMap(); 33 Transmission::map_t map = createEmptyMap();
31 34
@@ -86,9 +89,10 @@ namespace Util {
86 return map; 89 return map;
87 } 90 }
88 91
89 92 Transmission::field_t actorMovementToTransmission(Actor::Movement mov, Transmission::field_t def)
90 Transmission::field_t actorMovementToTransmission(Actor::Movement mov, Transmission::field_t def) { 93 {
91 switch (mov) { 94 switch (mov)
95 {
92 case Actor::None: 96 case Actor::None:
93 return Transmission::direction_none; 97 return Transmission::direction_none;
94 break; 98 break;
@@ -105,17 +109,18 @@ namespace Util {
105 return Transmission::direction_down; 109 return Transmission::direction_down;
106 break; 110 break;
107 default: 111 default:
108 if (def == static_cast<Transmission::field_t>(-1)) { 112 if (def == static_cast<Transmission::field_t>(-1))
109 Q_ASSERT(false); 113 Q_ASSERT(false);
110 } else { 114 else
111 return def; 115 return def;
112 }
113 } 116 }
114 return 0; // for pleasing the compiler 117 return 0; // for pleasing the compiler
115 } 118 }
116 119
117 Actor::Movement transmissionMovementToActor(Transmission::field_t field, Actor::Movement def) { 120 Actor::Movement transmissionMovementToActor(Transmission::field_t field, Actor::Movement def)
118 switch (field) { 121 {
122 switch (field)
123 {
119 case Transmission::direction_none: 124 case Transmission::direction_none:
120 return Actor::None; 125 return Actor::None;
121 break; 126 break;
@@ -132,39 +137,40 @@ namespace Util {
132 return Actor::Down; 137 return Actor::Down;
133 break; 138 break;
134 default: 139 default:
135 if (def == Actor::Movement(-1)) { 140 if (def == Actor::Movement(-1))
136 Q_ASSERT(false); 141 Q_ASSERT(false);
137 } else { 142 else
138 return def; 143 return def;
139 }
140 } 144 }
141 return Actor::None; // for pleasing the compiler 145 return Actor::None; // for pleasing the compiler
142 } 146 }
143 147
144 void QByteArrayToStdString(const QByteArray& arr, std::string& str) { 148 void QByteArrayToStdString(const QByteArray& arr, std::string& str)
149 {
145 // TODO: normal conversion to std::string won't work, 150 // TODO: normal conversion to std::string won't work,
146 // probably due to \0-bytes. 151 // probably due to \0-bytes.
147 //std::string dataStr = std::string(data.constData()); 152 //std::string dataStr = std::string(data.constData());
148 //std::string dataStr = QString(data).toStdString(); 153 //std::string dataStr = QString(data).toStdString();
149 for (int i=0; i<arr.size(); ++i) { 154 for (int i=0; i<arr.size(); ++i)
150 str += arr[i]; 155 str += arr[i];
151 }
152 } 156 }
153 157
154 void sendPacket(const ::google::protobuf::Message& packet, QTcpSocket *socket) { 158 void sendPacket(const ::google::protobuf::Message& packet, QTcpSocket *socket)
159 {
155 std::string dataStr = packet.SerializeAsString(); 160 std::string dataStr = packet.SerializeAsString();
156 const char *data = dataStr.c_str(); 161 const char *data = dataStr.c_str();
157 sendPacket(data, dataStr.length(), socket); 162 sendPacket(data, dataStr.length(), socket);
158 } 163 }
159 164
160 void sendPacket(const char *data, unsigned int length, QTcpSocket *socket) { 165 void sendPacket(const char *data, unsigned int length, QTcpSocket *socket)
166 {
161 unsigned int bytesWritten = socket->write(data, length); 167 unsigned int bytesWritten = socket->write(data, length);
162 if (bytesWritten != length) { 168 if (bytesWritten != length)
169 {
163 qDebug() << "written: " << bytesWritten; 170 qDebug() << "written: " << bytesWritten;
164 qDebug() << "strl: " << length; 171 qDebug() << "strl: " << length;
165 } 172 }
166 Q_ASSERT(bytesWritten == length); 173 Q_ASSERT(bytesWritten == length);
167 socket->flush(); 174 socket->flush();
168 } 175 }
169
170} 176}