Browse Source

Add VSync to settings

Alexander Wilms 2 years ago
parent
commit
23d1638d70

+ 8 - 2
client/renderSDL/ScreenHandler.cpp

@@ -274,8 +274,14 @@ void ScreenHandler::initializeWindow()
 		handleFatalError(message, true);
 	}
 
-	//create first available renderer if preferred not set. Use no flags, so HW accelerated will be preferred but SW renderer also will possible
-	mainRenderer = SDL_CreateRenderer(mainWindow, getPreferredRenderingDriver(), SDL_RENDERER_PRESENTVSYNC);
+	// create first available renderer if no preferred one is set
+	// use no SDL_RENDERER_SOFTWARE or SDL_RENDERER_ACCELERATED flag, so HW accelerated will be preferred but SW renderer will also be possible
+	uint32_t rendererFlags = 0;
+	if(settings["video"]["vsync"].Bool())
+	{
+		rendererFlags |= SDL_RENDERER_PRESENTVSYNC;
+	}
+	mainRenderer = SDL_CreateRenderer(mainWindow, getPreferredRenderingDriver(), rendererFlags);
 
 	if(mainRenderer == nullptr)
 		throw std::runtime_error("Unable to create renderer\n");

+ 6 - 1
config/schemas/settings.json

@@ -149,7 +149,8 @@
 				"driver",
 				"displayIndex",
 				"showfps",
-				"targetfps"
+				"targetfps",
+				"vsync"
 			],
 			"properties" : {
 				"resolution" : {
@@ -207,6 +208,10 @@
 				"targetfps" : {
 					"type" : "number",
 					"default" : 60
+				},
+				"vsync" : {
+					"type" : "boolean",
+					"default" : true
 				}
 			}
 		},

+ 7 - 0
launcher/settingsView/csettingsview_moc.cpp

@@ -83,6 +83,7 @@ void CSettingsView::loadSettings()
 
 	ui->spinBoxInterfaceScaling->setValue(settings["video"]["resolution"]["scaling"].Float());
 	ui->spinBoxFramerateLimit->setValue(settings["video"]["targetfps"].Float());
+	ui->checkBoxVSync->setChecked(settings["video"]["vsync"].Bool());
 	ui->spinBoxReservedArea->setValue(std::round(settings["video"]["reservedWidth"].Float() * 100));
 
 	ui->comboBoxFriendlyAI->setCurrentText(QString::fromStdString(settings["server"]["friendlyAI"].String()));
@@ -494,6 +495,12 @@ void CSettingsView::on_spinBoxFramerateLimit_valueChanged(int arg1)
 	node->Float() = arg1;
 }
 
