diff -r 4bcdf0bf58b8 -r fedd8649fdd9 QTfrontend/gamecfgwidget.cpp --- a/QTfrontend/gamecfgwidget.cpp Sat Feb 14 21:04:51 2009 +0000 +++ b/QTfrontend/gamecfgwidget.cpp Sun Feb 15 14:38:02 2009 +0000 @@ -62,12 +62,13 @@ L_TurnTime = new QLabel(QLabel::tr("Turn time"), GBoxOptions); L_InitHealth = new QLabel(QLabel::tr("Initial health"), GBoxOptions); L_SuddenDeath = new QLabel(QLabel::tr("Turns before SD"), GBoxOptions); - L_CaseProb = new QLabel(QLabel::tr("Bonus factor"), GBoxOptions); + L_CaseProb = new QLabel(QLabel::tr("Crate drops"), GBoxOptions); GBoxOptionsLayout->addWidget(L_TurnTime, 4, 0); GBoxOptionsLayout->addWidget(L_InitHealth, 5, 0); GBoxOptionsLayout->addWidget(L_SuddenDeath, 6, 0); GBoxOptionsLayout->addWidget(L_CaseProb, 7, 0); GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Weapons"), GBoxOptions), 8, 0); + GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Generated Map Filter"), GBoxOptions), 9, 0); SB_TurnTime = new QSpinBox(GBoxOptions); SB_TurnTime->setRange(1, 99); @@ -96,6 +97,15 @@ WeaponsName = new QComboBox(GBoxOptions); GBoxOptionsLayout->addWidget(WeaponsName, 8, 1); + CB_TemplateFilter = new QComboBox(GBoxOptions); + CB_TemplateFilter->addItem(tr("All"), 0); + CB_TemplateFilter->addItem(tr("Small"), 1); + CB_TemplateFilter->addItem(tr("Medium"), 2); + CB_TemplateFilter->addItem(tr("Large"), 3); + CB_TemplateFilter->addItem(tr("Cavern"), 4); + CB_TemplateFilter->addItem(tr("Wacky"), 5); + GBoxOptionsLayout->addWidget(CB_TemplateFilter, 9, 1); + connect(SB_InitHealth, SIGNAL(valueChanged(int)), this, SIGNAL(initHealthChanged(int))); connect(SB_TurnTime, SIGNAL(valueChanged(int)), this, SIGNAL(turnTimeChanged(int))); connect(SB_SuddenDeath, SIGNAL(valueChanged(int)), this, SIGNAL(suddenDeathTurnsChanged(int))); @@ -105,6 +115,8 @@ connect(CB_solid, SIGNAL(toggled(bool)), this, SIGNAL(solidChanged(bool))); connect(CB_border, SIGNAL(toggled(bool)), this, SIGNAL(borderChanged(bool))); connect(WeaponsName, SIGNAL(currentIndexChanged(int)), this, SLOT(ammoChanged(int))); + connect(CB_TemplateFilter, SIGNAL(currentIndexChanged(int)), this, SLOT(templateFilterChanged(int))); + connect(CB_TemplateFilter, SIGNAL(currentIndexChanged(int)), this, SLOT(templateFilterChanged(int))); connect(pMapContainer, SIGNAL(seedChanged(const QString &)), this, SIGNAL(seedChanged(const QString &))); connect(pMapContainer, SIGNAL(mapChanged(const QString &)), this, SIGNAL(mapChanged(const QString &))); @@ -162,6 +174,11 @@ return SB_CaseProb->value(); } +quint32 GameCFGWidget::getTemplateFilter() const +{ + return CB_TemplateFilter->itemData(CB_TemplateFilter->currentIndex()).toInt(); +} + QStringList GameCFGWidget::getFullConfig() const { QStringList sl; @@ -170,6 +187,7 @@ sl.append(QString("e$turntime %1").arg(getTurnTime() * 1000)); sl.append(QString("e$sd_turns %1").arg(getSuddenDeathTurns())); sl.append(QString("e$casefreq %1").arg(getCaseProbability())); + sl.append(QString("e$template_filter %1").arg(getTemplateFilter())); QString currentMap = getCurrentMap(); if (currentMap.size() > 0) @@ -248,6 +266,17 @@ } } +void GameCFGWidget::setTemplateFilter(int filter) +{ + CB_TemplateFilter->setCurrentIndex(filter); +} + +void GameCFGWidget::templateFilterChanged(int filter) +{ + pMapContainer->setTemplateFilter(filter); + emit newTemplateFilter(filter); +} + void GameCFGWidget::ammoChanged(int index) { if (index >= 0)