--- oup/current/Tools/MetaEditor.pas 2007/07/14 16:50:55 238 +++ oup/current/Tools/MetaEditor.pas 2007/07/14 23:12:26 240 @@ -51,6 +51,7 @@ type Column: TColumnIndex; const P: TPoint; var AskParent: Boolean; var PopupMenu: TPopupMenu); procedure vst_setRootClick(Sender: TObject); + procedure vst_newRootClick(Sender: TObject); private root: TTreeElement; procedure NewCon(ID: Integer); @@ -61,7 +62,7 @@ type implementation {$R *.dfm} -uses _MetaManager, _MetaTypes, ConnectionManager, Data, _FileTypes; +uses _MetaManager, _MetaTypes, ConnectionManager, Data, _FileTypes, Main; type PNodeData = ^TNodeData; @@ -136,21 +137,36 @@ begin end; + procedure TForm_Meta.VSTFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex); var data: PNodeData; + ffile: TFile; +//******************************************************************* + fs: TFileStream; +//******************************************************************* begin data := Sender.GetNodeData(Node); + ffile := nil; if data.Field is TFile then + ffile := TFile(data.Field); + if data.Field is TDatLink then + if Assigned(TDatLink(data.Field).TargetFile) then + ffile := TFile(TDatLink(data.Field).TargetFile); + if Assigned(ffile) then begin - TFile(data.Field).InitEditor; - if Assigned(TFile(data.Field).Editor) then + if Assigned(ffile.Editor) then begin - TFile(data.Field).Editor.Align := alClient; - tab_meta.InsertControl(TFile(data.Field).Editor); - TFile(data.Field).Opened := True; - end; + ffile.Editor.Align := alClient; + tab_meta.InsertControl(ffile.Editor); + ffile.Opened := True; + end; +//******************************************************************* + fs := TFileStream.Create('C:\Spiele\Oni\GameDataFolder\tests\'+IntToStr(ffile.FileInfo.ID)+'_recreated.hex', fmCreate); + ffile.ReCreateFile(fs); + fs.Free; +//******************************************************************* end; end; @@ -165,7 +181,6 @@ begin data := Sender.GetNodeData(NewNode); if data.Field is TFile then begin - TFile(data.Field).InitEditor; if Assigned(TFile(data.Field).Editor) then Allowed := not TFile(data.Field).Opened else @@ -271,6 +286,19 @@ begin end; end; +procedure TForm_Meta.vst_newRootClick(Sender: TObject); +var + data: PNodeData; + form: TForm_BaseTemplate; +begin + inherited; + data := VST.GetNodeData(VST.FocusedNode); + form := nil; + form := Form_Main.open_child('meta'); + if form is TForm_Meta then + TForm_Meta(form).SetRoot(data.Field); +end; + procedure TForm_Meta.vst_setRootClick(Sender: TObject); var data: PNodeData;