Index: oup/current/Global/OniImgClass.pas
===================================================================
--- oup/current/Global/OniImgClass.pas	(revision 126)
+++ oup/current/Global/OniImgClass.pas	(revision 127)
@@ -618,4 +618,12 @@
       size := size + (x * y * bpp) div 8;
     until (x = minside) or (y = minside);
+    if FStoreType = 9 then
+    begin
+      repeat
+        x    := x div 2;
+        y    := y div 2;
+        size := size + (x * y * 16) div 8;
+      until (x = 1) or (y = 1);
+    end;
   end;
   Result := size;
Index: oup/current/Global/RawList.pas
===================================================================
--- oup/current/Global/RawList.pas	(revision 126)
+++ oup/current/Global/RawList.pas	(revision 127)
@@ -345,4 +345,12 @@
       datasize := datasize + (x * y * bpp) div 8;
     until (x = minside) or (y = minside);
+    if storetype = 9 then
+    begin
+      repeat
+        x    := x div 2;
+        y    := y div 2;
+        datasize := datasize + (x * y * 16) div 8;
+      until (x = 1) or (y = 1);
+    end;
   end;
 
Index: oup/current/Helper/LevelDB.pas
===================================================================
--- oup/current/Helper/LevelDB.pas	(revision 126)
+++ oup/current/Helper/LevelDB.pas	(revision 127)
@@ -1,62 +1,2 @@
-{$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}
-{$MINSTACKSIZE $00004000}
-{$MAXSTACKSIZE $00100000}
-{$IMAGEBASE $00400000}
-{$APPTYPE GUI}
-{$WARN SYMBOL_DEPRECATED ON}
-{$WARN SYMBOL_LIBRARY ON}
-{$WARN SYMBOL_PLATFORM ON}
-{$WARN SYMBOL_EXPERIMENTAL ON}
-{$WARN UNIT_LIBRARY ON}
-{$WARN UNIT_PLATFORM ON}
-{$WARN UNIT_DEPRECATED ON}
-{$WARN UNIT_EXPERIMENTAL ON}
-{$WARN HRESULT_COMPAT ON}
-{$WARN HIDING_MEMBER ON}
-{$WARN HIDDEN_VIRTUAL ON}
-{$WARN GARBAGE ON}
-{$WARN BOUNDS_ERROR ON}
-{$WARN ZERO_NIL_COMPAT ON}
-{$WARN STRING_CONST_TRUNCED ON}
-{$WARN FOR_LOOP_VAR_VARPAR ON}
-{$WARN TYPED_CONST_VARPAR ON}
-{$WARN ASG_TO_TYPED_CONST ON}
-{$WARN CASE_LABEL_RANGE ON}
-{$WARN FOR_VARIABLE ON}
-{$WARN CONSTRUCTING_ABSTRACT ON}
-{$WARN COMPARISON_FALSE ON}
-{$WARN COMPARISON_TRUE ON}
-{$WARN COMPARING_SIGNED_UNSIGNED ON}
-{$WARN COMBINING_SIGNED_UNSIGNED ON}
-{$WARN UNSUPPORTED_CONSTRUCT ON}
-{$WARN FILE_OPEN ON}
-{$WARN FILE_OPEN_UNITSRC ON}
-{$WARN BAD_GLOBAL_SYMBOL ON}
-{$WARN DUPLICATE_CTOR_DTOR ON}
-{$WARN INVALID_DIRECTIVE ON}
-{$WARN PACKAGE_NO_LINK ON}
-{$WARN PACKAGED_THREADVAR ON}
-{$WARN IMPLICIT_IMPORT ON}
-{$WARN HPPEMIT_IGNORED ON}
-{$WARN NO_RETVAL ON}
-{$WARN USE_BEFORE_DEF ON}
-{$WARN FOR_LOOP_VAR_UNDEF ON}
-{$WARN UNIT_NAME_MISMATCH ON}
-{$WARN NO_CFG_FILE_FOUND ON}
-{$WARN IMPLICIT_VARIANTS ON}
-{$WARN UNICODE_TO_LOCALE ON}
-{$WARN LOCALE_TO_UNICODE ON}
-{$WARN IMAGEBASE_MULTIPLE ON}
-{$WARN SUSPICIOUS_TYPECAST ON}
-{$WARN PRIVATE_PROPACCESSOR ON}
-{$WARN UNSAFE_TYPE OFF}
-{$WARN UNSAFE_CODE OFF}
-{$WARN UNSAFE_CAST OFF}
-{$WARN OPTION_TRUNCATED ON}
-{$WARN WIDECHAR_REDUCED ON}
-{$WARN DUPLICATES_IGNORED ON}
-{$WARN UNIT_INIT_SEQ ON}
-{$WARN LOCAL_PINVOKE ON}
-{$WARN MESSAGE_DIRECTIVE ON}
 unit LevelDB;
 interface
