diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas
index 32c13a2751b0f54851c87a98e2e5d105c10073ee..99ddcd9b1a25a3ed1d3c035816546506779ed9b1 100644 (file)
--- a/src/editor/f_main.pas
+++ b/src/editor/f_main.pas
LayerEnabled: Array [LAYER_BACK..LAYER_TRIGGERS] of Boolean =
(True, True, True, True, True, True, True, True, True);
+ ContourEnabled: Array [LAYER_BACK..LAYER_TRIGGERS] of Boolean =
+ (False, False, False, False, False, False, False, False, False);
PreviewMode: Byte = 0;
gLanguage: String;
s := config.ReadStr('Editor', 'Language', '');
gLanguage := s;
+ Compress := config.ReadBool('Editor', 'Compress', True);
+ Backup := config.ReadBool('Editor', 'Backup', True);
+
RecentCount := config.ReadInt('Editor', 'RecentCount', 5);
if RecentCount > 10 then
RecentCount := 10;
AboutForm.ShowModal();
end;
-procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
- Shift: TShiftState);
+procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
dx, dy, i: Integer;
FileName: String;
+ ok: Boolean;
begin
if (not EditingProperties) then
begin
- if Key = Ord('1') then
- SwitchLayer(LAYER_BACK);
- if Key = Ord('2') then
- SwitchLayer(LAYER_WALLS);
- if Key = Ord('3') then
- SwitchLayer(LAYER_FOREGROUND);
- if Key = Ord('4') then
- SwitchLayer(LAYER_STEPS);
- if Key = Ord('5') then
- SwitchLayer(LAYER_WATER);
- if Key = Ord('6') then
- SwitchLayer(LAYER_ITEMS);
- if Key = Ord('7') then
- SwitchLayer(LAYER_MONSTERS);
- if Key = Ord('8') then
- SwitchLayer(LAYER_AREAS);
- if Key = Ord('9') then
- SwitchLayer(LAYER_TRIGGERS);
- if Key = Ord('0') then
- tbShowClick(tbShow);
+ if ssCtrl in Shift then
+ begin
+ case Chr(Key) of
+ '1': ContourEnabled[LAYER_BACK] := not ContourEnabled[LAYER_BACK];
+ '2': ContourEnabled[LAYER_WALLS] := not ContourEnabled[LAYER_WALLS];
+ '3': ContourEnabled[LAYER_FOREGROUND] := not ContourEnabled[LAYER_FOREGROUND];
+ '4': ContourEnabled[LAYER_STEPS] := not ContourEnabled[LAYER_STEPS];
+ '5': ContourEnabled[LAYER_WATER] := not ContourEnabled[LAYER_WATER];
+ '6': ContourEnabled[LAYER_ITEMS] := not ContourEnabled[LAYER_ITEMS];
+ '7': ContourEnabled[LAYER_MONSTERS] := not ContourEnabled[LAYER_MONSTERS];
+ '8': ContourEnabled[LAYER_AREAS] := not ContourEnabled[LAYER_AREAS];
+ '9': ContourEnabled[LAYER_TRIGGERS] := not ContourEnabled[LAYER_TRIGGERS];
+ '0':
+ begin
+ ok := False;
+ for i := Low(ContourEnabled) to High(ContourEnabled) do
+ if ContourEnabled[i] then
+ ok := True;
+ for i := Low(ContourEnabled) to High(ContourEnabled) do
+ ContourEnabled[i] := not ok
+ end
+ end
+ end
+ else
+ begin
+ case Chr(key) of
+ '1': SwitchLayer(LAYER_BACK);
+ '2': SwitchLayer(LAYER_WALLS);
+ '3': SwitchLayer(LAYER_FOREGROUND);
+ '4': SwitchLayer(LAYER_STEPS);
+ '5': SwitchLayer(LAYER_WATER);
+ '6': SwitchLayer(LAYER_ITEMS);
+ '7': SwitchLayer(LAYER_MONSTERS);
+ '8': SwitchLayer(LAYER_AREAS);
+ '9': SwitchLayer(LAYER_TRIGGERS);
+ '0': tbShowClick(tbShow);
+ end
+ end;
if Key = Ord('V') then
begin // Поворот монстров и областей:
if MessageBox(0, PChar(Format(_lc[I_MSG_DELETE_MAP_PROMT], [MapName, OpenDialog.FileName])), PChar(_lc[I_MSG_DELETE_MAP]), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON2) <> mrYes then
Exit;
- g_DeleteResource(FileName, '', utf2win(MapName), res);
+ g_DeleteResource(FileName, '', MapName, res);
if res <> 0 then
begin
MessageBox(0, PChar('Cant delete map res=' + IntToStr(res)), PChar('Map not deleted!'), MB_ICONINFORMATION or MB_OK or MB_DEFBUTTON1);
procedure TMainForm.miTestMapClick(Sender: TObject);
var
- cmd, mapWAD, mapToRun, tempWAD: String;
+ mapWAD, mapToRun, tempWAD: String;
opt: LongWord;
time: Integer;
proc: TProcessUTF8;
if TestOptionsMonstersDM then
opt := opt + 16;
-// Составляем командную строку:
- cmd := '-map "' + mapToRun + '"';
- cmd := cmd + ' -testmap "' + tempWAD + '"';
- cmd := cmd + ' -gm ' + TestGameMode;
- cmd := cmd + ' -limt ' + TestLimTime;
- cmd := cmd + ' -lims ' + TestLimScore;
- cmd := cmd + ' -opt ' + IntToStr(opt);
-
- if TestMapOnce then
- cmd := cmd + ' --close';
-
- cmd := cmd + ' --debug';
-
// Запускаем:
proc := TProcessUTF8.Create(nil);
proc.Executable := TestD2dExe;
- proc.Parameters.Add(cmd);
+ proc.Parameters.Add('-map');
+ proc.Parameters.Add(mapToRun);
+ proc.Parameters.Add('-testmap');
+ proc.Parameters.Add(tempWAD);
+ proc.Parameters.Add('-gm');
+ proc.Parameters.Add(TestGameMode);
+ proc.Parameters.Add('-limt');
+ proc.Parameters.Add(TestLimTime);
+ proc.Parameters.Add('-lims');
+ proc.Parameters.Add(TestLimScore);
+ proc.Parameters.Add('-opt');
+ proc.Parameters.Add(IntToStr(opt));
+ proc.Parameters.Add('--debug');
+ if TestMapOnce then
+ proc.Parameters.Add('--close');
+
res := True;
try
proc.Execute();
EditingProperties := False;
end;
-procedure TMainForm.FormKeyUp(Sender: TObject; var Key: Word;
- Shift: TShiftState);
+procedure TMainForm.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
// Объекты передвигались:
if MainForm.ActiveControl = RenderPanel then