X-Git-Url: http://deadsoftware.ru/gitweb?p=d2df-editor.git;a=blobdiff_plain;f=src%2Feditor%2Ff_savemap.pas;h=a78e6009a44a3dd6d6c165eadb50f7a7c3299155;hp=e57fb791d4887b01b223c56fbdf76f60f597a429;hb=952e5c9c629e44e260c55f2756d72a199d8d9052;hpb=233712fffbff81a4df04b7b026014e1e9981e9c1 diff --git a/src/editor/f_savemap.pas b/src/editor/f_savemap.pas index e57fb79..a78e600 100644 --- a/src/editor/f_savemap.pas +++ b/src/editor/f_savemap.pas @@ -17,7 +17,7 @@ type Panel2: TPanel; eMapName: TEdit; - procedure GetMaps(FileName: String; placeName: Boolean); + procedure GetMaps(FileName: String; placeName: Boolean; ArchiveFormat: String); procedure FormActivate(Sender: TObject); procedure eMapNameChange(Sender: TObject); procedure lbMapListClick(Sender: TObject); @@ -84,9 +84,9 @@ begin SaveMapForm.ModalResult := mrCancel; end; -procedure TSaveMapForm.GetMaps(FileName: String; placeName: Boolean); +procedure TSaveMapForm.GetMaps(FileName: String; placeName: Boolean; ArchiveFormat: String); var - WAD: TWADEditor_1; + WAD: TWADEditor; a, max_num, j: Integer; ResList: SArray; Data: Pointer; @@ -98,8 +98,21 @@ begin lbMapList.Items.Clear(); max_num := 1; - WAD := TWADEditor_1.Create(); - WAD.ReadFile(FileName); + if ArchiveFormat = '' then + begin + // format not specified -> try open automatically and append to it (or create new default) + WAD := gWADEditorFactory.OpenFile(FileName); + if WAD = nil then + WAD := gWADEditorFactory.CreateDefaultEditor(); + end + else + begin + // format specified -> appned using exactly this format (overwrite if not compatible) + WAD := gWADEditorFactory.CreateEditor(ArchiveFormat); + if WAD.ReadFile(FileName) = False then + WAD.FreeWAD(); + end; + ResList := WAD.GetResourcesList(''); if ResList <> nil then