Index: oup/current/FileClasses/AKEV.pas
===================================================================
--- oup/current/FileClasses/AKEV.pas	(revision 246)
+++ oup/current/FileClasses/AKEV.pas	(revision 248)
@@ -7,5 +7,5 @@
 
 type
-  TFile_AKEV = class(TFile)
+  TFile_AKEV = class(TResource)
     public
       procedure InitDataFields; override;
@@ -23,5 +23,5 @@
   with FDataFields do
   begin
-    AddField(TFileID, 'FileID', '', []);
+    AddField(TResourceID, 'FileID', '', []);
     AddField(TLevelID, 'LevelID', '', []);
 
Index: oup/current/FileClasses/AKVA.pas
===================================================================
--- oup/current/FileClasses/AKVA.pas	(revision 246)
+++ oup/current/FileClasses/AKVA.pas	(revision 248)
@@ -7,5 +7,5 @@
 
 type
-  TFile_AKVA = class(TFile)
+  TFile_AKVA = class(TResource)
     public
       procedure InitDataFields; override;
@@ -23,5 +23,5 @@
   with FDataFields do
   begin
-    AddField(TFileID, 'FileID', '', []);
+    AddField(TResourceID, 'FileID', '', []);
     AddField(TLevelID, 'LevelID', '', []);
 
Index: oup/current/FileClasses/BINA.pas
===================================================================
--- oup/current/FileClasses/BINA.pas	(revision 246)
+++ oup/current/FileClasses/BINA.pas	(revision 248)
@@ -7,5 +7,5 @@
 
 type
-  TFile_BINA = class(TFile)
+  TFile_BINA = class(TResource)
       procedure SetOpened(Opened: Boolean); override;
     private
@@ -33,5 +33,5 @@
   with FDataFields do
   begin
-    AddField(TFileID, 'FileID', '', []);
+    AddField(TResourceID, 'FileID', '', []);
     AddField(TLevelID, 'LevelID', '', []);
 
Index: oup/current/FileClasses/SUBT.pas
===================================================================
--- oup/current/FileClasses/SUBT.pas	(revision 246)
+++ oup/current/FileClasses/SUBT.pas	(revision 248)
@@ -7,5 +7,5 @@
 
 type
-  TFile_SUBT = class(TFile)
+  TFile_SUBT = class(TResource)
       procedure SetOpened(Opened: Boolean); override;
     private
@@ -31,5 +31,5 @@
   with FDataFields do
   begin
-    AddField(TFileID, 'FileID', '', []);
+    AddField(TResourceID, 'FileID', '', []);
     AddField(TLevelID, 'LevelID', '', []);
     AddField(TUnused, 'Unused data', '', [16]);
Index: oup/current/FileClasses/TXAN.pas
===================================================================
--- oup/current/FileClasses/TXAN.pas	(revision 246)
+++ oup/current/FileClasses/TXAN.pas	(revision 248)
@@ -7,5 +7,5 @@
 
 type
-  TFile_TXAN = class(TFile)
+  TFile_TXAN = class(TResource)
     public
       procedure InitDataFields; override;
@@ -23,5 +23,5 @@
   with FDataFields do
   begin
-    AddField(TFileID, 'FileID', '', []);
+    AddField(TResourceID, 'FileID', '', []);
 
     AddField(TLevelID, 'LevelID', '', []);
Index: oup/current/FileClasses/TXMP.pas
===================================================================
--- oup/current/FileClasses/TXMP.pas	(revision 246)
+++ oup/current/FileClasses/TXMP.pas	(revision 248)
@@ -7,5 +7,5 @@
 
 type
-  TFile_TXMP = class(TFile)
+  TFile_TXMP = class(TResource)
     public
       procedure InitDataFields; override;
@@ -27,5 +27,5 @@
   with FDataFields do
   begin
-    AddField(TFileID, 'FileID', '', []);
+    AddField(TResourceID, 'FileID', '', []);
     AddField(TLevelID, 'LevelID', '', []);
 
Index: oup/current/FileClasses/_DataTypes.pas
===================================================================
--- oup/current/FileClasses/_DataTypes.pas	(revision 246)
+++ oup/current/FileClasses/_DataTypes.pas	(revision 248)
@@ -121,5 +121,5 @@
 
 
-  TFileID = class(TDataField)
+  TResourceID = class(TDataField)
     protected
       FFileID: Integer;
