--- oup/current/Main.pas 2007/03/28 01:12:22 129 +++ oup/current/Main.pas 2007/06/04 22:07:29 209 @@ -6,10 +6,7 @@ uses MPHexEditor, ToolWin, ImgList, Tabs, MDITab, TB2Item, TB2Dock, TB2Toolbar, TB2MDI, OneInst, Data, TypeDefs, ConnectionManager, -// Functions, Exporters, DataStructures, - Functions, - Settings, {Helper_LevelDB, } - Template, + Functions, Settings, Template, RawEdit, BinEdit, Extractor, Preview, TxmpReplace; type @@ -138,7 +135,7 @@ var implementation uses - LevelDB; + LevelDB, MetaEditor; {$R *.dfm} @@ -257,6 +254,10 @@ begin end else begin + ShowMessage('Warning!' + #13#10 + + 'It seems like this is the first time you OUP.' + #13#10 + + 'I do not take any responsibility for messed up data files' + #13+#10 + + 'Do not forget to make backup copies of your *.dat/*.raw/*.sep files!'); AppSettings.DatPath := ExtractFilepath(Application.EXEname); AppSettings.ExtractPath := ExtractFilepath(Application.EXEname) + '\extract'; AppSettings.CharSet := DEFAULT_CHARSET; @@ -413,6 +414,7 @@ begin tb_rawedit.Enabled := active; tb_txmpreplacer.Enabled := active; tb_extractor.Enabled := active; + tb_meta.Enabled := active; // tb_compare.Enabled := active; // tb_structure.Enabled := active; end; @@ -550,15 +552,14 @@ end; {####################################} procedure TForm_Main.menu_createdbClick(Sender: TObject); begin - ShowMessage('Not yet usable'); -{ +// ShowMessage('Not yet usable'); + opend.Filter := 'Oni-Dat-Files|*.dat'; saved.Filter := 'OUP-Level-DB (*.oldb)|*.oldb'; saved.DefaultExt := 'oldb'; if opend.Execute then if saved.Execute then Form_LevelDB.CreateDatabase(opend.FileName, saved.FileName); -} end; @@ -572,7 +573,6 @@ begin if opend.Execute then if saved.Execute then Form_LevelDB.CreateLevel(opend.FileName, saved.FileName); - end; @@ -605,8 +605,33 @@ begin end; procedure TForm_Main.menu_metaClick(Sender: TObject); +var + toolform: TForm_Meta; + i: Integer; + tag: Integer; + iconindex: Integer; begin - ShowMessage('TBD'); + tag := 1; + if MDIChildCount > 0 then + for i := 0 to MDIChildCount - 1 do + if MDIChildren[i].Tag >= tag then + tag := MDIChildren[i].Tag + 1; + + iconindex := -1; + + toolform := nil; + + toolform := TForm_Meta.Create(Self); + toolform.Caption := 'MetaEditor' + ' ' + IntToStr(tag) + ' '; + iconindex := 11; + + if Assigned(toolform) then + begin + toolform.Name := 'meta' + IntToStr(tag); + toolform.Tag := tag; + MDITab.AddTab(TForm(toolform), iconindex); + toolform.Caption := AnsiReplaceStr(toolform.Caption, ' ', ''); + end; end; procedure TForm_Main.menu_filecompareClick(Sender: TObject); @@ -728,11 +753,26 @@ end; function TForm_Main.open_child(window_context: String; connection, fileid: Integer): TForm_ToolTemplate; +type + TTemplate = class of TForm_ToolTemplate; + TTool = record + name: String; + icon: Integer; + caption: String; + classt: TTemplate; + end; +const + Tools: array[0..4] of TTool = ( + (name: 'binedit'; icon: 5; caption: 'Binary .dat-Editor'; classt: TForm_BinEdit), + (name: 'extractor'; icon: 8; caption: 'Extractor'; classt: TForm_Extractor), + (name: 'preview'; icon: 4; caption: 'Preview-Window'; classt: TForm_Preview), + (name: 'rawedit'; icon: 6; caption: 'Binary .raw-Editor'; classt: TForm_RawEdit), + (name: 'txmpreplace'; icon: 7; caption: 'TXMP Replacer'; classt: TForm_TxmpReplace) + ); var toolform: TForm_ToolTemplate; i: Integer; tag: Integer; - caption_end: String; iconindex: Integer; begin Result := nil; @@ -744,39 +784,19 @@ begin tag := MDIChildren[i].Tag + 1; iconindex := -1; - caption_end := IntToStr(tag) + ' '; toolform := nil; - if window_context = 'binedit' then - begin - toolform := TForm_BinEdit.Create(Self); - toolform.Caption := 'Binary .dat-Editor ' + caption_end; - iconindex := 5; - end; - if window_context = 'extractor' then - begin - toolform := TForm_Extractor.Create(Self); - toolform.Caption := 'Extractor ' + caption_end; - iconindex := 8; - end; - if window_context = 'preview' then - begin - toolform := TForm_Preview.Create(Self); - toolform.Caption := 'Preview-Window ' + caption_end; - iconindex := 4; - end; - if window_context = 'rawedit' then - begin - toolform := TForm_RawEdit.Create(Self); - toolform.Caption := 'Binary .raw-Editor ' + caption_end; - iconindex := 6; - end; - if window_context = 'txmpreplace' then - begin - toolform := TForm_TxmpReplace.Create(Self); - toolform.Caption := 'TXMP Replacer ' + caption_end; - iconindex := 7; + for i := 0 to High(Tools) do + if Tools[i].name = window_context then + Break; + if i < Length(Tools) then + begin + toolform := TTemplate(Tools[i].classt).Create(Self); + toolform.Caption := Tools[i].caption + ' ' + IntToStr(tag) + ' '; + iconindex := Tools[i].icon; + end else begin + ShowMessage('WindowContext not found!'); end; if Assigned(toolform) then