summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: efad5c8)
raw | patch | inline | side by side (parent: efad5c8)
author | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Sun, 21 Jul 2019 15:08:43 +0000 (18:08 +0300) | ||
committer | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Sun, 21 Jul 2019 15:08:43 +0000 (18:08 +0300) |
src/editor/f_main.pas | patch | blob | history | |
src/editor/f_maptest.lfm | patch | blob | history | |
src/editor/f_maptest.pas | patch | blob | history |
diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas
index 99ddcd9b1a25a3ed1d3c035816546506779ed9b1..481f597163599fabe72c50eba1127988af2abb0e 100644 (file)
--- a/src/editor/f_main.pas
+++ b/src/editor/f_main.pas
LCLIntf, LCLType, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, Buttons,
ComCtrls, ValEdit, Types, Menus, ExtCtrls,
- CheckLst, Grids, OpenGLContext, utils, UTF8Process;
+ CheckLst, Grids, OpenGLContext, Utils, UTF8Process;
type
TestOptionsAllowExit: Boolean;
TestOptionsWeaponStay: Boolean;
TestOptionsMonstersDM: Boolean;
- TestD2dExe: String;
+ TestD2dExe, TestD2DArgs: String;
TestMapOnce: Boolean;
LayerEnabled: Array [LAYER_BACK..LAYER_TRIGGERS] of Boolean =
MapTestForm.ShowModal();
end;
+type SSArray = array of String;
+
+function ParseString (Str: AnsiString): SSArray;
+ function GetStr (var Str: AnsiString): AnsiString;
+ var a, b: Integer;
+ begin
+ Result := '';
+ if Str[1] = '"' then
+ for b := 1 to Length(Str) do
+ if (b = Length(Str)) or (Str[b + 1] = '"') then
+ begin
+ Result := Copy(Str, 2, b - 1);
+ Delete(Str, 1, b + 1);
+ Str := Trim(Str);
+ Exit;
+ end;
+ for a := 1 to Length(Str) do
+ if (a = Length(Str)) or (Str[a + 1] = ' ') then
+ begin
+ Result := Copy(Str, 1, a);
+ Delete(Str, 1, a + 1);
+ Str := Trim(Str);
+ Exit;
+ end;
+ end;
+begin
+ Result := nil;
+ Str := Trim(Str);
+ while Str <> '' do
+ begin
+ SetLength(Result, Length(Result)+1);
+ Result[High(Result)] := GetStr(Str);
+ end;
+end;
+
procedure TMainForm.miTestMapClick(Sender: TObject);
var
mapWAD, mapToRun, tempWAD: String;
+ args: SSArray;
opt: LongWord;
- time: Integer;
+ time, i: Integer;
proc: TProcessUTF8;
res: Boolean;
begin
if TestMapOnce then
proc.Parameters.Add('--close');
+ args := ParseString(TestD2DArgs);
+ for i := 0 to High(args) do
+ proc.Parameters.Add(args[i]);
+
res := True;
try
proc.Execute();
index 6e5fa1edc98d0e12b43f971ae89e1ebe6615c35c..c3cc7d1e31faa8451cff83781e3a21dd38d948ee 100644 (file)
--- a/src/editor/f_maptest.lfm
+++ b/src/editor/f_maptest.lfm
ParentFont = False
TabOrder = 15
end
+ object edD2DArgs: TEdit
+ Left = 14
+ Height = 21
+ Top = 200
+ Width = 297
+ TabOrder = 16
+ Text = ''
+ end
object cbMapOnce: TCheckBox
Left = 14
Height = 17
object FindD2dDialog: TOpenDialog
Title = 'Выберите файл игры Doom 2D: Forever'
DefaultExt = '.exe'
- Filter = 'Doom2DF.exe|Doom2DF.exe'
+ Filter = 'Doom2DF.exe|Doom2DF.exe;Doom2DF'
Options = [ofHideReadOnly, ofNoChangeDir, ofEnableSizing]
left = 320
top = 144
index 69f7f40f0568c338ddfee771a442719314fac0e8..b35dc4688d0d695c5d20f7696d5ab6a9c6ed274e 100644 (file)
--- a/src/editor/f_maptest.pas
+++ b/src/editor/f_maptest.pas
// Путь:
LabelPath: TLabel;
edD2dexe: TEdit;
+ edD2DArgs: TEdit;
bChooseD2d: TButton;
FindD2dDialog: TOpenDialog;
config.WriteStr('TestRun', 'Exe', edD2dExe.Text);
TestD2dExe := edD2dExe.Text;
+ config.WriteStr('TestRun', 'Args', edD2DArgs.Text);
+ TestD2DArgs := edD2DArgs.Text;
config.SaveFile(EditorDir+'Editor.cfg');
config.Free();
cbMonstersDM.Checked := TestOptionsMonstersDM;
cbMapOnce.Checked := TestMapOnce;
edD2dExe.Text := TestD2dExe;
+ edD2DArgs.Text := TestD2DArgs;
end;
procedure TMapTestForm.FormCreate(Sender: TObject);
TestOptionsMonstersDM := config.ReadBool('TestRun', 'MonstersDM', False);
TestMapOnce := config.ReadBool('TestRun', 'MapOnce', False);
TestD2dExe := config.ReadStr('TestRun', 'Exe', EditorDir+'Doom2DF.exe');
+ TestD2DArgs := config.ReadStr('TestRun', 'Args', '');
config.Free();