@@ -372,36 +312,14 @@
           begin
             RawFileStream := TMemoryStream.Create;
-            if UpperCase(fileinfo.Extension) = 'TXMP' then
+            Connection.LoadRawFile(FileID, RawLinks[i].SrcOffset, TStream(RawFileStream));
+            RawFileStream.Seek(0, soFromBeginning);
+            if RawLinks[i].LocSep then
             begin
-              DatFileStream.Seek($88, soFromBeginning);
-              DatFileStream.Read(tempb, 1);
-              if (tempb and $01) > 0 then
-              begin
-                OniImage.Load(Connection.ConnectionID, FileID);
-                if not OniImage.GetMipMappedImage(TStream(RawFileStream)) then
-                begin
-                  ShowMessage('MipMapping-Error');
-                  RawFileStream.Seek(0, soFromBeginning);
-                  tempb := tempb and $FE;
-                  DatFileStream.Seek($88, soFromBeginning);
-                  DatFileStream.Write(tempb, 1);
-                  OniImage.Load(Connection.ConnectionID, FileID);
-                  OniImage.GetAsData(TStream(RawFileStream));
-                end else
-                begin
-                  // Change of Depth($89), Storetype ($90)
-                  DatFileStream.Seek($89, soFromBeginning);
-                  DatFileStream.Read(tempb, 1);
-
-                  DatFileStream.Seek($90, soFromBeginning);
-                  DatFileStream.Read(tempb, 1);
-                  Exit;
-                end;
-              end else
-                OniImage.GetAsData(TStream(RawFileStream));
+              RawLinks[i].RawAddr := Stream_Sep.Size;
+              Stream_sep.CopyFrom(RawFileStream, RawFileStream.Size);
             end else begin
-              Connection.LoadRawFile(FileID, RawLinks[i].SrcOffset, TStream(RawFileStream));
+              RawLinks[i].RawAddr := Stream_Raw.Size;
+              Stream_Raw.CopyFrom(RawFileStream, RawFileStream.Size);
             end;
-            RawFileStream.Seek(0, soFromBeginning);
           end else
             RawLinks[i].RawAddr := 0;
@@ -410,39 +328,4 @@
 
 {
-            if rawlist[j].raw_size > 0 then
-            begin
-              if (UpperCase(fileinfo.Extension) = 'TXMP') and
-                ((Data[$88] and $01) > 0) then
-              begin
-                OniImage.LoadFromTXMP(Connection, i);
-                OniImage.GetMipMappedImage(rawdata);
-                rawlist[j].raw_size := OniImage.GetImageDataSize(True);
-                Data[$90] := $08;
-                Data[$89] := 32;
-(*                  if data[$90]<>OniImage.StoreType then begin
-                    data[$90]:=OniImage.StoreType;
-                    data[$89]:=(data[$89] and $CF) or $20;
-                  end;
-*)                end
-              else
-              begin
-                SetLength(rawdata, rawlist[j].raw_size);
-                OniDataConnection.LoadRawFile(i, rawlist[j].src_offset, @rawdata[0]);
-              end;
-              //                data[$88]:=data[$88] and $FE;
-
-              if rawlist[j].loc_sep then
-              begin
-                rawlist[j].raw_addr := Stream_Sep.Size;
-                Stream_Sep.Write(rawdata[0], Length(rawdata));
-              end
-              else
-              begin
-                rawlist[j].raw_addr := Stream_Raw.Size;
-                Stream_Raw.Write(rawdata[0], Length(rawdata));
-              end;
-            end
-            else
-              rawlist[j].raw_addr := 0;
             Data[rawlist[j].src_offset + 0] := (rawlist[j].raw_addr) and $FF;
             Data[rawlist[j].src_offset + 1] := (rawlist[j].raw_addr shr 8) and $FF;
