DEADSOFTWARE

gui: implement new settings dialog
[d2df-editor.git] / src / editor / f_main.pas
index 2bf10e67abbf1a555c9616463e212a1e3cda4082..5fbd3607212f2c5d05c74a6a5ea1283fcbba5bb9 100644 (file)
@@ -71,8 +71,6 @@ type
     miMapOptions: TMenuItem;
     miLine6: TMenuItem;
     miOptions: TMenuItem;
-    miLine7: TMenuItem;
-    miMapTestSettings: TMenuItem;
   // "Справка":
     miMenuHelp: TMenuItem;
     miAbout: TMenuItem;
@@ -109,9 +107,6 @@ type
     miLayerP7: TMenuItem;
     miLayerP8: TMenuItem;
     miLayerP9: TMenuItem;
-  // Всплывающее меню для кнопки теста карты:
-    pmMapTest: TPopupMenu;
-    miMapTestPMSet: TMenuItem;
 
   // Панель карты:
     PanelMap: TPanel;
@@ -246,7 +241,6 @@ type
     procedure bClearTextureClick(Sender: TObject);
     procedure miPackMapClick(Sender: TObject);
     procedure aRecentFileExecute(Sender: TObject);
-    procedure miMapTestSettingsClick(Sender: TObject);
     procedure miTestMapClick(Sender: TObject);
     procedure sbVerticalScroll(Sender: TObject; ScrollCode: TScrollCode;
       var ScrollPos: Integer);
@@ -342,7 +336,7 @@ uses
   f_activationtype, f_keys, wadreader, fileutil,
   MAPREADER, f_selectmap, f_savemap, WADEDITOR, MAPDEF,
   g_map, f_saveminimap, f_addresource, CONFIG, f_packmap,
-  f_addresource_sound, f_maptest, f_choosetype,
+  f_addresource_sound, f_choosetype,
   g_language, f_selectlang, ClipBrd, g_resources, g_options;
 
 const
@@ -2738,6 +2732,24 @@ begin
   Compress := config.ReadBool('Editor', 'Compress', True);
   Backup := config.ReadBool('Editor', 'Backup', True);
 
+  TestGameMode := config.ReadStr('TestRun', 'GameMode', 'DM');
+  TestLimTime := config.ReadStr('TestRun', 'LimTime', '0');
+  TestLimScore := config.ReadStr('TestRun', 'LimScore', '0');
+  TestOptionsTwoPlayers := config.ReadBool('TestRun', 'TwoPlayers', False);
+  TestOptionsTeamDamage := config.ReadBool('TestRun', 'TeamDamage', False);
+  TestOptionsAllowExit := config.ReadBool('TestRun', 'AllowExit', True);
+  TestOptionsWeaponStay := config.ReadBool('TestRun', 'WeaponStay', False);
+  TestOptionsMonstersDM := config.ReadBool('TestRun', 'MonstersDM', False);
+  TestMapOnce := config.ReadBool('TestRun', 'MapOnce', False);
+  {$IF DEFINED(DARWIN)}
+    TestD2dExe := config.ReadStr('TestRun', 'ExeDrawin', GameExeFile);
+  {$ELSEIF DEFINED(WINDOWS)}
+    TestD2dExe := config.ReadStr('TestRun', 'ExeWindows', GameExeFile);
+  {$ELSE}
+    TestD2dExe := config.ReadStr('TestRun', 'ExeUnix', GameExeFile);
+  {$ENDIF}
+  TestD2DArgs := config.ReadStr('TestRun', 'Args', '');
+
   RecentCount := config.ReadInt('Editor', 'RecentCount', 5);
   if RecentCount > 10 then
     RecentCount := 10;
@@ -6710,11 +6722,6 @@ begin
   PackMapForm.ShowModal();
 end;
 
-procedure TMainForm.miMapTestSettingsClick(Sender: TObject);
-begin
-  MapTestForm.ShowModal();
-end;
-
 type SSArray = array of String;
 
 function ParseString (Str: AnsiString): SSArray;
@@ -6766,7 +6773,7 @@ begin
   // Сохраняем временную карту:
   time := 0;
   repeat
-    newWAD := ExtractFilePath(TestD2dExe) + Format('maps/temp%.4d', [time]);
+    newWAD := Format('%s/temp%.4d', [MapsDir, time]);
     Inc(time);
   until not FileExists(newWAD);
   if OpenedMap <> '' then
@@ -6782,7 +6789,6 @@ begin
   end;
   tempMap := newWAD + ':\' + TEST_MAP_NAME;
   SaveMap(tempMap);
-  tempMap := ExtractRelativePath(ExtractFilePath(TestD2dExe) + 'maps/', tempMap);
 
 // Опции игры:
   opt := 32 + 64;
@@ -6800,6 +6806,11 @@ begin
 // Запускаем:
   proc := TProcessUTF8.Create(nil);
   proc.Executable := TestD2dExe;
+  {$IFDEF DARWIN}
+    // TODO: get real executable name from Info.plist
+    if LowerCase(ExtractFileExt(TestD2dExe)) = '.app' then
+      proc.Executable := TestD2dExe + DirectorySeparator + 'Contents' + DirectorySeparator + 'MacOS' + DirectorySeparator + 'Doom2DF';
+  {$ENDIF}
   proc.Parameters.Add('-map');
   proc.Parameters.Add(tempMap);
   proc.Parameters.Add('-gm');