@@ -257,5 +257,5 @@
     for i := 0 to High(ExtraArgs) do
       FExtraArgs[i] := ExtraArgs[i];
-  FConnectionID := TFile(ParentFile).ConnectionID;
+  FConnectionID := TResource(ParentFile).ConnectionID;
 end;
 
@@ -305,5 +305,5 @@
   i: Integer;
 begin
-  fstream := TFile(FParentFile).FileStream;
+  fstream := TResource(FParentFile).FileStream;
   fstream.Seek(FOffset, soFromBeginning);
   SetLength(FString, FDataLength); 
@@ -351,5 +351,5 @@
   fstream: TMemoryStream;
 begin
-  fstream := TFile(FParentFile).FileStream;
+  fstream := TResource(FParentFile).FileStream;
   fstream.Seek(FOffset, soFromBeginning);
   fstream.Read(FInt, FDataLength);
@@ -428,5 +428,5 @@
   if FCounterSize > 0 then
   begin
-    fstream := TFile(FParentFile).FileStream;
+    fstream := TResource(FParentFile).FileStream;
     fstream.Seek(Offset, soFromBeginning);
     FBlockCount := 0;
@@ -463,5 +463,5 @@
   if FCounterSize > 0 then
   begin
-    fstream := TFile(FParentFile).FileStream;
+    fstream := TResource(FParentFile).FileStream;
     fstream.Seek(Offset, soFromBeginning);
     fstream.Write(FBlockCount, FCounterSize);
@@ -622,5 +622,5 @@
   fstream: TMemoryStream;
 begin
-  fstream := TFile(FParentFile).FileStream;
+  fstream := TResource(FParentFile).FileStream;
   fstream.Seek(FOffset, soFromBeginning);
   fstream.Read(FLevelID, 4);
@@ -640,5 +640,5 @@
 { TFileID }
 
