54 imageButt->setObjectName("imageButt"); |
54 imageButt->setObjectName("imageButt"); |
55 imageButt->setFixedSize(256 + 6, 128 + 6); |
55 imageButt->setFixedSize(256 + 6, 128 + 6); |
56 imageButt->setFlat(true); |
56 imageButt->setFlat(true); |
57 imageButt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);//QSizePolicy::Minimum, QSizePolicy::Minimum); |
57 imageButt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);//QSizePolicy::Minimum, QSizePolicy::Minimum); |
58 mainLayout.addWidget(imageButt, 0, 0, 1, 2); |
58 mainLayout.addWidget(imageButt, 0, 0, 1, 2); |
59 //connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomSeed())); |
59 connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomSeed())); |
60 //connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomTheme())); |
60 connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomTheme())); |
61 connect(imageButt, SIGNAL(clicked()), this, SLOT(setRandomMap())); |
|
62 |
61 |
63 chooseMap = new QComboBox(this); |
62 chooseMap = new QComboBox(this); |
64 chooseMap->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); |
63 chooseMap->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); |
65 chooseMap->addItem( |
64 chooseMap->addItem( |
66 // FIXME - need real icons. Disabling until then |
65 // FIXME - need real icons. Disabling until then |
71 //QIcon(":/res/mapMaze.png"), |
70 //QIcon(":/res/mapMaze.png"), |
72 QComboBox::tr("generated maze...")); |
71 QComboBox::tr("generated maze...")); |
73 chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions |
72 chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions |
74 |
73 |
75 int missionindex = chooseMap->count(); |
74 int missionindex = chooseMap->count(); |
76 numMissions = 0; |
|
77 for (int i = 0; i < mapList->size(); ++i) { |
75 for (int i = 0; i < mapList->size(); ++i) { |
78 QString map = (*mapList)[i]; |
76 QString map = (*mapList)[i]; |
79 QFile mapCfgFile( |
77 QFile mapCfgFile( |
80 QString("%1/Maps/%2/map.cfg") |
78 QString("%1/Maps/%2/map.cfg") |
81 .arg(datadir->absolutePath()) |
79 .arg(datadir->absolutePath()) |
98 mapInfo.push_back(limit); |
96 mapInfo.push_back(limit); |
99 else |
97 else |
100 mapInfo.push_back(18); |
98 mapInfo.push_back(18); |
101 mapInfo.push_back(mapLuaFile.exists()); |
99 mapInfo.push_back(mapLuaFile.exists()); |
102 if(mapLuaFile.exists()) |
100 if(mapLuaFile.exists()) |
103 { |
|
104 chooseMap->insertItem(missionindex++, |
101 chooseMap->insertItem(missionindex++, |
105 // FIXME - need real icons. Disabling until then |
102 // FIXME - need real icons. Disabling until then |
106 //QIcon(":/res/mapMission.png"), |
103 //QIcon(":/res/mapMission.png"), |
107 QComboBox::tr("Mission") + ": " + map, mapInfo); |
104 QComboBox::tr("Mission") + ": " + map, mapInfo); |
108 numMissions++; |
|
109 } |
|
110 else |
105 else |
111 chooseMap->addItem( |
106 chooseMap->addItem( |
112 // FIXME - need real icons. Disabling until then |
107 // FIXME - need real icons. Disabling until then |
113 //QIcon(":/res/mapCustom.png"), |
108 //QIcon(":/res/mapCustom.png"), |
114 map, mapInfo); |
109 map, mapInfo); |
115 mapCfgFile.close(); |
110 mapCfgFile.close(); |
116 } |
111 } |
117 } |
112 } |
118 chooseMap->insertSeparator(missionindex); // separator between missions and maps |
113 chooseMap->insertSeparator(missionindex); // separator between missions and maps |
119 |
114 |
405 { |
400 { |
406 QList<QListWidgetItem *> items = lwThemes->findItems(theme, Qt::MatchExactly); |
401 QList<QListWidgetItem *> items = lwThemes->findItems(theme, Qt::MatchExactly); |
407 if(items.size()) |
402 if(items.size()) |
408 lwThemes->setCurrentItem(items.at(0)); |
403 lwThemes->setCurrentItem(items.at(0)); |
409 } |
404 } |
410 #include <QMessageBox> |
|
411 void HWMapContainer::setRandomMap() |
|
412 { |
|
413 switch(chooseMap->currentIndex()) |
|
414 { |
|
415 case MAPGEN_REGULAR: |
|
416 case MAPGEN_MAZE: |
|
417 setRandomSeed(); |
|
418 setRandomTheme(); |
|
419 break; |
|
420 default: |
|
421 if(chooseMap->currentIndex() < numMissions + 3) |
|
422 setRandomMission(); |
|
423 else |
|
424 setRandomStatic(); |
|
425 break; |
|
426 } |
|
427 } |
|
428 |
|
429 void HWMapContainer::setRandomStatic() |
|
430 { |
|
431 chooseMap->setCurrentIndex(4 + numMissions + rand() % (chooseMap->count() - 4 - numMissions)); |
|
432 m_seed = QUuid::createUuid().toString(); |
|
433 emit seedChanged(m_seed); |
|
434 } |
|
435 |
|
436 void HWMapContainer::setRandomMission() |
|
437 { |
|
438 chooseMap->setCurrentIndex(3 + rand() % numMissions); |
|
439 m_seed = QUuid::createUuid().toString(); |
|
440 emit seedChanged(m_seed); |
|
441 } |
|
442 |
405 |
443 void HWMapContainer::setRandomSeed() |
406 void HWMapContainer::setRandomSeed() |
444 { |
407 { |
445 m_seed = QUuid::createUuid().toString(); |
408 m_seed = QUuid::createUuid().toString(); |
446 emit seedChanged(m_seed); |
409 emit seedChanged(m_seed); |