Pārlūkot izejas kodu

Making more detailed options when choosing AI in launcher: http://
bugs.vcmi.eu/view.php?id=2369

Michał Kalinowski 8 gadi atpakaļ
vecāks
revīzija
4d39f652bf

+ 3 - 3
AI/VCAI/VCAI.cpp

@@ -2823,10 +2823,10 @@ void VCAI::requestSent(const CPackForServer *pack, int requestID)
 
 std::string VCAI::getBattleAIName() const
 {
-	if(settings["server"]["neutralAI"].getType() == JsonNode::DATA_STRING)
-		return settings["server"]["neutralAI"].String();
+	if(settings["server"]["enemyAI"].getType() == JsonNode::DATA_STRING)
+		return settings["server"]["enemyAI"].String();
 	else
-		return "StupidAI";
+		return "BattleAI";
 }
 
 void VCAI::validateObject(const CGObjectInstance *obj)

+ 1 - 1
client/CPlayerInterface.cpp

@@ -659,7 +659,7 @@ void CPlayerInterface::battleStart(const CCreatureSet *army1, const CCreatureSet
 	EVENT_HANDLER_CALLED_BY_CLIENT;
 	if (settings["adventure"]["quickCombat"].Bool())
 	{
-		autofightingAI = CDynLibHandler::getNewBattleAI(settings["server"]["neutralAI"].String());
+		autofightingAI = CDynLibHandler::getNewBattleAI(settings["server"]["friendlyAI"].String());
 		autofightingAI->init(cb);
 		autofightingAI->battleStart(army1, army2, int3(0,0,0), hero1, hero2, side);
 		isAutoFightOn = true;

+ 1 - 1
client/battle/CBattleInterface.cpp

@@ -879,7 +879,7 @@ void CBattleInterface::bAutofightf()
 		curInt->isAutoFightOn = true;
 		blockUI(true);
 
-		auto ai = CDynLibHandler::getNewBattleAI(settings["server"]["neutralAI"].String());
+		auto ai = CDynLibHandler::getNewBattleAI(settings["server"]["friendlyAI"].String());
 		ai->init(curInt->cb);
 		ai->battleStart(army1, army2, int3(0,0,0), attackingHeroInstance, defendingHeroInstance, curInt->cb->battleGetMySide());
 		curInt->autofightingAI = ai;

+ 9 - 1
config/schemas/settings.json

@@ -212,7 +212,7 @@
 			"type" : "object",
 			"additionalProperties" : false,
 			"default": {},
-			"required" : [ "server", "port", "localInformation", "playerAI", "neutralAI" ],
+			"required" : [ "server", "port", "localInformation", "playerAI", "friendlyAI","neutralAI", "enemyAI" ],
 			"properties" : {
 				"server" : {
 					"type":"string",
@@ -230,9 +230,17 @@
 					"type" : "string",
 					"default" : "VCAI"
 				},
+				"friendlyAI" : {
+					"type" : "string",
+					"default" : "BattleAI"
+				},
 				"neutralAI" : {
 					"type" : "string",
 					"default" : "StupidAI"
+				},
+				"enemyAI" : {
+					"type" : "string",
+					"default" : "BattleAI"
 				}
 			}
 		},

+ 5 - 6
launcher/main.cpp

@@ -1,14 +1,13 @@
+#include <QApplication>
 #include "StdInc.h"
 #include "mainwindow_moc.h"
-#include <QApplication>
 #include "sdldisplayquery.h"
 
 int main(int argc, char *argv[])
 {
+	QApplication vcmilauncher(argc, argv);
 	auto displayList = getDisplays();
-	QApplication a(argc, argv);
-	MainWindow w(displayList);
-	w.show();
-	
-	return a.exec();
+	MainWindow mainWindow(displayList);
+	mainWindow.show();
+	return vcmilauncher.exec();
 }

+ 0 - 1
launcher/mainwindow_moc.cpp

@@ -84,5 +84,4 @@ void MainWindow::startExecutable(QString name)
 		                      QMessageBox::Ok);
 		return;
 	}
-
 }

+ 2 - 4
launcher/mainwindow_moc.h

