X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Feditor%2Ff_main.pas;h=ca323f69220c99e1b7d12e4918cea0edba16e6e7;hb=a97fbe542af199db61003389576f0274bb90b940;hp=b7e3dd36a663217c2c78d8166f2e32f606aae8cd;hpb=7bc9ae2fc0204a6412aa1cb5f05f0ffa8d1870ac;p=d2df-editor.git diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas index b7e3dd3..ca323f6 100644 --- a/src/editor/f_main.pas +++ b/src/editor/f_main.pas @@ -124,6 +124,7 @@ type // Панель применения свойств: PanelPropApply: TPanel; bApplyProperty: TButton; + MapTestTimer: TTimer; // Редактор свойств объектов: vleObjectProperty: TValueListEditor; @@ -218,6 +219,7 @@ type procedure RenderPanelPaint(Sender: TObject); procedure RenderPanelResize(Sender: TObject); procedure Splitter1Moved(Sender: TObject); + procedure MapTestCheck(Sender: TObject); procedure vleObjectPropertyEditButtonClick(Sender: TObject); procedure vleObjectPropertyApply(Sender: TObject); procedure vleObjectPropertyGetPickList(Sender: TObject; const KeyName: String; Values: TStrings); @@ -286,7 +288,6 @@ const var MainForm: TMainForm; - EditorDir: String; OpenedMap: String; OpenedWAD: String; @@ -341,7 +342,7 @@ uses MAPREADER, f_selectmap, f_savemap, WADEDITOR, MAPDEF, g_map, f_saveminimap, f_addresource, CONFIG, f_packmap, f_addresource_sound, f_maptest, f_choosetype, - g_language, f_selectlang, ClipBrd, g_resources; + g_language, f_selectlang, ClipBrd, g_resources, g_options; const UNDO_DELETE_PANEL = 1; @@ -457,6 +458,8 @@ var UndoBuffer: Array of Array of TUndoRec = nil; + MapTestProcess: TProcessUTF8; + MapTestFile: String; {$R *.lfm} @@ -2617,10 +2620,10 @@ var config: TConfig; begin ID := 0; - g_ReadResource(EditorDir + 'data/game.wad', 'FONTS', cfgres, cfgdata, cfglen); + g_ReadResource(GameWad, 'FONTS', cfgres, cfgdata, cfglen); if cfgdata <> nil then begin - if not g_CreateTextureWAD('FONT_STD', EditorDir + 'data/game.wad:FONTS\' + texture) then + if not g_CreateTextureWAD('FONT_STD', GameWad + ':FONTS\' + texture) then e_WriteLog('ERROR ERROR ERROR', MSG_WARNING); config := TConfig.CreateMem(cfgdata, cfglen); @@ -2648,8 +2651,6 @@ var begin Randomize(); - EditorDir := ExtractFilePath(Application.ExeName); - e_WriteLog('Doom 2D: Forever Editor version ' + EDITOR_VERSION, MSG_NOTIFY); e_WriteLog('Build date: ' + EDITOR_BUILDDATE + ' ' + EDITOR_BUILDTIME, MSG_NOTIFY); e_WriteLog('Build hash: ' + g_GetBuildHash(), MSG_NOTIFY); @@ -2673,7 +2674,7 @@ begin OpenedMap := ''; OpenedWAD := ''; - config := TConfig.CreateFile(EditorDir+'Editor.cfg'); + config := TConfig.CreateFile(CfgFileName); if config.ReadInt('Editor', 'XPos', -1) = -1 then Position := poDesktopCenter @@ -4238,7 +4239,7 @@ var config: TConfig; i: Integer; begin - config := TConfig.CreateFile(EditorDir+'Editor.cfg'); + config := TConfig.CreateFile(CfgFileName); if WindowState <> wsMaximized then begin @@ -4277,7 +4278,7 @@ begin config.WriteStr('RecentFiles', IntToStr(i+1), ''); RecentFiles.Free(); - config.SaveFile(EditorDir+'Editor.cfg'); + config.SaveFile(CfgFileName); config.Free(); slInvalidTextures.Free; @@ -4303,6 +4304,20 @@ begin FormResize(Sender); end; +procedure TMainForm.MapTestCheck(Sender: TObject); +begin + if MapTestProcess <> nil then + begin + if MapTestProcess.Running = false then + begin + SysUtils.DeleteFile(MapTestFile); + MapTestFile := ''; + FreeAndNil(MapTestProcess); + tbTestMap.Enabled := True; + end; + end; +end; + procedure TMainForm.aMapOptionsExecute(Sender: TObject); var ResName: String; @@ -6235,9 +6250,9 @@ begin else gLanguage := LANGUAGE_RUSSIAN; end; - config := TConfig.CreateFile(EditorDir+'Editor.cfg'); + config := TConfig.CreateFile(CfgFileName); config.WriteStr('Editor', 'Language', gLanguage); - config.SaveFile(EditorDir+'Editor.cfg'); + config.SaveFile(CfgFileName); config.Free(); end; @@ -6738,6 +6753,10 @@ var proc: TProcessUTF8; res: Boolean; begin + // Ignore while map testing in progress + if MapTestProcess <> nil then + Exit; + // Сохраняем временную карту: time := 0; repeat @@ -6801,19 +6820,16 @@ begin end; if res then begin - Application.Minimize(); - proc.WaitOnExit(); - end; - if (not res) or (proc.ExitCode < 0) then + tbTestMap.Enabled := False; + MapTestFile := newWAD; + MapTestProcess := proc; + end + else begin - MessageBox(0, 'FIXME', - PChar(_lc[I_MSG_EXEC_ERROR]), - MB_OK or MB_ICONERROR); + MessageBox(0, 'FIXME', PChar(_lc[I_MSG_EXEC_ERROR]), MB_OK or MB_ICONERROR); + SysUtils.DeleteFile(newWAD); + proc.Free(); end; - proc.Free(); - - SysUtils.DeleteFile(newWAD); - Application.Restore(); end; procedure TMainForm.sbVerticalScroll(Sender: TObject;