DEADSOFTWARE

b35dc4688d0d695c5d20f7696d5ab6a9c6ed274e
[d2df-editor.git] / src / editor / f_maptest.pas
1 unit f_maptest;
3 {$INCLUDE ../shared/a_modes.inc}
5 interface
7 uses
8 LCLIntf, LCLType, LMessages, Messages, SysUtils, Variants, Classes,
9 Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,
10 ComCtrls;
12 type
13 TMapTestForm = class (TForm)
14 bOK: TButton;
15 bCancel: TButton;
16 GroupBox1: TGroupBox;
17 // Режим игры:
18 rbDM: TRadioButton;
19 rbTDM: TRadioButton;
20 rbCTF: TRadioButton;
21 rbCOOP: TRadioButton;
22 // Опции:
23 cbTwoPlayers: TCheckBox;
24 cbTeamDamage: TCheckBox;
25 cbAllowExit: TCheckBox;
26 cbWeaponStay: TCheckBox;
27 cbMonstersDM: TCheckBox;
28 cbMapOnce: TCheckBox;
29 // Лимит времени:
30 LabelTime: TLabel;
31 edTime: TEdit;
32 UpDown2: TUpDown;
33 LabelSecs: TLabel;
34 // Лимит очков:
35 LabelScore: TLabel;
36 edScore: TEdit;
37 UpDown1: TUpDown;
38 // Путь:
39 LabelPath: TLabel;
40 edD2dexe: TEdit;
41 edD2DArgs: TEdit;
42 bChooseD2d: TButton;
43 FindD2dDialog: TOpenDialog;
45 procedure bOKClick(Sender: TObject);
46 procedure bCancelClick(Sender: TObject);
47 procedure FormActivate(Sender: TObject);
48 procedure FormCreate(Sender: TObject);
49 procedure bChooseD2dClick(Sender: TObject);
51 private
52 { Private declarations }
53 public
54 { Public declarations }
55 end;
57 var
58 MapTestForm: TMapTestForm;
60 implementation
62 uses
63 f_main, CONFIG;
65 {$R *.lfm}
67 procedure TMapTestForm.bOKClick(Sender: TObject);
68 var
69 config: TConfig;
70 s: String;
71 n: Integer;
73 begin
74 config := TConfig.CreateFile(EditorDir+'Editor.cfg');
76 if rbTDM.Checked then
77 s := 'TDM'
78 else
79 if rbCTF.Checked then
80 s := 'CTF'
81 else
82 if rbCOOP.Checked then
83 s := 'COOP'
84 else
85 s := 'DM';
86 config.WriteStr('TestRun', 'GameMode', s);
87 TestGameMode := s;
89 s := edTime.Text;
90 if (not TryStrToInt(s, n)) then
91 s := '0';
92 config.WriteStr('TestRun', 'LimTime', s);
93 TestLimTime := s;
95 s := edScore.Text;
96 if (not TryStrToInt(s, n)) then
97 s := '0';
98 config.WriteStr('TestRun', 'LimScore', s);
99 TestLimScore := s;
101 config.WriteBool('TestRun', 'TwoPlayers', cbTwoPlayers.Checked);
102 TestOptionsTwoPlayers := cbTwoPlayers.Checked;
103 config.WriteBool('TestRun', 'TeamDamage', cbTeamDamage.Checked);
104 TestOptionsTeamDamage := cbTeamDamage.Checked;
105 config.WriteBool('TestRun', 'AllowExit', cbAllowExit.Checked);
106 TestOptionsAllowExit := cbAllowExit.Checked;
107 config.WriteBool('TestRun', 'WeaponStay', cbWeaponStay.Checked);
108 TestOptionsWeaponStay := cbWeaponStay.Checked;
109 config.WriteBool('TestRun', 'MonstersDM', cbMonstersDM.Checked);
110 TestOptionsMonstersDM := cbMonstersDM.Checked;
112 config.WriteBool('TestRun', 'MapOnce', cbMapOnce.Checked);
113 TestMapOnce := cbMapOnce.Checked;
115 config.WriteStr('TestRun', 'Exe', edD2dExe.Text);
116 TestD2dExe := edD2dExe.Text;
117 config.WriteStr('TestRun', 'Args', edD2DArgs.Text);
118 TestD2DArgs := edD2DArgs.Text;
120 config.SaveFile(EditorDir+'Editor.cfg');
121 config.Free();
122 Close();
123 end;
125 procedure TMapTestForm.bCancelClick(Sender: TObject);
126 begin
127 Close();
128 end;
130 procedure TMapTestForm.FormActivate(Sender: TObject);
131 begin
132 if TestGameMode = 'TDM' then
133 rbTDM.Checked := True
134 else
135 if TestGameMode = 'CTF' then
136 rbCTF.Checked := True
137 else
138 if TestGameMode = 'COOP' then
139 rbCOOP.Checked := True
140 else
141 rbDM.Checked := True;
143 edTime.Text := TestLimTime;
144 edScore.Text := TestLimScore;
145 cbTwoPlayers.Checked := TestOptionsTwoPlayers;
146 cbTeamDamage.Checked := TestOptionsTeamDamage;
147 cbAllowExit.Checked := TestOptionsAllowExit;
148 cbWeaponStay.Checked := TestOptionsWeaponStay;
149 cbMonstersDM.Checked := TestOptionsMonstersDM;
150 cbMapOnce.Checked := TestMapOnce;
151 edD2dExe.Text := TestD2dExe;
152 edD2DArgs.Text := TestD2DArgs;
153 end;
155 procedure TMapTestForm.FormCreate(Sender: TObject);
156 var
157 config: TConfig;
159 begin
160 config := TConfig.CreateFile(EditorDir+'Editor.cfg');
162 TestGameMode := config.ReadStr('TestRun', 'GameMode', 'DM');
163 TestLimTime := config.ReadStr('TestRun', 'LimTime', '0');
164 TestLimScore := config.ReadStr('TestRun', 'LimScore', '0');
165 TestOptionsTwoPlayers := config.ReadBool('TestRun', 'TwoPlayers', False);
166 TestOptionsTeamDamage := config.ReadBool('TestRun', 'TeamDamage', False);
167 TestOptionsAllowExit := config.ReadBool('TestRun', 'AllowExit', True);
168 TestOptionsWeaponStay := config.ReadBool('TestRun', 'WeaponStay', False);
169 TestOptionsMonstersDM := config.ReadBool('TestRun', 'MonstersDM', False);
170 TestMapOnce := config.ReadBool('TestRun', 'MapOnce', False);
171 TestD2dExe := config.ReadStr('TestRun', 'Exe', EditorDir+'Doom2DF.exe');
172 TestD2DArgs := config.ReadStr('TestRun', 'Args', '');
174 config.Free();
176 FindD2dDialog.InitialDir := TestD2dExe;
177 end;
179 procedure TMapTestForm.bChooseD2dClick(Sender: TObject);
180 begin
181 if FindD2dDialog.Execute then
182 begin
183 edD2dExe.Text := FindD2dDialog.FileName;
184 end;
185 end;
187 end.