@@ -11,7 +11,8 @@ class QTableWidgetItem;
 class MainWindow : public QMainWindow
 {
 	Q_OBJECT
-
+private:
+	Ui::MainWindow *ui;
 	void load();
 	void startExecutable(QString name);
 public:
@@ -20,7 +21,4 @@ public:
 
 private slots:
 	void on_startGameButton_clicked();
-
-private:
-	Ui::MainWindow *ui;
 };

+ 16 - 0
launcher/settingsView/csettingsview_moc.cpp

@@ -45,10 +45,14 @@ void CSettingsView::loadSettings()
 	ui->comboBoxFullScreen->setCurrentIndex(settings["video"]["fullscreen"].Bool());
 	ui->comboBoxShowIntro->setCurrentIndex(settings["video"]["showIntro"].Bool());
 
+	int friendlyAIIndex = ui->comboBoxFriendlyAI->findText(QString::fromUtf8(settings["server"]["friendlyAI"].String().c_str()));
 	int neutralAIIndex = ui->comboBoxNeutralAI->findText(QString::fromUtf8(settings["server"]["neutralAI"].String().c_str()));
+	int enemyAIIndex = ui->comboBoxEnemyAI->findText(QString::fromUtf8(settings["server"]["enemyAI"].String().c_str()));
 	int playerAIIndex = ui->comboBoxPlayerAI->findText(QString::fromUtf8(settings["server"]["playerAI"].String().c_str()));
 
+	ui->comboBoxFriendlyAI->setCurrentIndex(friendlyAIIndex);
 	ui->comboBoxNeutralAI->setCurrentIndex(neutralAIIndex);
+	ui->comboBoxEnemyAI->setCurrentIndex(enemyAIIndex);
 	ui->comboBoxPlayerAI->setCurrentIndex(playerAIIndex);
 
 	ui->spinBoxNetworkPort->setValue(settings["server"]["port"].Float());
@@ -118,12 +122,24 @@ void CSettingsView::on_comboBoxPlayerAI_currentIndexChanged(const QString &arg1)
 	node->String() = arg1.toUtf8().data();
 }
 
+void CSettingsView::on_comboBoxFriendlyAI_currentIndexChanged(const QString & arg1)
+{
+	Settings node = settings.write["server"]["friendlyAI"];
+	node->String() = arg1.toUtf8().data();
+}
+
 void CSettingsView::on_comboBoxNeutralAI_currentIndexChanged(const QString &arg1)
 {
 	Settings node = settings.write["server"]["neutralAI"];
 	node->String() = arg1.toUtf8().data();
 }
 