+void CSettingsView::on_checkBoxVSync_stateChanged(int arg1)
+{
+	Settings node = settings.write["video"]["vsync"];
+	node->Bool() = arg1;
+}
+
 void CSettingsView::on_comboBoxEnemyPlayerAI_currentTextChanged(const QString &arg1)
 {
 	Settings node = settings.write["server"]["playerAI"];

+ 2 - 0
launcher/settingsView/csettingsview_moc.h

@@ -62,6 +62,8 @@ private slots:
 
 	void on_spinBoxFramerateLimit_valueChanged(int arg1);
 
+	void on_checkBoxVSync_stateChanged(int arg1);
+
 	void on_comboBoxEnemyPlayerAI_currentTextChanged(const QString &arg1);
 
 	void on_comboBoxAlliedPlayerAI_currentTextChanged(const QString &arg1);

+ 294 - 285
launcher/settingsView/csettingsview_moc.ui

@@ -42,7 +42,6 @@
      </property>
      <property name="font">
       <font>
-       <weight>75</weight>
        <bold>true</bold>
       </font>
      </property>
@@ -107,136 +106,104 @@
       <property name="geometry">
        <rect>
         <x>0</x>
-        <y>-197</y>
+        <y>-356</y>
         <width>610</width>
-        <height>768</height>
+        <height>873</height>
        </rect>
       </property>
       <layout class="QGridLayout" name="gridLayout" columnstretch="2,0,1,1,1">
-       <item row="5" column="1" colspan="3">
-        <widget class="QLabel" name="labelTranslationStatus">
+       <item row="5" column="0">
+        <widget class="QLabel" name="labelTranslation">
          <property name="text">
-          <string/>
+          <string>Heroes III Translation</string>
          </property>
         </widget>
        </item>
-       <item row="23" column="1" colspan="4">
-        <widget class="QComboBox" name="comboBoxFriendlyAI">
-         <property name="editable">
-          <bool>false</bool>
-         </property>
-         <property name="currentText">
-          <string notr="true">BattleAI</string>
+       <item row="0" column="0">
+        <widget class="QLabel" name="labelGeneral">
+         <property name="font">
+          <font>
+           <bold>true</bold>
+          </font>
          </property>
-         <item>
-          <property name="text">
-           <string notr="true">BattleAI</string>
-          </property>
-         </item>
-         <item>
-          <property name="text">
-           <string notr="true">StupidAI</string>
-          </property>
-         </item>
-        </widget>
-       </item>
-       <item row="17" column="0">
-        <widget class="QLabel" name="labelDisplayIndex">
          <property name="text">
-          <string>Display index</string>
+          <string>General</string>
          </property>
         </widget>
        </item>
-       <item row="21" column="1" colspan="4">
-        <widget class="QComboBox" name="comboBoxAlliedPlayerAI">
-         <property name="currentText">
-          <string notr="true">VCAI</string>
+       <item row="12" column="0">
+        <widget class="QLabel" name="labelFullScreen">
+         <property name="text">
+          <string>Fullscreen</string>
          </property>
-         <item>
-          <property name="text">
-           <string notr="true">VCAI</string>
-          </property>
-         </item>
-         <item>
-          <property name="text">
-           <string notr="true">Nullkiller</string>
-          </property>
-         </item>
         </widget>
        </item>
-       <item row="8" column="0">
-        <widget class="QLabel" name="labelAutoSaveLimit">
+       <item row="14" column="0">
+        <widget class="QLabel" name="labelInterfaceScaling">
          <property name="text">
-          <string>Autosave limit (0 = off)</string>
+          <string>Interface Scaling</string>
          </property>
         </widget>
        </item>
-       <item row="12" column="0">
-        <widget class="QLabel" name="labelFullScreen">
+       <item row="9" column="0">
+        <widget class="QLabel" name="labelAutoSavePrefix">
          <property name="text">
-          <string>Fullscreen</string>
+          <string>Autosave prefix</string>
          </property>
         </widget>
        </item>
-       <item row="6" column="0">
-        <widget class="QLabel" name="labelNetworkPort">
+       <item row="23" column="0">
+        <widget class="QLabel" name="labelAlliedPlayerAI">
          <property name="text">
-          <string>Network port</string>
+          <string>Adventure Map Allies</string>
          </property>
         </widget>
        </item>
-       <item row="0" column="0">
-        <widget class="QLabel" name="labelGeneral">
+       <item row="10" column="0">
+        <widget class="QLabel" name="labelVideo">
          <property name="font">
           <font>
-           <weight>75</weight>
            <bold>true</bold>
           </font>
          </property>
          <property name="text">
-          <string>General</string>
+          <string>Video</string>
          </property>
         </widget>
        </item>
-       <item row="7" column="0">
-        <widget class="QLabel" name="labelAutoSave">
-         <property name="text">
-          <string>Autosave</string>
+       <item row="16" column="1" colspan="4">
+        <widget class="QSpinBox" name="spinBoxFramerateLimit">
+         <property name="minimum">
+          <number>20</number>
+         </property>
+         <property name="maximum">
+          <number>1000</number>
+         </property>
+         <property name="singleStep">
+          <number>10</number>
          </property>
         </widget>
        </item>
-       <item row="18" column="1" colspan="4">
-        <widget class="QComboBox" name="comboBoxCursorType">
-         <item>
-          <property name="text">
-           <string>Hardware</string>
-          </property>
-         </item>
-         <item>
-          <property name="text">
-           <string>Software</string>
-          </property>
-         </item>
-        </widget>
-       </item>
-       <item row="16" column="0">
-        <widget class="QLabel" name="labelShowIntro">
+       <item row="21" column="0">
+        <widget class="QLabel" name="labelArtificialIntelligence">
+         <property name="font">
+          <font>
+           <bold>true</bold>
+          </font>
+         </property>
          <property name="text">
-          <string>Show intro</string>
+          <string>Artificial Intelligence</string>
          </property>
         </widget>
        </item>
-       <item row="28" column="1">
-        <widget class="QCheckBox" name="checkBoxRepositoryExtra">
-         <property name="text">
-          <string/>
-         </property>
-         <property name="checked">
-          <bool>true</bool>
+       <item row="9" column="2" colspan="3">
+        <widget class="QLineEdit" name="lineEditAutoSavePrefix">
+         <property name="placeholderText">
+          <string>empty = map name prefix</string>
          </property>
         </widget>
        </item>
-       <item row="27" column="1">
+       <item row="29" column="1">
         <widget class="QCheckBox" name="checkBoxRepositoryDefault">
          <property name="enabled">
           <bool>true</bool>
@@ -249,51 +216,58 @@
          </property>
         </widget>
        </item>
-       <item row="15" column="1" colspan="4">
-        <widget class="QSpinBox" name="spinBoxFramerateLimit">
-         <property name="minimum">
-          <number>20</number>
-         </property>
-         <property name="maximum">
-          <number>1000</number>
+       <item row="9" column="1">
+        <widget class="QCheckBox" name="checkBoxAutoSavePrefix">
+         <property name="text">
+          <string/>
          </property>
-         <property name="singleStep">
-          <number>10</number>
+        </widget>
+       </item>
+       <item row="8" column="0">
+        <widget class="QLabel" name="labelAutoSaveLimit">
+         <property name="text">
+          <string>Autosave limit (0 = off)</string>
          </property>
         </widget>
        </item>
-       <item row="17" column="1" colspan="4">
+       <item row="19" column="1" colspan="4">
         <widget class="QComboBox" name="comboBoxDisplayIndex"/>
        </item>
-       <item row="15" column="0">
-        <widget class="QLabel" name="labelFramerateLimit">
+       <item row="30" column="0">
+        <widget class="QLabel" name="labelRepositoryExtra">
          <property name="text">
-          <string>Framerate Limit</string>
+          <string>Additional repository</string>
          </property>
         </widget>
        </item>
-       <item row="4" column="1" colspan="4">
-        <widget class="QComboBox" name="comboBoxLanguageBase"/>
-       </item>
-       <item row="20" column="0">
-        <widget class="QLabel" name="labelEnemyPlayerAI">
-         <property name="text">
-          <string>Adventure Map Enemies</string>
+       <item row="13" column="1" colspan="4">
+        <widget class="QSpinBox" name="spinBoxReservedArea">
+         <property name="suffix">
+          <string notr="true">%</string>
+         </property>
+         <property name="minimum">
+          <number>0</number>
+         </property>
+         <property name="maximum">
+          <number>25</number>
+         </property>
+         <property name="singleStep">
+          <number>1</number>
+         </property>
+         <property name="value">
+          <number>0</number>
          </property>
         </widget>
        </item>
-       <item row="27" column="0">
-        <widget class="QLabel" name="labelRepositoryDefault">
+       <item row="18" column="0">
+        <widget class="QLabel" name="labelShowIntro">
          <property name="text">
-          <string>Default repository</string>
+          <string>Show intro</string>
          </property>
         </widget>
        </item>
-       <item row="11" column="1" colspan="4">
-        <widget class="QComboBox" name="comboBoxResolution"/>
-       </item>
-       <item row="7" column="1" colspan="4">
-        <widget class="QComboBox" name="comboBoxAutoSave">
+       <item row="18" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxShowIntro">
          <property name="currentIndex">
           <number>1</number>
          </property>
@@ -309,159 +283,180 @@
          </item>
         </widget>
        </item>
-       <item row="10" column="0">
-        <widget class="QLabel" name="labelVideo">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
+       <item row="26" column="0">
+        <widget class="QLabel" name="labelEnemyAI">
          <property name="text">
-          <string>Video</string>
+          <string>Enemy AI in battles</string>
          </property>
         </widget>
        </item>
-       <item row="9" column="0">
-        <widget class="QLabel" name="labelAutoSavePrefix">
-         <property name="text">
-          <string>Autosave prefix</string>
+       <item row="23" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxAlliedPlayerAI">
+         <property name="currentText">
+          <string notr="true">VCAI</string>
          </property>
+         <item>
+          <property name="text">
+           <string notr="true">VCAI</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string notr="true">Nullkiller</string>
+          </property>
+         </item>
         </widget>
        </item>
-       <item row="11" column="0">
-        <widget class="QLabel" name="labelResolution">
-         <property name="text">
-          <string>Resolution</string>
+       <item row="25" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxFriendlyAI">
+         <property name="editable">
+          <bool>false</bool>
+         </property>
+         <property name="currentText">
+          <string notr="true">BattleAI</string>
          </property>
+         <item>
+          <property name="text">
+           <string notr="true">BattleAI</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string notr="true">StupidAI</string>
+          </property>
+         </item>
         </widget>
        </item>
-       <item row="28" column="2" colspan="3">
+       <item row="30" column="2" colspan="3">
         <widget class="QLineEdit" name="lineEditRepositoryExtra">
          <property name="text">
           <string notr="true"/>
          </property>
         </widget>
        </item>
-       <item row="27" column="2" colspan="3">
-        <widget class="QLineEdit" name="lineEditRepositoryDefault">
-         <property name="text">
-          <string notr="true"/>
+       <item row="12" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxFullScreen">
+         <property name="toolTip">
+          <string>Select display mode for game
+
+Windowed - game will run inside a window that covers part of your screen
+
+Borderless Windowed Mode - game will run in a window that covers entirely of your screen, using same resolution as your screen.
+
+Fullscreen Exclusive Mode - game will cover entirety of your screen and will use selected resolution.</string>
          </property>
-         <property name="readOnly">
-          <bool>true</bool>
+         <property name="currentIndex">
+          <number>0</number>
          </property>
+         <item>
+          <property name="text">
+           <string>Windowed</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>Borderless fullscreen</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>Exclusive fullscreen</string>
+          </property>
+         </item>
         </widget>
        </item>
-       <item row="18" column="0">
-        <widget class="QLabel" name="labelCursorType">
+       <item row="11" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxResolution"/>
+       </item>
+       <item row="19" column="0">
+        <widget class="QLabel" name="labelDisplayIndex">
          <property name="text">
-          <string>Cursor</string>
+          <string>Display index</string>
          </property>
         </widget>
        </item>
-       <item row="26" column="1" colspan="2">
-        <widget class="QComboBox" name="comboBoxAutoCheck">
-         <property name="currentIndex">
-          <number>1</number>
+       <item row="22" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxEnemyPlayerAI">
+         <property name="currentText">
+          <string notr="true">VCAI</string>
          </property>
          <item>
           <property name="text">
-           <string>Off</string>
+           <string notr="true">VCAI</string>
           </property>
          </item>
          <item>
           <property name="text">
-           <string>On</string>
+           <string notr="true">Nullkiller</string>
           </property>
          </item>
         </widget>
        </item>
-       <item row="26" column="3" colspan="2">
-        <widget class="QPushButton" name="refreshRepositoriesButton">
+       <item row="5" column="1" colspan="3">
+        <widget class="QLabel" name="labelTranslationStatus">
          <property name="text">
-          <string>Refresh now</string>
+          <string/>
          </property>
         </widget>
        </item>
-       <item row="5" column="4">
-        <widget class="QPushButton" name="pushButtonTranslation">
+       <item row="29" column="0">
+        <widget class="QLabel" name="labelRepositoryDefault">
          <property name="text">
-          <string/>
+          <string>Default repository</string>
          </property>
         </widget>
        </item>
-       <item row="5" column="0">
-        <widget class="QLabel" name="labelTranslation">
+       <item row="4" column="0">
+        <widget class="QLabel" name="labelLanguageBase">
          <property name="text">
-          <string>Heroes III Translation</string>
+          <string>Heroes III Data Language</string>
          </property>
         </widget>
        </item>
-       <item row="16" column="1" colspan="4">
-        <widget class="QComboBox" name="comboBoxShowIntro">
-         <property name="currentIndex">
-          <number>1</number>
+       <item row="30" column="1">
+        <widget class="QCheckBox" name="checkBoxRepositoryExtra">
+         <property name="text">
+          <string/>
+         </property>
+         <property name="checked">
+          <bool>true</bool>
          </property>
-         <item>
-          <property name="text">
-           <string>Off</string>
-          </property>
-         </item>
-         <item>
-          <property name="text">
-           <string>On</string>
-          </property>
-         </item>
         </widget>
        </item>
-       <item row="24" column="0">
-        <widget class="QLabel" name="labelEnemyAI">
+       <item row="16" column="0">
+        <widget class="QLabel" name="labelFramerateLimit">
          <property name="text">
-          <string>Enemy AI in battles</string>
+          <string>Framerate Limit</string>
          </property>
         </widget>
        </item>
        <item row="25" column="0">
-        <widget class="QLabel" name="labelRepositories">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
+        <widget class="QLabel" name="labelFriendlyAI">
          <property name="text">
-          <string>Mod Repositories</string>
+          <string>Friendly AI in battles</string>
          </property>
         </widget>
        </item>
-       <item row="28" column="0">
-        <widget class="QLabel" name="labelRepositoryExtra">
+       <item row="1" column="0">
+        <widget class="QLabel" name="labelLanguage">
          <property name="text">
-          <string>Additional repository</string>
+          <string>VCMI Language</string>
          </property>
         </widget>
        </item>
-       <item row="24" column="1" colspan="4">
-        <widget class="QComboBox" name="comboBoxEnemyAI">
-         <property name="editable">
-          <bool>false</bool>
+       <item row="29" column="2" colspan="3">
+        <widget class="QLineEdit" name="lineEditRepositoryDefault">
+         <property name="text">
+          <string notr="true"/>
          </property>
-         <property name="currentText">
-          <string notr="true">BattleAI</string>
+         <property name="readOnly">
+          <bool>true</bool>
          </property>
-         <item>
-          <property name="text">
-           <string notr="true">BattleAI</string>
-          </property>
-         </item>
-         <item>
-          <property name="text">
-           <string notr="true">StupidAI</string>
-          </property>
-         </item>
         </widget>
        </item>
+       <item row="4" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxLanguageBase"/>
+       </item>
        <item row="14" column="1" colspan="4">
         <widget class="QSpinBox" name="spinBoxInterfaceScaling">
          <property name="minimum">
@@ -475,27 +470,32 @@
          </property>
         </widget>
        </item>
-       <item row="4" column="0">
-        <widget class="QLabel" name="labelLanguageBase">
+       <item row="8" column="1" colspan="4">
+        <widget class="QSpinBox" name="spinBoxAutoSaveLimit"/>
+       </item>
+       <item row="27" column="0">
+        <widget class="QLabel" name="labelRepositories">
+         <property name="font">
+          <font>
+           <bold>true</bold>
+          </font>
+         </property>
          <property name="text">
-          <string>Heroes III Data Language</string>
+          <string>Mod Repositories</string>
          </property>
         </widget>
        </item>
-       <item row="8" column="1" colspan="4">
-        <widget class="QSpinBox" name="spinBoxAutoSaveLimit"/>
-       </item>
-       <item row="22" column="0">
-        <widget class="QLabel" name="labelNeutralAI">
+       <item row="5" column="4">
+        <widget class="QPushButton" name="pushButtonTranslation">
          <property name="text">
-          <string>Neutral AI in battles</string>
+          <string/>
          </property>
         </widget>
        </item>
-       <item row="14" column="0">
-        <widget class="QLabel" name="labelInterfaceScaling">
+       <item row="11" column="0">
+        <widget class="QLabel" name="labelResolution">
          <property name="text">
-          <string>Interface Scaling</string>
+          <string>Resolution</string>
          </property>
         </widget>
        </item>
@@ -512,39 +512,49 @@
          </property>
         </widget>
        </item>
-       <item row="9" column="1">
-        <widget class="QCheckBox" name="checkBoxAutoSavePrefix">
+       <item row="7" column="0">
+        <widget class="QLabel" name="labelAutoSave">
          <property name="text">
-          <string/>
+          <string>Autosave</string>
          </property>
         </widget>
        </item>
-       <item row="23" column="0">
-        <widget class="QLabel" name="labelFriendlyAI">
+       <item row="20" column="0">
+        <widget class="QLabel" name="labelCursorType">
          <property name="text">
-          <string>Friendly AI in battles</string>
+          <string>Cursor</string>
          </property>
         </widget>
        </item>
-       <item row="1" column="0">
-        <widget class="QLabel" name="labelLanguage">
-         <property name="text">
-          <string>VCMI Language</string>
-         </property>
+       <item row="20" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxCursorType">
+         <item>
+          <property name="text">
+           <string>Hardware</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>Software</string>
+          </property>
+         </item>
         </widget>
        </item>
        <item row="1" column="1" colspan="4">
         <widget class="QComboBox" name="comboBoxLanguage"/>
        </item>
-       <item row="26" column="0">
-        <widget class="QLabel" name="labelAutoCheck">
+       <item row="6" column="0">
+        <widget class="QLabel" name="labelNetworkPort">
          <property name="text">
-          <string>Check on startup</string>
+          <string>Network port</string>
          </property>
         </widget>
        </item>
-       <item row="22" column="1" colspan="4">
-        <widget class="QComboBox" name="comboBoxNeutralAI">
+       <item row="26" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxEnemyAI">
+         <property name="editable">
+          <bool>false</bool>
+         </property>
          <property name="currentText">
           <string notr="true">BattleAI</string>
          </property>
@@ -560,104 +570,103 @@
          </item>
         </widget>
        </item>
-       <item row="21" column="0">
-        <widget class="QLabel" name="labelAlliedPlayerAI">
-         <property name="text">
-          <string>Adventure Map Allies</string>
+       <item row="7" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxAutoSave">
+         <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="19" column="0">
-        <widget class="QLabel" name="labelArtificialIntelligence">
-         <property name="font">
-          <font>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
+       <item row="28" column="3" colspan="2">
+        <widget class="QPushButton" name="refreshRepositoriesButton">
          <property name="text">
-          <string>Artificial Intelligence</string>
+          <string>Refresh now</string>
          </property>
         </widget>
        </item>
-       <item row="20" column="1" colspan="4">
-        <widget class="QComboBox" name="comboBoxEnemyPlayerAI">
+       <item row="24" column="1" colspan="4">
+        <widget class="QComboBox" name="comboBoxNeutralAI">
          <property name="currentText">
-          <string notr="true">VCAI</string>
+          <string notr="true">BattleAI</string>
          </property>
          <item>
           <property name="text">
-           <string notr="true">VCAI</string>
+           <string notr="true">BattleAI</string>
           </property>
          </item>
          <item>
           <property name="text">
-           <string notr="true">Nullkiller</string>
+           <string notr="true">StupidAI</string>
           </property>
          </item>
         </widget>
        </item>
-       <item row="9" column="2" colspan="3">
-        <widget class="QLineEdit" name="lineEditAutoSavePrefix">
-         <property name="placeholderText">
-          <string>empty = map name prefix</string>
+       <item row="28" column="0">
+        <widget class="QLabel" name="labelAutoCheck">
+         <property name="text">
+          <string>Check on startup</string>
          </property>
         </widget>
        </item>
-       <item row="12" column="1" colspan="4">
-        <widget class="QComboBox" name="comboBoxFullScreen">
-         <property name="toolTip">
-          <string>Select display mode for game
-
-Windowed - game will run inside a window that covers part of your screen
-
-Borderless Windowed Mode - game will run in a window that covers entirely of your screen, using same resolution as your screen.
-
-Fullscreen Exclusive Mode - game will cover entirety of your screen and will use selected resolution.</string>
+       <item row="24" column="0">
+        <widget class="QLabel" name="labelNeutralAI">
+         <property name="text">
+          <string>Neutral AI in battles</string>
+         </property>
+        </widget>
+       </item>
+       <item row="13" column="0">
+        <widget class="QLabel" name="labelReservedArea">
+         <property name="text">
+          <string>Reserved screen area</string>
+         </property>
+        </widget>
+       </item>
+       <item row="22" column="0">
+        <widget class="QLabel" name="labelEnemyPlayerAI">
+         <property name="text">
+          <string>Adventure Map Enemies</string>
          </property>
+        </widget>
+       </item>
+       <item row="28" column="1" colspan="2">
+        <widget class="QComboBox" name="comboBoxAutoCheck">
          <property name="currentIndex">
-          <number>0</number>
+          <number>1</number>
          </property>
          <item>
           <property name="text">
-           <string>Windowed</string>
-          </property>
-         </item>
-         <item>
-          <property name="text">
-           <string>Borderless fullscreen</string>
+           <string>Off</string>
           </property>
          </item>
          <item>
           <property name="text">
-           <string>Exclusive fullscreen</string>
+           <string>On</string>
           </property>
          </item>
         </widget>
        </item>
-       <item row="13" column="0">
-        <widget class="QLabel" name="labelReservedArea">
+       <item row="17" column="0">
+        <widget class="QLabel" name="labelVSync">
          <property name="text">
-          <string>Reserved screen area</string>
+          <string>VSync</string>
          </property>
         </widget>
        </item>
-       <item row="13" column="1" colspan="4">
-        <widget class="QSpinBox" name="spinBoxReservedArea">
-         <property name="suffix">
-          <string notr="true">%</string>
-         </property>
-         <property name="minimum">
-          <number>0</number>
-         </property>
-         <property name="maximum">
-          <number>25</number>
-         </property>
-         <property name="singleStep">
-          <number>1</number>
-         </property>
-         <property name="value">
-          <number>0</number>
+       <item row="17" column="1">
+        <widget class="QCheckBox" name="checkBoxVSync">
+         <property name="text">
+          <string/>
          </property>
         </widget>
        </item>