X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Feditor%2Ff_main.pas;h=2216151be62ac733692ba26562c2dfebd06c9a35;hb=66487b9264a791df057975695339448eb3d7ba2f;hp=9a976f65c8ec3d453ad6af3a3b1258005105ddc2;hpb=212386359ea0af4e0a861f9bf92c45a1516ac87c;p=d2df-editor.git diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas index 9a976f6..2216151 100644 --- a/src/editor/f_main.pas +++ b/src/editor/f_main.pas @@ -1,6 +1,6 @@ unit f_main; -{$MODE Delphi} +{$INCLUDE ../shared/a_modes.inc} interface @@ -8,7 +8,7 @@ uses LCLIntf, LCLType, LMessages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ImgList, StdCtrls, Buttons, ComCtrls, ValEdit, Types, ToolWin, Menus, ExtCtrls, - CheckLst, Grids, OpenGLContext; + CheckLst, Grids, OpenGLContext, utils; type @@ -1795,6 +1795,7 @@ procedure FullClear(); begin RemoveSelectFromObjects(); ClearMap(); + LoadSky(gMapInfo.SkyName); UndoBuffer := nil; slInvalidTextures.Clear(); MapCheckForm.lbErrorList.Clear(); @@ -1880,6 +1881,7 @@ var ok: Boolean; FileName: String; ResourceName: String; + UResourceName: String; FullResourceName: String; SectionName: String; Data: Pointer; @@ -1911,14 +1913,15 @@ begin end; ok := True; + UResourceName := win2utf(ResourceName); // Есть ли уже такая текстура: for a := 0 to MainForm.lbTextureList.Items.Count-1 do - if ResourceName = MainForm.lbTextureList.Items[a] then + if UResourceName = MainForm.lbTextureList.Items[a] then begin if not silent then ErrorMessageBox(Format(_lc[I_MSG_TEXTURE_ALREADY], - [ResourceName])); + [UResourceName])); ok := False; end; @@ -1927,7 +1930,7 @@ begin begin if not silent then ErrorMessageBox(Format(_lc[I_MSG_RES_NAME_64], - [ResourceName])); + [UResourceName])); ok := False; end; @@ -1936,7 +1939,7 @@ begin a := -1; if aWAD = _lc[I_WAD_SPECIAL_TEXS] then begin - a := MainForm.lbTextureList.Items.Add(ResourceName); + a := MainForm.lbTextureList.Items.Add(UResourceName); if not silent then SelectTexture(a); Result := True; @@ -1950,12 +1953,12 @@ begin GetFrame(FullResourceName, Data, FrameLen, Width, Height); if g_CreateTextureMemorySize(Data, FrameLen, ResourceName, 0, 0, Width, Height, 1) then - a := MainForm.lbTextureList.Items.Add(ResourceName); + a := MainForm.lbTextureList.Items.Add(UResourceName); end else // Обычная текстура begin if g_CreateTextureWAD(ResourceName, FullResourceName) then - a := MainForm.lbTextureList.Items.Add(ResourceName); + a := MainForm.lbTextureList.Items.Add(UResourceName); end; if (a > -1) and (not silent) then SelectTexture(a); @@ -2210,7 +2213,7 @@ end; function SelectedTexture(): String; begin if MainForm.lbTextureList.ItemIndex <> -1 then - Result := MainForm.lbTextureList.Items[MainForm.lbTextureList.ItemIndex] + Result := utf2win(MainForm.lbTextureList.Items[MainForm.lbTextureList.ItemIndex]) else Result := ''; end; @@ -2218,7 +2221,7 @@ end; function IsSpecialTextureSel(): Boolean; begin Result := (MainForm.lbTextureList.ItemIndex <> -1) and - IsSpecialTexture(MainForm.lbTextureList.Items[MainForm.lbTextureList.ItemIndex]); + IsSpecialTexture(utf2win(MainForm.lbTextureList.Items[MainForm.lbTextureList.ItemIndex])); end; function CopyBufferToString(var CopyBuf: TCopyRecArray): String; @@ -2595,8 +2598,16 @@ begin OpenedMap := ''; OpenedWAD := ''; - config := TConfig.CreateFile(EditorDir+'/Editor.cfg'); + config := TConfig.CreateFile(EditorDir+'Editor.cfg'); + if config.ReadInt('Editor', 'XPos', -1) = -1 then + Position := poDesktopCenter + else begin + Left := config.ReadInt('Editor', 'XPos', Left); + Top := config.ReadInt('Editor', 'YPos', Top); + Width := config.ReadInt('Editor', 'Width', Width); + Height := config.ReadInt('Editor', 'Height', Height); + end; if config.ReadBool('Editor', 'Maximize', False) then WindowState := wsMaximized; ShowMap := config.ReadBool('Editor', 'Minimap', False); @@ -4020,8 +4031,15 @@ var config: TConfig; i: Integer; begin - config := TConfig.CreateFile(EditorDir+'/Editor.cfg'); + config := TConfig.CreateFile(EditorDir+'Editor.cfg'); + if WindowState <> wsMaximized then + begin + config.WriteInt('Editor', 'XPos', Left); + config.WriteInt('Editor', 'YPos', Top); + config.WriteInt('Editor', 'Width', Width); + config.WriteInt('Editor', 'Height', Height); + end; config.WriteBool('Editor', 'Maximize', WindowState = wsMaximized); config.WriteBool('Editor', 'Minimap', ShowMap); config.WriteInt('Editor', 'PanelProps', PanelProps.ClientWidth); @@ -4043,7 +4061,7 @@ begin config.WriteStr('RecentFiles', IntToStr(i+1), ''); RecentFiles.Free(); - config.SaveFile(EditorDir+'/Editor.cfg'); + config.SaveFile(EditorDir+'Editor.cfg'); config.Free(); slInvalidTextures.Free; @@ -4286,11 +4304,11 @@ begin begin AddSoundForm.OKFunction := nil; AddSoundForm.lbResourcesList.MultiSelect := False; - AddSoundForm.SetResource := vleObjectProperty.Cells[1, i]; + AddSoundForm.SetResource := utf2win(vleObjectProperty.Cells[1, i]); if (AddSoundForm.ShowModal() = mrOk) then begin - vleObjectProperty.Cells[1, i] := AddSoundForm.ResourceName; + vleObjectProperty.Cells[1, i] := win2utf(AddSoundForm.ResourceName); bApplyProperty.Click(); end; Exit; @@ -5281,8 +5299,8 @@ begin begin Panel^.TextureID := SpecialTextureID(Panel^.TextureName); with MainForm.lbTextureList.Items do - if IndexOf(Panel^.TextureName) = -1 then - Add(Panel^.TextureName); + if IndexOf(win2utf(Panel^.TextureName)) = -1 then + Add(win2utf(Panel^.TextureName)); end; end; @@ -5443,11 +5461,11 @@ begin begin // Выбор файла звука/музыки: AddSoundForm.OKFunction := nil; AddSoundForm.lbResourcesList.MultiSelect := False; - AddSoundForm.SetResource := vleObjectProperty.Values[Key]; + AddSoundForm.SetResource := utf2win(vleObjectProperty.Values[Key]); if (AddSoundForm.ShowModal() = mrOk) then begin - vleObjectProperty.Values[Key] := AddSoundForm.ResourceName; + vleObjectProperty.Values[Key] := utf2win(AddSoundForm.ResourceName); bApplyProperty.Click(); end; end @@ -5751,9 +5769,9 @@ begin else gLanguage := LANGUAGE_RUSSIAN; end; - config := TConfig.CreateFile(EditorDir+'/Editor.cfg'); + config := TConfig.CreateFile(EditorDir+'Editor.cfg'); config.WriteStr('Editor', 'Language', gLanguage); - config.SaveFile(EditorDir+'/Editor.cfg'); + config.SaveFile(EditorDir+'Editor.cfg'); config.Free(); end; @@ -6057,7 +6075,9 @@ begin e_InitGL(); e_WriteLog('Loading data', MSG_NOTIFY); LoadStdFont('STDTXT', 'STDFONT', gEditorFont); + e_WriteLog('Loading more data', MSG_NOTIFY); LoadData(); + e_WriteLog('Loading even more data', MSG_NOTIFY); gDataLoaded := True; MainForm.FormResize(nil); end; @@ -6091,6 +6111,8 @@ begin PreviewMode := not PreviewMode; (Sender as TMenuItem).Checked := PreviewMode; + + FormResize(Self); end; procedure TMainForm.miLayer1Click(Sender: TObject); @@ -6226,7 +6248,6 @@ var cmd, mapWAD, mapToRun: String; opt: LongWord; time: Integer; - lpMsgBuf: PChar; begin // Сохраняем временную карту: time := 0;