diff -r e83216eba1db -r 08df377b4fbc QTfrontend/mapContainer.cpp --- a/QTfrontend/mapContainer.cpp Thu Dec 09 22:50:16 2010 +0100 +++ b/QTfrontend/mapContainer.cpp Thu Dec 09 22:51:07 2010 +0100 @@ -39,7 +39,9 @@ mainLayout(this), pMap(0), mapgen(MAPGEN_REGULAR), - maze_size(0) + maze_size(0), + drawnMapData(QByteArray::fromBase64("BHoGw4IEegbjAgR6BuwCCnYEaIIJKwRIgglLBEgCCXgERAIJoQQ/AgnBBDsCCeUEMgIKCQQpAgopBCQCCk0ELQIKXwRIAgo/BE0CCiAEVgIJ+wRfAgnOBGgCCaoEbQIJfQRxAgldBHYCCTkEdgIJFARxAgj+BIgCCOwEqAIJEASsAgkwBJ8CCV0ElgIJhgSWAgmqBJYCCcoElgIJ7gSMAgoOBIwCCNAE2YII2QS1AgjsBJYCCPUEdgIJAgRWAgkQBDYCCScEIAIJSwQXAgl0BAkCCZgEAAIJuAP3AgncA/ICCgUD7gIKJAPlAgo/A/cCClYEDgIKbQQkAgqDBDsCCpoEUgIKrARbAghIBP6CCGgE/gIIjAT1AgixBOwCCNUE5wII9QTjAgkUBNkCCTkE0AIJWATHAgl4BMMCCZgEvgIJvAS1AgncBKwCCgAEowIKIASaAgo/BJECCl8EiAIKfwSDAgqfBHYCCscEbQIK5wRoAgr5BGQCCLUGcYIIzAaIAgjnBpoCCQcGrAIJKwa1AglUBroCCXgGvgIJmAa+Agm8Br4CCeAGvgIKAAa6AgogBrUCCj8GqAIKXwaWAgp6Bn8CCpEGaAIKnwZSAgotBZOCCjIFjwIJIgWTggk0BZwCCSsFmIIHYQeBggdhBNmCB2EFBwIHYQUrAgdhBUsCB2EFbwIHYQWqAgdhBc4CB2EF9wIHYQYgAgdhBlICB2EGegIHYQaaAgdhBswCB2EG/gIHYQcQAgZ/BimCBoMGKQIGfwaMggaDBrECBn8G1QIGfwb1AgZ/BwsCBbMFaoIFrgWKAgWqBa4CBaUF6QIFnAYSAgWYBjICBYoGbQIFfQaMAgV0BrUCBWoG3gIFagb+AgVhByICBWEHGQIEmgY2ggS+BkQCBOwGRAIFEAZEAgUwBj8CBVQGOwIFWAY7AgS1BUuCBLUFbwIErAWTAgSjBcECBJ8F+wIEkQYpAgSIBk0CBH8GegIEfwaoAgR6BrUC") + ) { hhSmall.load(":/res/hh_small.png"); hhLimit = 18; @@ -70,6 +72,10 @@ // FIXME - need real icons. Disabling until then //QIcon(":/res/mapMaze.png"), QComboBox::tr("generated maze...")); + + chooseMap->addItem(QComboBox::tr("hand drawn map...")); + chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions + chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions int missionindex = chooseMap->count(); @@ -252,6 +258,18 @@ emit mapgenChanged(mapgen); emit themeChanged(chooseMap->itemData(index).toList()[1].toString()); break; + case MAPGEN_DRAWN: + mapgen = MAPGEN_DRAWN; + changeImage(); + gbThemes->show(); + lblFilter->hide(); + CB_TemplateFilter->hide(); + maze_size_label->hide(); + maze_size_selection->hide(); + emit mapChanged("+drawn+"); + emit mapgenChanged(mapgen); + emit themeChanged(chooseMap->itemData(index).toList()[1].toString()); + break; default: loadMap(index); gbThemes->hide(); @@ -308,24 +326,22 @@ pMap = new HWMap(); connect(pMap, SIGNAL(ImageReceived(const QImage)), this, SLOT(setImage(const QImage))); connect(pMap, SIGNAL(HHLimitReceived(int)), this, SLOT(setHHLimit(int))); - pMap->getImage(m_seed.toStdString(), getTemplateFilter(), mapgen, maze_size); + pMap->getImage(m_seed.toStdString(), getTemplateFilter(), mapgen, maze_size, drawnMapData); } void HWMapContainer::themeSelected(int currentRow) { QString theme = Themes->at(currentRow); - QList mapInfoRegular; - mapInfoRegular.push_back(QString("+rnd+")); - mapInfoRegular.push_back(theme); - mapInfoRegular.push_back(18); - mapInfoRegular.push_back(false); - chooseMap->setItemData(0, mapInfoRegular); - QList mapInfoMaze; - mapInfoMaze.push_back(QString("+maze+")); - mapInfoMaze.push_back(theme); - mapInfoMaze.push_back(18); - mapInfoMaze.push_back(false); - chooseMap->setItemData(1, mapInfoMaze); + QList mapInfo; + mapInfo.push_back(QString("+rnd+")); + mapInfo.push_back(theme); + mapInfo.push_back(18); + mapInfo.push_back(false); + chooseMap->setItemData(0, mapInfo); + mapInfo[0] = QString("+maze+"); + chooseMap->setItemData(1, mapInfo); + mapInfo[0] = QString("+drawn+"); + chooseMap->setItemData(2, mapInfo); gbThemes->setIcon(QIcon(QString("%1/Themes/%2/icon.png").arg(datadir->absolutePath()).arg(theme))); emit themeChanged(theme); } @@ -337,7 +353,7 @@ QString HWMapContainer::getCurrentMap() const { - if(chooseMap->currentIndex() <= 1) return QString(); + if(chooseMap->currentIndex() <= 2) return QString(); return chooseMap->itemData(chooseMap->currentIndex()).toList()[0].toString(); } @@ -376,7 +392,7 @@ void HWMapContainer::setMap(const QString & map) { - if(map == "+rnd+" || map == "+maze+") + if(map == "+rnd+" || map == "+maze+" || map == "+drawn+") { changeImage(); return; @@ -416,10 +432,11 @@ { case MAPGEN_REGULAR: case MAPGEN_MAZE: + case MAPGEN_DRAWN: setRandomTheme(); break; default: - if(chooseMap->currentIndex() < numMissions + 3) + if(chooseMap->currentIndex() < numMissions + 4) setRandomMission(); else setRandomStatic(); @@ -489,3 +506,8 @@ emit mapgenChanged(m); changeImage(); } + +QByteArray HWMapContainer::getDrawnMapData() +{ + return drawnMapData; +} \ No newline at end of file