+void CSettingsView::on_comboBoxEnemyAI_currentIndexChanged(const QString & arg1)
+{
+	Settings node = settings.write["server"]["enemyAI"];
+	node->String() = arg1.toUtf8().data();
+}
+
 void CSettingsView::on_spinBoxNetworkPort_valueChanged(int arg1)
 {
 	Settings node = settings.write["server"]["port"];

+ 4 - 2
launcher/settingsView/csettingsview_moc.h

@@ -1,5 +1,4 @@
 #pragma once
-
 #include "../StdInc.h"
 
 namespace Ui {
@@ -9,7 +8,6 @@ namespace Ui {
 class CSettingsView : public QWidget
 {
 	Q_OBJECT
-
 public:
 	explicit CSettingsView(QWidget *parent = 0);
 	~CSettingsView();
@@ -24,8 +22,12 @@ private slots:
 
 	void on_comboBoxPlayerAI_currentIndexChanged(const QString &arg1);
 
+	void on_comboBoxFriendlyAI_currentIndexChanged(const QString &arg1);
+
 	void on_comboBoxNeutralAI_currentIndexChanged(const QString &arg1);
 
+	void on_comboBoxEnemyAI_currentIndexChanged(const QString &arg1);
+
 	void on_spinBoxNetworkPort_valueChanged(int arg1);
 
 	void on_plainTextEditRepos_textChanged();

+ 346 - 265
launcher/settingsView/csettingsview_moc.ui

@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>714</width>
-    <height>429</height>
+    <width>738</width>
+    <height>459</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -26,8 +26,8 @@
    <property name="bottomMargin">
     <number>0</number>
    </property>
-   <item row="10" column="1" colspan="4">
-    <widget class="QLabel" name="LauncherSettings">
+   <item row="0" column="6" colspan="4">
+    <widget class="QLabel" name="labelDataDirs">
      <property name="font">
       <font>
        <weight>75</weight>
@@ -35,12 +35,12 @@
       </font>
      </property>
      <property name="text">
-      <string>Launcher Settings</string>
+      <string>Data Directories</string>
      </property>
     </widget>
    </item>
-   <item row="6" column="6" colspan="4">
-    <widget class="QLabel" name="labelGeneral">
+   <item row="0" column="1" colspan="4">
+    <widget class="QLabel" name="labelVideo">
      <property name="font">
       <font>
        <weight>75</weight>
@@ -48,10 +48,38 @@
       </font>
      </property>
      <property name="text">
-      <string>General</string>
+      <string>Video</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1">
+    <widget class="QLabel" name="labelResolution">
+     <property name="text">
+      <string>Resolution</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="9">
+    <widget class="QPushButton" name="openTempDir">
+     <property name="text">
+      <string>Open</string>
      </property>
     </widget>
    </item>
+   <item row="9" column="4">
+    <widget class="QComboBox" name="comboBoxNeutralAI">
+     <item>
+      <property name="text">
+       <string>BattleAI</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>StupidAI</string>
+      </property>
+     </item>
+    </widget>
+   </item>
    <item row="2" column="6">
     <widget class="QLabel" name="labelUserDataDir">
      <property name="text">
@@ -59,19 +87,62 @@
      </property>
     </widget>
    </item>
-   <item row="7" column="7" colspan="3">
-    <widget class="QSpinBox" name="spinBoxNetworkPort">
-     <property name="minimum">
-      <number>1024</number>
+   <item row="12" column="1">
+    <widget class="QLabel" name="labelEnemyAI">
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>22</height>
+      </size>
      </property>
-     <property name="maximum">
-      <number>65535</number>
+     <property name="text">
+      <string>Enemy AI</string>
      </property>
-     <property name="value">
-      <number>3030</number>
+    </widget>
+   </item>
+   <item row="15" column="1" colspan="4">
+    <widget class="QLabel" name="labelAutoCheck">
+     <property name="text">
+      <string>Check repositories on startup</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="1">
+    <widget class="QLabel" name="labelDisplayIndex">
+     <property name="text">
+      <string>Display index</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="1">
+    <widget class="QLabel" name="labelShowIntro">
+     <property name="text">
+      <string>Show intro</string>
+     </property>
+    </widget>
+   </item>
+   <item row="6" column="6" colspan="4">
+    <widget class="QLabel" name="labelGeneral">
+     <property name="font">
+      <font>
+       <weight>75</weight>
+       <bold>true</bold>
+      </font>
+     </property>
+     <property name="text">
+      <string>General</string>
      </property>
     </widget>
    </item>
+   <item row="4" column="4">
+    <widget class="QComboBox" name="comboBoxDisplayIndex">
+     <item>
+      <property name="text">
+       <string>0</string>
+      </property>
+     </item>
+    </widget>
+   </item>
    <item row="1" column="8">
     <widget class="QPushButton" name="changeGameDataDir">
      <property name="enabled">
@@ -82,10 +153,45 @@
      </property>
     </widget>
    </item>
-   <item row="2" column="4">
-    <widget class="QComboBox" name="comboBoxFullScreen">
+   <item row="7" column="4">
+    <widget class="QComboBox" name="comboBoxPlayerAI">
+     <item>
+      <property name="text">
+       <string>VCAI</string>
+      </property>
+     </item>
+    </widget>
+   </item>
+   <item row="3" column="7" colspan="2">
+    <widget class="QLineEdit" name="lineEditTempDir">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>150</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>/home/user/.vcmi</string>
+     </property>
+     <property name="readOnly">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="6">
+    <widget class="QLabel" name="labelTempDir">
+     <property name="text">
+      <string>Log files directory</string>
+     </property>
+    </widget>
+   </item>
+   <item row="15" column="6">
+    <widget class="QComboBox" name="comboBoxAutoCheck">
      <property name="currentIndex">
-      <number>0</number>
+      <number>1</number>
      </property>
      <item>
       <property name="text">
@@ -99,8 +205,8 @@
      </item>
     </widget>
    </item>
-   <item row="6" column="1" colspan="4">
-    <widget class="QLabel" name="labelAISettings">
+   <item row="16" column="1" colspan="4">
+    <widget class="QLabel" name="labelRepositories">
      <property name="font">
       <font>
        <weight>75</weight>
@@ -108,7 +214,7 @@
       </font>
      </property>
      <property name="text">
-      <string>AI Settings</string>
+      <string>Repositories</string>
      </property>
     </widget>
    </item>
@@ -119,80 +225,20 @@
      </property>
     </widget>
    </item>
-   <item row="1" column="6">
-    <widget class="QLabel" name="labelGameDir">
-     <property name="text">
-      <string>Extra data directory</string>
+   <item row="7" column="7" colspan="3">
+    <widget class="QSpinBox" name="spinBoxNetworkPort">
+     <property name="minimum">
+      <number>1024</number>
      </property>
-    </widget>
-   </item>
-   <item row="1" column="4">
-    <widget class="QComboBox" name="comboBoxResolution">
-     <item>
-      <property name="text">
-       <string>800x600</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>1024x600</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>1024x768</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>1280x800</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>1280x960</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>1280x1024</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>1366x768</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>1440x900</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>1600x1200</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>1680x1050</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>1920x1080</string>
-      </property>
-     </item>
-    </widget>
-   </item>
-   <item row="2" column="1">
-    <widget class="QLabel" name="labelFullScreen">
-     <property name="text">
-      <string>Fullscreen</string>
+     <property name="maximum">
+      <number>65535</number>
+     </property>
+     <property name="value">
+      <number>3030</number>
      </property>
     </widget>
    </item>
-   <item row="14" column="1" colspan="9">
+   <item row="18" column="1" colspan="9">
     <widget class="QPlainTextEdit" name="plainTextEditRepos">
      <property name="lineWrapMode">
       <enum>QPlainTextEdit::NoWrap</enum>
@@ -209,143 +255,86 @@
      </property>
     </widget>
    </item>
-   <item row="1" column="7">
-    <widget class="QLineEdit" name="lineEditGameDir">
+   <item row="11" column="1">
+    <widget class="QLabel" name="labelFriendlyAI">
      <property name="minimumSize">
       <size>
-       <width>150</width>
-       <height>0</height>
+       <width>0</width>
+       <height>22</height>
       </size>
      </property>
      <property name="text">
-      <string>/usr/share/vcmi</string>
+      <string>Friendly AI</string>
      </property>
     </widget>
    </item>
-   <item row="8" column="4">
-    <widget class="QComboBox" name="comboBoxNeutralAI">
+   <item row="7" column="1">
+    <widget class="QLabel" name="labelPlayerAI">
+     <property name="text">
+      <string>Player AI</string>
+     </property>
+    </widget>
+   </item>
+   <item row="12" column="4">
+    <widget class="QComboBox" name="comboBoxEnemyAI">
+     <property name="editable">
+      <bool>false</bool>
+     </property>
+     <property name="currentText">
+      <string>BattleAI</string>
+     </property>
      <item>
       <property name="text">
-       <string>StupidAI</string>
+       <string>BattleAI</string>
       </property>
      </item>
      <item>
       <property name="text">
-       <string>BattleAI</string>
+       <string>StupidAI</string>
       </property>
      </item>
     </widget>
    </item>
-   <item row="3" column="9">
-    <widget class="QPushButton" name="openTempDir">
+   <item row="2" column="1">
+    <widget class="QLabel" name="labelFullScreen">
      <property name="text">
-      <string>Open</string>
+      <string>Fullscreen</string>
      </property>
     </widget>
    </item>
-   <item row="1" column="1">
-    <widget class="QLabel" name="labelResolution">
-     <property name="text">
-      <string>Resolution</string>
+   <item row="5" column="1" colspan="4">
+    <spacer name="spacerSections">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
      </property>
-    </widget>
-   </item>
-   <item row="8" column="1">
-    <widget class="QLabel" name="labelNeutralAI">
-     <property name="text">
-      <string>Neutral AI</string>
+     <property name="sizeType">
+      <enum>QSizePolicy::Fixed</enum>
      </property>
-    </widget>
-   </item>
-   <item row="8" column="6">
-    <widget class="QLabel" name="labelEncoding">
-     <property name="text">
-      <string>Heroes III character set</string>
-     </property>
-    </widget>
-   </item>
-   <item row="7" column="4">
-    <widget class="QComboBox" name="comboBoxPlayerAI">
-     <item>
-      <property name="text">
-       <string>VCAI</string>
-      </property>
-     </item>
-    </widget>
-   </item>
-   <item row="7" column="1">
-    <widget class="QLabel" name="labelPlayerAI">
-     <property name="text">
-      <string>Player AI</string>
-     </property>
-    </widget>
-   </item>
-   <item row="8" column="7" colspan="3">
-    <widget class="QComboBox" name="comboBoxEncoding">
-     <item>
-      <property name="text">
-       <string>Central European (Windows 1250)</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Cyrillic script (Windows 1251)</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Western European (Windows 1252)</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Simplified Chinese (GBK)</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>Simplified Chinese (GB2312)</string>
-      </property>
-     </item>
-    </widget>
-   </item>
-   <item row="7" column="6">
-    <widget class="QLabel" name="labelNetworkPort">
-     <property name="text">
-      <string>Network port</string>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="1" colspan="4">
-    <widget class="QLabel" name="labelVideo">
-     <property name="font">
-      <font>
-       <weight>75</weight>
-       <bold>true</bold>
-      </font>
-     </property>
-     <property name="text">
-      <string>Video</string>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>56</width>
+       <height>8</height>
+      </size>
      </property>
-    </widget>
+    </spacer>
    </item>
-   <item row="12" column="1" colspan="4">
-    <widget class="QLabel" name="labelRepositories">
-     <property name="font">
-      <font>
-       <weight>75</weight>
-       <bold>true</bold>
-      </font>
+   <item row="1" column="7">
+    <widget class="QLineEdit" name="lineEditGameDir">
+     <property name="minimumSize">
+      <size>
+       <width>150</width>
+       <height>0</height>
+      </size>
      </property>
      <property name="text">
-      <string>Repositories</string>
+      <string>/usr/share/vcmi</string>
      </property>
     </widget>
    </item>
-   <item row="3" column="6">
-    <widget class="QLabel" name="labelTempDir">
+   <item row="1" column="6">
+    <widget class="QLabel" name="labelGameDir">
      <property name="text">
-      <string>Log files directory</string>
+      <string>Extra data directory</string>
      </property>
     </widget>
    </item>
@@ -368,29 +357,33 @@
      </property>
     </widget>
    </item>
-   <item row="3" column="7" colspan="2">
-    <widget class="QLineEdit" name="lineEditTempDir">
-     <property name="enabled">
-      <bool>false</bool>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>150</width>
-       <height>0</height>
-      </size>
-     </property>
-     <property name="text">
-      <string>/home/user/.vcmi</string>
-     </property>
-     <property name="readOnly">
-      <bool>true</bool>
+   <item row="2" column="4">
+    <widget class="QComboBox" name="comboBoxFullScreen">
+     <property name="currentIndex">
+      <number>0</number>
      </property>
+     <item>
+      <property name="text">
+       <string>Off</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>On</string>
+      </property>
+     </item>
     </widget>
    </item>
-   <item row="3" column="1">
-    <widget class="QLabel" name="labelShowIntro">
+   <item row="6" column="1" colspan="4">
+    <widget class="QLabel" name="labelAIMovingOnTheMap">
+     <property name="font">
+      <font>
+       <weight>75</weight>
+       <bold>true</bold>
+      </font>
+     </property>
      <property name="text">
-      <string>Show intro</string>
+      <string>AI on the map</string>
      </property>
     </widget>
    </item>
@@ -411,23 +404,86 @@
      </item>
     </widget>
    </item>
-   <item row="5" column="1" colspan="4">
-    <spacer name="spacerSections">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
+   <item row="14" column="1" colspan="4">
+    <widget class="QLabel" name="LauncherSettings">
+     <property name="font">
+      <font>
+       <weight>75</weight>
+       <bold>true</bold>
+      </font>
      </property>
-     <property name="sizeType">
-      <enum>QSizePolicy::Fixed</enum>
+     <property name="text">
+      <string>Launcher Settings</string>
      </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>56</width>
-       <height>8</height>
-      </size>
+    </widget>
+   </item>
+   <item row="7" column="6">
+    <widget class="QLabel" name="labelNetworkPort">
+     <property name="text">
+      <string>Network port</string>
      </property>
-    </spacer>
+    </widget>
    </item>
-   <item row="9" column="1" colspan="4">
+   <item row="1" column="4">
+    <widget class="QComboBox" name="comboBoxResolution">
+     <item>
+      <property name="text">
+       <string>800x600</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>1024x600</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>1024x768</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>1280x800</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>1280x960</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>1280x1024</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>1366x768</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>1440x900</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>1600x1200</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>1680x1050</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>1920x1080</string>
+      </property>
+     </item>
+    </widget>
+   </item>
+   <item row="13" column="1" colspan="4">
     <spacer name="spacerRepos">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
@@ -443,20 +499,71 @@
      </property>
     </spacer>
    </item>
-   <item row="0" column="6" colspan="4">
-    <widget class="QLabel" name="labelDataDirs">
+   <item row="11" column="4">
+    <widget class="QComboBox" name="comboBoxFriendlyAI">
+     <property name="editable">
+      <bool>false</bool>
+     </property>
+     <property name="currentText">
+      <string>BattleAI</string>
+     </property>
+     <item>
+      <property name="text">
+       <string>BattleAI</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>StupidAI</string>
+      </property>
+     </item>
+    </widget>
+   </item>
+   <item row="8" column="7" colspan="3">
+    <widget class="QComboBox" name="comboBoxEncoding">
+     <item>
+      <property name="text">
+       <string>Central European (Windows 1250)</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Cyrillic script (Windows 1251)</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Western European (Windows 1252)</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Simplified Chinese (GBK)</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Simplified Chinese (GB2312)</string>
+      </property>
+     </item>
+    </widget>
+   </item>
+   <item row="8" column="1">
+    <widget class="QLabel" name="labelAIInTheBattlefield">
      <property name="font">
       <font>
        <weight>75</weight>
+       <italic>true</italic>
        <bold>true</bold>
+       <underline>false</underline>
       </font>
      </property>
      <property name="text">
-      <string>Data Directories</string>
+      <string>AI in the battlefield</string>
      </property>
     </widget>
    </item>
-   <item row="1" column="5" rowspan="3">
+   <item row="9" column="5">
     <spacer name="spacerColumns">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
@@ -472,46 +579,20 @@
      </property>
     </spacer>
    </item>
-   <item row="11" column="6">
-    <widget class="QComboBox" name="comboBoxAutoCheck">
-     <property name="currentIndex">
-      <number>1</number>
-     </property>
-     <item>
-      <property name="text">
-       <string>Off</string>
-      </property>
-     </item>
-     <item>
-      <property name="text">
-       <string>On</string>
-      </property>
-     </item>
-    </widget>
-   </item>
-   <item row="11" column="1" colspan="4">
-    <widget class="QLabel" name="labelAutoCheck">
+   <item row="8" column="6">
+    <widget class="QLabel" name="labelEncoding">
      <property name="text">
-      <string>Check repositories on startup</string>
+      <string>Heroes III character set</string>
      </property>
     </widget>
    </item>
-   <item row="4" column="1">
-    <widget class="QLabel" name="labelDisplayIndex">
+   <item row="9" column="1">
+    <widget class="QLabel" name="labelNeutralAI">
      <property name="text">
-      <string>Display index</string>
+      <string>Neutral AI</string>
      </property>
     </widget>
    </item>
-   <item row="4" column="4">
-    <widget class="QComboBox" name="comboBoxDisplayIndex">
-     <item>
-      <property name="text">
-       <string>0</string>
-      </property>
-     </item>
-    </widget>
-   </item>
   </layout>
  </widget>
  <resources/>