--- oup/current/Helper/LevelDB.pas 2007/03/23 00:59:01 120 +++ oup/current/Helper/LevelDB.pas 2007/03/23 17:14:40 127 @@ -1,63 +1,3 @@ -{$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 uses @@ -371,79 +311,22 @@ begin if RawLinks[i].RawSize > 0 then 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; end; end; { - 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; Data[rawlist[j].src_offset + 2] := (rawlist[j].raw_addr shr 16) and $FF;