-constructor TFileID.Create(ParentFile: TObject; ParentBlock: TContainer;
+constructor TResourceID.Create(ParentFile: TObject; ParentBlock: TContainer;
     Name, Description: String; ExtraArgs: array of const);
 begin
@@ -649,14 +649,14 @@
 end;
 
-function TFileID.GetValueAsString: String;
+function TResourceID.GetValueAsString: String;
 begin
   Result := IntToStr(FFileID);
 end;
 
-procedure TFileID.Update(Offset, Length: Integer);
+procedure TResourceID.Update(Offset, Length: Integer);
 var
   fstream: TMemoryStream;
 begin
-  fstream := TFile(FParentFile).FileStream;
+  fstream := TResource(FParentFile).FileStream;
   fstream.Seek(FOffset, soFromBeginning);
   fstream.Read(FFileID, 4);
@@ -667,5 +667,5 @@
 end;
 
-procedure TFileID.WriteData(stream: TStream);
+procedure TResourceID.WriteData(stream: TStream);
 var
   tempi: Integer;
@@ -731,5 +731,5 @@
   fstream: TMemoryStream;
 begin
-  fstream := TFile(FParentFile).FileStream;
+  fstream := TResource(FParentFile).FileStream;
   fstream.Seek(FOffset, soFromBeginning);
   fstream.Read(FFileID, 4);
@@ -781,5 +781,5 @@
   fstream: TMemoryStream;
 begin
-  fstream := TFile(FParentFile).FileStream;
+  fstream := TResource(FParentFile).FileStream;
   fstream.Seek(FOffset, soFromBeginning);
   fstream.Read(FRawAddress, 4);
@@ -868,5 +868,5 @@
   fstream: TMemoryStream;
 begin
-  fstream := TFile(FParentFile).FileStream;
+  fstream := TResource(FParentFile).FileStream;
   fstream.Seek(FOffset, soFromBeginning);
   fstream.Read(FBits, FDataLength);
@@ -900,5 +900,5 @@
   fstream: TMemoryStream;
 begin
-  fstream := TFile(FParentFile).FileStream;
+  fstream := TResource(FParentFile).FileStream;
   fstream.Seek(FOffset, soFromBeginning);
   fstream.Read(FFloat, FDataLength);
Index: oup/current/FileClasses/_EmptyFile.pas
===================================================================
--- oup/current/FileClasses/_EmptyFile.pas	(revision 246)
+++ oup/current/FileClasses/_EmptyFile.pas	(revision 248)
@@ -7,5 +7,5 @@
 
 type
-  TFile_Empty = class(TFile)
+  TFile_Empty = class(TResource)
   end;
 
Index: oup/current/FileClasses/_FileTypes.pas
===================================================================
--- oup/current/FileClasses/_FileTypes.pas	(revision 246)
+++ oup/current/FileClasses/_FileTypes.pas	(revision 248)
@@ -13,5 +13,5 @@
   end;
 
-  TFile = class(TTreeElement)
+  TResource = class(TTreeElement)
     protected
       FFileInfo: TFileInfo;
@@ -21,4 +21,5 @@
       FCached: Boolean;
       FChanged: Boolean;
+      FReplaced: Boolean;
 
       FDataFields: TBlock;
@@ -67,6 +68,6 @@
   end;
 
-
-  TFileType = class of TFile;
+type
+  TFileType = class of TResource;
 
 
@@ -80,5 +81,5 @@
 { TFileType }
 
-procedure TFile.CacheFile;
+procedure TResource.CacheFile;
 begin
   if not Assigned(FFileStream) then
@@ -90,5 +91,5 @@
 
 
-procedure TFile.CacheRawFile(Offset: Integer);
+procedure TResource.CacheRawFile(Offset: Integer);
 var
   i: Integer;
@@ -107,5 +108,5 @@
 end;
 
-procedure TFile.CacheAllRawFiles;
+procedure TResource.CacheAllRawFiles;
 var
   i: Integer;
@@ -117,5 +118,5 @@
 
 
-procedure TFile.DiscardFileCache;
+procedure TResource.DiscardFileCache;
 begin
   if Assigned(FFileStream) then
@@ -124,5 +125,5 @@
 end;
 
-procedure TFile.DiscardRawCache(Offset: Integer);
+procedure TResource.DiscardRawCache(Offset: Integer);
 var
   i: Integer;
@@ -139,5 +140,5 @@
 end;
 
-procedure TFile.DiscardAllRawCaches;
+procedure TResource.DiscardAllRawCaches;
 var
   i: Integer;
@@ -147,15 +148,15 @@
 end;
 
-procedure TFile.StoreFileCache;
+procedure TResource.StoreFileCache;
 begin
   Exit;
 end;
 
-procedure TFile.StoreRawCache(Offset: Integer);
+procedure TResource.StoreRawCache(Offset: Integer);
 begin
   Exit;
 end;
 
-procedure TFile.StoreAllRawCaches;
+procedure TResource.StoreAllRawCaches;
 var
   i: Integer;
@@ -169,5 +170,5 @@
 
 
-procedure TFile.SetOpened(Opened: Boolean);
+procedure TResource.SetOpened(Opened: Boolean);
 begin
   FOpened := Opened;
@@ -175,5 +176,5 @@
 
 
-constructor TFile.Create(ConnectionID, FileID: Integer);
+constructor TResource.Create(ConnectionID, FileID: Integer);
 var
   rawlist: TRawDataList;
@@ -199,5 +200,5 @@
 
 
-procedure TFile.Free;
+procedure TResource.Free;
 begin
   FDataFields.Free;
@@ -205,5 +206,5 @@
 
 
-function TFile.GetFieldByOffset(Offset: Integer): TDataField;
+function TResource.GetFieldByOffset(Offset: Integer): TDataField;
 begin
   Result := FDataFields.FieldByOffset[Offset];
@@ -211,5 +212,5 @@
 
 
-function TFile.GetRawCacheID(Offset: Integer): Integer;
+function TResource.GetRawCacheID(Offset: Integer): Integer;
 var
   i: Integer;
@@ -221,10 +222,10 @@
 end;
 
-function TFile.GetType: String;
+function TResource.GetType: String;
 begin
   Result := FFileInfo.Extension;
 end;
 
-function TFile.GetCaption: String;
+function TResource.GetCaption: String;
 begin
   Result := FFileInfo.Name;
@@ -234,10 +235,10 @@
 end;
 
-function TFile.GetChild(ID: Integer): TTreeElement;
+function TResource.GetChild(ID: Integer): TTreeElement;
 begin
   Result := FDataFields.Child[ID];
 end;
 
-function TFile.GetChildCount: Integer;
+function TResource.GetChildCount: Integer;
 begin
   if FDataFields <> nil then
@@ -248,5 +249,5 @@
 
 
-function TFile.GetEditor: TFrame;
+function TResource.GetEditor: TFrame;
 begin
   if not Assigned(FEditor) then
@@ -256,5 +257,5 @@
 
 
-procedure TFile.InitDataFields;
+procedure TResource.InitDataFields;
 begin
   if Assigned(FDataFields) then
@@ -265,5 +266,5 @@
 
 
-procedure TFile.InitEditor;
+procedure TResource.InitEditor;
 begin
   Exit;
@@ -274,5 +275,5 @@
 //*********************************************************
 //*********************************************************
-procedure TFile.ReCreateFile(fs: TStream);
+procedure TResource.ReCreateFile(fs: TStream);
 const
   temp0: array[0..31] of Byte =
Index: oup/current/FileClasses/_MetaManager.pas
===================================================================
--- oup/current/FileClasses/_MetaManager.pas	(revision 246)
+++ oup/current/FileClasses/_MetaManager.pas	(revision 248)
@@ -7,10 +7,10 @@
   TMetaManager = class
     protected
-      FFiles: array of TFile;
+      FFiles: array of TResource;
       FRoot: TExtensions;
       FConnectionID: Integer;
       FDataAccess: TObject;
       function GetFileCount: Integer;
-      function GetFileById(Id: Integer): TFile;
+      function GetFileById(Id: Integer): TResource;
     private
     public
@@ -21,5 +21,5 @@
       property Root: TExtensions read FRoot;
       property FileCount: Integer read GetFileCount;
-      property FileById[Id: Integer]: TFile read GetFileById;
+      property FileById[Id: Integer]: TResource read GetFileById;
   end;
 
@@ -41,5 +41,5 @@
 
 
-function TMetaManager.GetFileById(Id: Integer): TFile;
+function TMetaManager.GetFileById(Id: Integer): TResource;
 begin
   InitFile(Id);
@@ -64,13 +64,13 @@
       if finfo.Size > 0 then
       begin
-        for typei := 0 to High(FileDescs) do
+        for typei := 0 to High(ResourceDescs) do
         begin
-          if FileDescs[typei].ext = finfo.Extension then
+          if ResourceDescs[typei].ext = finfo.Extension then
           begin
-            FFiles[id] := TFileClass(FileDescs[typei].ftype).Create(FConnectionID, id);
+            FFiles[id] := TResourceClass(ResourceDescs[typei].ftype).Create(FConnectionID, id);
             Break;
           end;
         end;
-        if typei > High(FileDescs) then
+        if typei > High(ResourceDescs) then
           FFiles[id] := TFile_Empty.Create(FConnectionID, id);
       end else
Index: oup/current/FileClasses/_MetaTypes.pas
===================================================================
--- oup/current/FileClasses/_MetaTypes.pas	(revision 246)
+++ oup/current/FileClasses/_MetaTypes.pas	(revision 248)
@@ -18,5 +18,5 @@
 type
   TTreeElement = _TreeElement.TTreeElement;
-  TFile = _FileTypes.TFile;
+  TResource = _FileTypes.TResource;
   TFile_Empty = _EmptyFile.TFile_Empty;
   TExtension = _Extensions.TExtension;
@@ -28,5 +28,5 @@
   TArray = _DataTypes.TArray;
 
-  TFileID = _DataTypes.TFileID;
+  TResourceID = _DataTypes.TResourceID;
   TLevelID = _DataTypes.TLevelID;
   TInt = _DataTypes.TInt;
@@ -39,12 +39,12 @@
   TUnused = _DataTypes.TUnused;
 
-  TFileClass = class of TFile;
-  TFileDesc = record
+  TResourceClass = class of TResource;
+  TResourceDesc = record
     ext: String;
-    ftype: TFileClass;
+    ftype: TResourceClass;
   end;
 
 const
-  FileDescs: array[0..5] of TFileDesc = (
+  ResourceDescs: array[0..5] of TResourceDesc = (
     (ext: 'AKEV'; ftype: TFile_AKEV),
     (ext: 'AKVA'; ftype: TFile_AKVA),
