# HG changeset patch # User koda # Date 1289432292 -3600 # Node ID ef9b201c97fe063908a28474f00579110ffba49c # Parent fa2680cfff862b030f6066ae6928a2d511aff7af by default selecting a game mode will select a weapon with the same name, and viceversa; toggable for every game diff -r fa2680cfff86 -r ef9b201c97fe QTfrontend/gamecfgwidget.cpp --- a/QTfrontend/gamecfgwidget.cpp Wed Nov 10 19:43:13 2010 +0100 +++ b/QTfrontend/gamecfgwidget.cpp Thu Nov 11 00:38:12 2010 +0100 @@ -78,6 +78,13 @@ connect(goToWeaponPage, SIGNAL(clicked()), this, SLOT(jumpToWeapons())); + GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Bind schemes and weapons"), GBoxOptions), 2, 0); + + bindEntries = new QCheckBox(GBoxOptions); + bindEntries->setToolTip(tr("When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)")); + bindEntries->setChecked(true); + GBoxOptionsLayout->addWidget(bindEntries, 2, 2); + connect(pMapContainer, SIGNAL(seedChanged(const QString &)), this, SLOT(seedChanged(const QString &))); connect(pMapContainer, SIGNAL(mapChanged(const QString &)), this, SLOT(mapChanged(const QString &))); connect(pMapContainer, SIGNAL(mapgenChanged(MapGenerator)), this, SLOT(mapgenChanged(MapGenerator))); @@ -263,11 +270,23 @@ void GameCFGWidget::ammoChanged(int index) { - if (index >= 0) + if (index >= 0) { emit paramChanged( "AMMO", QStringList() << WeaponsName->itemText(index) << WeaponsName->itemData(index).toString() ); + if (bindEntries->isChecked() == true) { + QString weapName = WeaponsName->itemText(index); + for (int i = 0; i < GameSchemes->count(); i++) { + QString schemeName = GameSchemes->itemText(i); + int res = QString::compare(weapName, schemeName, Qt::CaseSensitive); + if (0 == res) { + GameSchemes->setCurrentIndex(i); + break; + } + } + } + } } void GameCFGWidget::mapChanged(const QString & value) @@ -276,6 +295,7 @@ { GameSchemes->setEnabled(false); WeaponsName->setEnabled(false); + bindEntries->setEnabled(false); GameSchemes->setCurrentIndex(GameSchemes->findText("Default")); WeaponsName->setCurrentIndex(WeaponsName->findText("Default")); } @@ -283,6 +303,7 @@ { GameSchemes->setEnabled(true); WeaponsName->setEnabled(true); + bindEntries->setEnabled(true); } emit paramChanged("MAP", QStringList(value)); } @@ -302,7 +323,7 @@ emit paramChanged("THEME", QStringList(value)); } -void GameCFGWidget::schemeChanged(int value) +void GameCFGWidget::schemeChanged(int index) { QStringList sl; @@ -311,6 +332,18 @@ sl << schemeData(i).toString(); emit paramChanged("SCHEME", sl); + + if (bindEntries->isChecked() == true) { + QString schemeName = GameSchemes->itemText(index); + for (int i = 0; i < WeaponsName->count(); i++) { + QString weapName = WeaponsName->itemText(i); + int res = QString::compare(weapName, schemeName, Qt::CaseSensitive); + if (0 == res) { + WeaponsName->setCurrentIndex(i); + break; + } + } + } } void GameCFGWidget::mapgenChanged(MapGenerator m) diff -r fa2680cfff86 -r ef9b201c97fe QTfrontend/gamecfgwidget.h --- a/QTfrontend/gamecfgwidget.h Wed Nov 10 19:43:13 2010 +0100 +++ b/QTfrontend/gamecfgwidget.h Thu Nov 11 00:38:12 2010 +0100 @@ -68,7 +68,7 @@ private: QGridLayout mainLayout; - + QCheckBox * bindEntries; QString curNetAmmoName; QString curNetAmmo; diff -r fa2680cfff86 -r ef9b201c97fe QTfrontend/hwconsts.cpp.in --- a/QTfrontend/hwconsts.cpp.in Wed Nov 10 19:43:13 2010 +0100 +++ b/QTfrontend/hwconsts.cpp.in Thu Nov 11 00:38:12 2010 +0100 @@ -53,7 +53,7 @@ "0000000000000000000000000000000000000000000000000" "1311110312111111123114111111111111111211110101111" )) - << qMakePair(QString("Pro mode"), QString( + << qMakePair(QString("Pro Mode"), QString( "9090009000000000000009000000000000000000000000000" "0000000000000000000000000000000000000000000000000" "0000000000000205500000040007004000000000200000000"