QTfrontend/hwmap.cpp
branchexperimental3D
changeset 4812 f924be23ffb4
parent 4572 087fdb85e2ef
child 4976 088d40d8aba2
--- a/QTfrontend/hwmap.cpp	Mon Dec 27 23:57:44 2010 +0100
+++ b/QTfrontend/hwmap.cpp	Tue Jan 04 12:53:46 2011 +0100
@@ -27,12 +27,13 @@
 {
 }
 
-void HWMap::getImage(std::string seed, int filter, MapGenerator mapgen, int maze_size)
+void HWMap::getImage(const QString & seed, int filter, MapGenerator mapgen, int maze_size, const QByteArray & drawMapData)
 {
     m_seed = seed;
     templateFilter = filter;
     m_mapgen = mapgen;
     m_maze_size = maze_size;
+    if(mapgen == MAPGEN_DRAWN) m_drawMapData = drawMapData;
     Start();
 }
 
@@ -59,9 +60,30 @@
 
 void HWMap::SendToClientFirst()
 {
-    SendIPC(QString("eseed %1").arg(m_seed.c_str()).toLatin1());
-    SendIPC(QString("e$template_filter %1").arg(templateFilter).toLatin1());
-    SendIPC(QString("e$mapgen %1").arg(m_mapgen).toLatin1());
-    SendIPC(QString("e$maze_size %1").arg(m_maze_size).toLatin1());
+    SendIPC(QString("eseed %1").arg(m_seed).toUtf8());
+    SendIPC(QString("e$template_filter %1").arg(templateFilter).toUtf8());
+    SendIPC(QString("e$mapgen %1").arg(m_mapgen).toUtf8());
+
+    switch (m_mapgen)
+    {
+        case MAPGEN_MAZE:
+            SendIPC(QString("e$maze_size %1").arg(m_maze_size).toUtf8());
+            break;
+
+        case MAPGEN_DRAWN:
+        {
+            QByteArray data = m_drawMapData;
+            while(data.size() > 0)
+            {
+                QByteArray tmp = data;
+                tmp.truncate(200);
+                SendIPC("edraw " + tmp);
+                data.remove(0, 200);
+            }
+            break;
+        }
+        default: ;
+    }
+
     SendIPC("!");
 }