X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Feditor%2Ff_main.pas;h=ef9e19d2ee9c59c7ffd0bdeae5e12aedfa9221cc;hb=71ef827e8608f2e426111ff0ddfb7019beba0e65;hp=e470131554b89011bafbc09e76c5936672eb5130;hpb=b4fac8bc01cf16c033ea0e66c16eabe919c86f86;p=d2df-editor.git diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas index e470131..ef9e19d 100644 --- a/src/editor/f_main.pas +++ b/src/editor/f_main.pas @@ -1909,7 +1909,7 @@ begin else begin // Внешний WAD FileName := EditorDir+'wads/'+aWAD; - ResourceName := aWAD+':'+SectionName+'\'+aTex; + ResourceName := utf2win(aWAD)+':'+SectionName+'\'+aTex; end; ok := True; @@ -2047,7 +2047,7 @@ begin lbTextureList.Sorted := True; lbTextureList.Sorted := False; - UpdateCaption(gMapInfo.Name, ExtractFileName(FileName), MapName); + UpdateCaption(win2utf(gMapInfo.Name), ExtractFileName(FileName), MapName); end; end; @@ -2501,6 +2501,7 @@ procedure TMainForm.aRecentFileExecute(Sender: TObject); var n, pw: Integer; s, fn: String; + b: Boolean; begin s := LowerCase((Sender as TMenuItem).Caption); Delete(s, Pos('&', s), 1); @@ -2512,17 +2513,31 @@ begin s := RecentFiles[n]; pw := Pos('.wad:\', LowerCase(s)); + b := False; if pw > 0 then begin // Map name included fn := Copy(s, 1, pw + 3); Delete(s, 1, pw + 5); if (FileExists(fn)) then + begin OpenMap(fn, s); + b := True; + end; end else // Only wad name if (FileExists(s)) then + begin OpenMap(s, ''); + b := True; + end; + + if (not b) and (MessageBox(0, PChar(_lc[I_MSG_DEL_RECENT_PROMT]), + PChar(_lc[I_MSG_DEL_RECENT]), MB_ICONQUESTION or MB_YESNO) = idYes) then + begin + RecentFiles.Delete(n); + RefreshRecentMenu(); + end; end; procedure TMainForm.aEditorOptionsExecute(Sender: TObject); @@ -4090,7 +4105,7 @@ begin while (Pos(':\', ResName) > 0) do Delete(ResName, 1, Pos(':\', ResName) + 1); - UpdateCaption(gMapInfo.Name, ExtractFileName(OpenedWAD), ResName); + UpdateCaption(win2utf(gMapInfo.Name), ExtractFileName(OpenedWAD), ResName); end; procedure TMainForm.aAboutExecute(Sender: TObject); @@ -6050,7 +6065,7 @@ begin gMapInfo.FileName := SaveDialog.FileName; gMapInfo.MapName := SaveMapForm.eMapName.Text; - UpdateCaption(gMapInfo.Name, ExtractFileName(gMapInfo.FileName), gMapInfo.MapName); + UpdateCaption(win2utf(gMapInfo.Name), ExtractFileName(gMapInfo.FileName), gMapInfo.MapName); end; procedure TMainForm.aSelectAllExecute(Sender: TObject); @@ -6273,22 +6288,33 @@ end; procedure TMainForm.miTestMapClick(Sender: TObject); var - cmd, mapWAD, mapToRun: String; + cmd, mapWAD, mapToRun, tempWAD: String; opt: LongWord; time: Integer; proc: TProcessUTF8; res: Boolean; begin + mapToRun := ''; + if OpenedMap <> '' then + begin + // Указываем текущую карту для теста: + g_ProcessResourceStr(OpenedMap, @mapWAD, nil, @mapToRun); + mapToRun := mapWAD + ':\' + mapToRun; + mapToRun := ExtractRelativePath(ExtractFilePath(TestD2dExe) + 'maps/', mapToRun); + end; // Сохраняем временную карту: time := 0; repeat mapWAD := ExtractFilePath(TestD2dExe) + Format('maps/temp%.4d.wad', [time]); Inc(time); until not FileExists(mapWAD); - mapToRun := mapWAD + ':\' + TEST_MAP_NAME; - SaveMap(mapToRun); + tempWAD := mapWAD + ':\' + TEST_MAP_NAME; + SaveMap(tempWAD); - mapToRun := ExtractRelativePath(ExtractFilePath(TestD2dExe) + 'maps/', mapToRun); + tempWAD := ExtractRelativePath(ExtractFilePath(TestD2dExe) + 'maps/', tempWAD); +// Если карта не была открыта, указываем временную в качестве текущей: + if mapToRun = '' then + mapToRun := tempWAD; // Опции игры: opt := 32 + 64; @@ -6304,7 +6330,8 @@ begin opt := opt + 16; // Составляем командную строку: - cmd := ' -map "' + mapToRun + '"'; + cmd := '-map "' + mapToRun + '"'; + cmd := cmd + ' -testmap "' + tempWAD + '"'; cmd := cmd + ' -gm ' + TestGameMode; cmd := cmd + ' -limt ' + TestLimTime; cmd := cmd + ' -lims ' + TestLimScore; @@ -6314,7 +6341,6 @@ begin cmd := cmd + ' --close'; cmd := cmd + ' --debug'; - cmd := cmd + ' --tempdelete'; // Запускаем: proc := TProcessUTF8.Create(nil);