Index: oup/current/Tools/MetaEditor.pas
===================================================================
--- oup/current/Tools/MetaEditor.pas	(revision 239)
+++ oup/current/Tools/MetaEditor.pas	(revision 240)
@@ -138,19 +138,34 @@
 
 
+
 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
-  begin
-    TFile(data.Field).InitEditor;
-    if Assigned(TFile(data.Field).Editor) 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
+    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;
@@ -167,5 +182,4 @@
   if data.Field is TFile then
   begin
-    TFile(data.Field).InitEditor;
     if Assigned(TFile(data.Field).Editor) then
       Allowed := not TFile(data.Field).Opened
