diff -r 0ddb100fea61 -r f924be23ffb4 QTfrontend/hwmap.cpp --- 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("!"); }