ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/oup/current/Helper/LevelDB.pas
(Generate patch)

Comparing oup/current/Helper/LevelDB.pas (file contents):
Revision 109 by alloc, Wed Feb 21 03:12:33 2007 UTC vs.
Revision 120 by alloc, Fri Mar 23 00:59:01 2007 UTC

# Line 1 | Line 1
1 < unit Helper_LevelDB;
2 <
1 > {$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}
2 > {$MINSTACKSIZE $00004000}
3 > {$MAXSTACKSIZE $00100000}
4 > {$IMAGEBASE $00400000}
5 > {$APPTYPE GUI}
6 > {$WARN SYMBOL_DEPRECATED ON}
7 > {$WARN SYMBOL_LIBRARY ON}
8 > {$WARN SYMBOL_PLATFORM ON}
9 > {$WARN SYMBOL_EXPERIMENTAL ON}
10 > {$WARN UNIT_LIBRARY ON}
11 > {$WARN UNIT_PLATFORM ON}
12 > {$WARN UNIT_DEPRECATED ON}
13 > {$WARN UNIT_EXPERIMENTAL ON}
14 > {$WARN HRESULT_COMPAT ON}
15 > {$WARN HIDING_MEMBER ON}
16 > {$WARN HIDDEN_VIRTUAL ON}
17 > {$WARN GARBAGE ON}
18 > {$WARN BOUNDS_ERROR ON}
19 > {$WARN ZERO_NIL_COMPAT ON}
20 > {$WARN STRING_CONST_TRUNCED ON}
21 > {$WARN FOR_LOOP_VAR_VARPAR ON}
22 > {$WARN TYPED_CONST_VARPAR ON}
23 > {$WARN ASG_TO_TYPED_CONST ON}
24 > {$WARN CASE_LABEL_RANGE ON}
25 > {$WARN FOR_VARIABLE ON}
26 > {$WARN CONSTRUCTING_ABSTRACT ON}
27 > {$WARN COMPARISON_FALSE ON}
28 > {$WARN COMPARISON_TRUE ON}
29 > {$WARN COMPARING_SIGNED_UNSIGNED ON}
30 > {$WARN COMBINING_SIGNED_UNSIGNED ON}
31 > {$WARN UNSUPPORTED_CONSTRUCT ON}
32 > {$WARN FILE_OPEN ON}
33 > {$WARN FILE_OPEN_UNITSRC ON}
34 > {$WARN BAD_GLOBAL_SYMBOL ON}
35 > {$WARN DUPLICATE_CTOR_DTOR ON}
36 > {$WARN INVALID_DIRECTIVE ON}
37 > {$WARN PACKAGE_NO_LINK ON}
38 > {$WARN PACKAGED_THREADVAR ON}
39 > {$WARN IMPLICIT_IMPORT ON}
40 > {$WARN HPPEMIT_IGNORED ON}
41 > {$WARN NO_RETVAL ON}
42 > {$WARN USE_BEFORE_DEF ON}
43 > {$WARN FOR_LOOP_VAR_UNDEF ON}
44 > {$WARN UNIT_NAME_MISMATCH ON}
45 > {$WARN NO_CFG_FILE_FOUND ON}
46 > {$WARN IMPLICIT_VARIANTS ON}
47 > {$WARN UNICODE_TO_LOCALE ON}
48 > {$WARN LOCALE_TO_UNICODE ON}
49 > {$WARN IMAGEBASE_MULTIPLE ON}
50 > {$WARN SUSPICIOUS_TYPECAST ON}
51 > {$WARN PRIVATE_PROPACCESSOR ON}
52 > {$WARN UNSAFE_TYPE OFF}
53 > {$WARN UNSAFE_CODE OFF}
54 > {$WARN UNSAFE_CAST OFF}
55 > {$WARN OPTION_TRUNCATED ON}
56 > {$WARN WIDECHAR_REDUCED ON}
57 > {$WARN DUPLICATES_IGNORED ON}
58 > {$WARN UNIT_INIT_SEQ ON}
59 > {$WARN LOCAL_PINVOKE ON}
60 > {$WARN MESSAGE_DIRECTIVE ON}
61 > unit LevelDB;
62   interface
4
63   uses
64    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
65    Dialogs, ComCtrls, StdCtrls, StrUtils;
# Line 15 | Line 73 | type
73      lbl_estimation: TLabel;
74      procedure btn_abortokClick(Sender: TObject);
75    private
76 <    procedure HandleFile(ext: String; fileid: Integer; dir_dat2db: Boolean);
77 <    procedure stop_convert;
76 >    procedure HandleFile(Ext: String; FileID: Integer);
77 >    procedure StopConvert;
78    public
79      procedure CreateDatabase(Source, Target: String);
80      procedure CreateLevel(Source, Target: String);
# Line 27 | Line 85 | var
85    Form_LevelDB: TForm_LevelDB;
86  
87   implementation
30
88   {$R *.dfm}
89 <
90 < uses ABSMain, ABSDecUtil, Main, Functions, Data, OniImgClass, DataStructures, ConnectionManager;
89 > uses ABSMain, ABSDecUtil, Main,
90 >    ConnectionManager, TypeDefs, DataAccess, OniImgClass, Data;
91  
92   type
93 <  THandler = procedure(fileid: LongWord; dir_dat2db: Boolean);
94 <
38 <  TConvertHandlers = record
93 >  THandler = procedure(FileID: Integer);
94 >  TConvertHandler = record
95      Ext:     String[4];
40    needed:  Boolean;
96      Handler: THandler;
97    end;
98  
99   var
100 <  ConvertHandlers: array of TConvertHandlers;
101 <  loaded_filename: String;
102 <  converting: Boolean = False;
103 <  abort:     Boolean = False;
49 <  DataBase:  TABSDatabase;
50 <  Query:     TABSQuery;
51 <  MimeCoder: TStringFormat_MIME64;
52 <
53 < var
54 <  DatHeader:   THeader;
55 <  FilesHeader: TFilesMap;
56 <  NamedFilesHeader: TNamedFilesMap;
57 <  ExtensionsHeader: TExtensionsMap;
58 <  Stream_Body, Stream_Names: TMemoryStream;
59 <  Stream_Dat, Stream_Raw, Stream_Sep: TFileStream;
60 <  OniDataConnection: TOniData;
100 >  ConvertHandlers: array of TConvertHandler;
101 > //  loaded_filename: String;
102 >  Converting:  Boolean = False;
103 >  Abort:       Boolean = False;
104  
105  
106 + function GetOpenMsg(msg: TStatusMessages): String;
107 + begin
108 +  case msg of
109 +    SM_AlreadyOpened:    Result := 'File already opened.';
110 +    SM_FileNotFound:     Result := 'File not found.';
111 +    SM_UnknownExtension: Result := 'Unknown extension.';
112 +    SM_IncompatibleFile: Result := 'Incompatible file format.';
113 +    SM_UnknownError:     Result := 'Unknown error.';
114 +  end;
115 + end;
116  
117  
118 < procedure TForm_LevelDB.CreateLevel(Source, target: String);
118 > procedure TForm_LevelDB.CreateLevel(Source, Target: String);
119   var
120 <  files: LongWord;
121 <
122 <  i, j:     LongWord;
123 <  temps, temps2: String;
71 <  Data, rawdata: Tdata;
72 <  absolutebegintime, begintime: Double;
73 <  step:     Byte;
74 <  rawlist:  TRawList;
75 <  extlist:  TExtensionsMap;
76 <  fileinfo: TFileInfo;
77 <  datlinks: TDatLinks;
78 <  OniImage: TOniImage;
79 <  levelid:  LongWord;
80 <  timeformat: TFormatSettings;
120 >  DatHeader:        THeader;
121 >  FilesHeader:      TFilesMap;
122 >  NamedFilesHeader: TNamedFilesMap;
123 >  ExtensionsHeader: TExtensionsMap;
124  
125 <  conIndex: Integer;
126 <  connection: TOniData;
84 < const
85 <  steps: Byte = 3;
125 >  Stream_Body, Stream_Names:          TMemoryStream;
126 >  Stream_Dat, Stream_Raw, Stream_Sep: TFileStream;
127  
128 + //  Data, rawdata: Tdata;
129 +  BeginTime, FileTime: Double;
130 +  Step:     Integer;
131 + //  rawlist:  TRawDataList;
132 + //  datlinks: TDatLinks;
133 +  OniImage:   TOniImage;
134 +  LevelID:    Integer;
135 +  TimeFormat: TFormatSettings;
136 +
137 +  ConID:      Integer;
138 +  Connection: TDataAccess;
139 +  ConRepMsg:  TStatusMessages;
140 +
141 +  FileID:     Integer;
142 +
143 +  Strings:    TStrings;
144 +  i, j:       Integer;
145 +  temps:      String;
146 +  tempi:      Integer;
147 +  tempb:      Byte;
148 +  FileInfo:   TFileInfo;
149 +  DatLinks:   TDatLinkList;
150 +  RawLinks:   TRawDataList;
151  
152 +  DatFileStream, RawFileStream: TMemoryStream;
153 + const
154 +  Steps: Byte = 3;
155  
156  
157 <  procedure DoStep(stepname: String);
157 >  procedure DoStep(StepName: String);
158    begin
159 <    Inc(step);
160 <    if stepname <> 'FIN' then
159 >    Inc(Step);
160 >    if StepName <> 'FIN' then
161        group_progress.Caption :=
162 <        'Creating Dat (Step ' + IntToStr(step) + '/' + IntToStr(steps) + ': ' + stepname + ')'
162 >        'Creating Dat (Step ' + IntToStr(Step) + '/' + IntToStr(Steps) + ': ' + StepName + ')'
163      else
164        group_progress.Caption := 'Creating Dat (FINISHED)';
165    end;
# Line 103 | Line 170 | begin
170    // FILE EXISTS CHECK FÜR DAT/RAW/SEP!!!
171    //
172  
173 <  timeformat.ShortTimeFormat := 'hh:nn:ss';
174 <  timeformat.LongTimeFormat := 'hh:nn:ss';
175 <  timeformat.TimeSeparator := ':';
173 >  TimeFormat.ShortTimeFormat := 'hh:nn:ss';
174 >  TimeFormat.LongTimeFormat  := 'hh:nn:ss';
175 >  TimeFormat.TimeSeparator   := ':';
176  
177 <  connection := ConnectionExists(target);
178 <  if connection <> nil then
177 >  ConID := ConManager.OpenConnection(Source, ConRepMsg);
178 >  if not (ConRepMsg in [SM_OK, SM_AlreadyOpened]) then
179    begin
180 <    ShowMessage('Destination-file is opened, close it in order to proceed conversion?');
180 >    ShowMessage('Source-file couldn''t be opened! Aborting' + CrLf + GetOpenMsg(ConRepMsg));
181      Exit;
182 <  end;
182 >  end else
183 >    Connection := ConManager.Connection[ConID];
184  
185 <  connection := ConnectionExists(source);
186 <  if connection <> nil then
185 >  ConID := ConManager.FileOpened(Target);
186 >  if ConID >= 0 then
187    begin
188 <    ShowMessage('Source-file is opened, close it in order to proceed conversion?');
189 <    Exit;
188 >    if MessageBox(Self.Handle, PChar('Destination-file is opened, close it in ' +
189 >          'order to proceed conversion?'), PChar('Destination-file opened'),
190 >          MB_YESNO + MB_ICONQUESTION) = ID_YES then
191 >    begin
192 >      if Form_Main.CheckConnectionCloseable(ConID) then
193 >        if not ConManager.CloseConnection(ConID, ConRepMsg) then
194 >        begin
195 >          ShowMessage('Couldn''t close destination-file. Aborting');
196 >          Exit;
197 >        end;
198 >    end else begin
199 >      ShowMessage('Aborting');
200 >      Exit;
201 >    end;
202    end;
203  
204 <
125 <  if CreateDataConnection(Source, ODB_ADB) = nil then
204 >  if FileExists(Target) then
205    begin
206 <    ShowMessage('Could not connect to .oldb-file');
207 <    Exit;
206 >    if MessageBox(Self.Handle, PChar('Destination-file exists. ' +
207 >          'Overwrite it?'), PChar('Destination-file exists'),
208 >          MB_YESNO + MB_ICONWARNING) = ID_YES then
209 >    begin
210 >      if not DeleteFile(Target) then
211 >      begin
212 >        ShowMessage('Couldn''t delete file. Aborting');
213 >        Exit;
214 >      end else if not DeleteFile(AnsiReplaceStr(Target, '.dat', '.raw')) then
215 >      begin
216 >        ShowMessage('Couldn''t delete file. Aborting');
217 >        Exit;
218 >      end else if not DeleteFile(AnsiReplaceStr(Target, '.dat', '.sep')) then
219 >      begin
220 >        ShowMessage('Couldn''t delete file. Aborting');
221 >        Exit;
222 >      end;
223 >    end else begin
224 >      ShowMessage('Aborting');
225 >      Exit;
226 >    end;
227    end;
130  levelid  := OniDataConnection.LevelInfo.LevelNumber;
131  levelid  := (levelid * 2) * 256 * 256 * 256 + $01;
132  OniImage := TOniImage.Create;
228  
229 <  absolutebegintime := Time;
229 >  LevelID  := Connection.LevelNumber;
230 >  LevelID  := (LevelID * 2) * 256 * 256 * 256 + $01;
231 >  OniImage := TOniImage.Create;
232  
233    Self.Visible := True;
234    Form_Main.Visible := False;
235 <  step  := 0;
236 <  converting := True;
237 <  abort := False;
235 >  Step := 0;
236 >  Converting := True;
237 >  Abort := False;
238    btn_abortok.Caption := '&Abort...';
239    btn_abortok.Default := False;
240 <  absolutebegintime := Time;
240 >  BeginTime := Time;
241  
242    Stream_Body  := TMemoryStream.Create;
243    Stream_Names := TMemoryStream.Create;
244 <  Stream_Dat   := TFileStream.Create(target, fmCreate);
245 <  Stream_Raw   := TFileStream.Create(AnsiReplaceStr(target, '.dat', '.raw'), fmCreate);
246 <  if OniDataConnection.OSisMac then
247 <    Stream_Sep := TFileStream.Create(AnsiReplaceStr(target, '.dat', '.sep'), fmCreate);
244 >  Stream_Dat   := TFileStream.Create(Target, fmCreate);
245 >  Stream_Raw   := TFileStream.Create(AnsiReplaceStr(Target, '.dat', '.raw'), fmCreate);
246 >  if Connection.DataOS in [DOS_WINDEMO, DOS_MAC, DOS_MACBETA] then
247 >    Stream_Sep := TFileStream.Create(AnsiReplaceStr(Target, '.dat', '.sep'), fmCreate);
248  
249    DoStep('Creating header');
250    progress.Position      := 0;
# Line 155 | Line 252 | begin
252    lbl_estimation.Caption := 'Estimated finishing time: unknown';
253    Application.ProcessMessages;
254  
255 <  NamedFilesHeader := TOniDataADB(OniDataConnection).GetNamedFilesMap;
256 <  extlist := OniDataConnection.GetExtendedExtensionsList;
257 <  for i := 0 to High(DatHeader.Ident) do
258 <    DatHeader.Ident[i] := OniDataConnection.LevelInfo.Ident[i];
259 <  DatHeader.Files := OniDataConnection.GetFilesCount;
255 >  SetLength(NamedFilesHeader, 0);
256 >  Strings := TStringList.Create;
257 >  Strings := Connection.GetFilesList('', '', False, ST_ExtNameAsc);
258 >  for i := 0 to Strings.Count - 1 do
259 >  begin
260 >    if MidStr(Strings.Strings[i],
261 >          Pos('-', Strings.Strings[i]) + 1,
262 >          Length(Strings.Strings[i]) -
263 >            Pos('.', ReverseString(Strings.Strings[i])) -
264 >            Pos('-', Strings.Strings[i])
265 >        ) <> '' then
266 >    begin
267 >      SetLength(NamedFilesHeader, Length(NamedFilesHeader) + 1);
268 >      NamedFilesHeader[High(NamedFilesHeader)].FileNumber := StrToInt(MidStr(Strings.Strings[i], 1, 5));
269 >      NamedFilesHeader[High(NamedFilesHeader)].blubb := 0;
270 >    end;
271 >  end;
272 >
273 >  for i := 0 to High(DatHeader.OSIdent) do
274 >    case Connection.DataOS of
275 >      DOS_WIN: DatHeader.OSIdent[i] := HeaderOSIdentWin[i];
276 >      DOS_MAC: DatHeader.OSIdent[i] := HeaderOSIdentMac[i];
277 >      DOS_MACBETA: DatHeader.OSIdent[i] := HeaderOSIdentMacBeta[i];
278 >    end;
279 >  for i := 0 to High(DatHeader.GlobalIdent) do
280 >    DatHeader.GlobalIdent[i] := HeaderGlobalIdent[i];
281 >  DatHeader.Files := Connection.GetFileCount;
282    DatHeader.NamedFiles := Length(NamedFilesHeader);
283 <  DatHeader.Extensions := Length(extlist);
283 >
284 >  Strings := Connection.GetExtensionsList(EF_ExtCount);
285 >
286 >  DatHeader.Extensions := Strings.Count;
287    DatHeader.DataAddr   := 0;
288    DatHeader.DataSize   := 0;
289    DatHeader.NamesAddr  := 0;
# Line 171 | Line 293 | begin
293    SetLength(FilesHeader, DatHeader.Files);
294    SetLength(ExtensionsHeader, DatHeader.Extensions);
295  
296 +
297    DoStep('Writing extensions-header');
298 <  progress.Max := Length(OniDataConnection.GetExtensionsList);
298 >  progress.Max := Strings.Count;
299    Application.ProcessMessages;
300 <
178 <  for i := 0 to High(ExtensionsHeader) do
300 >  for i := 0 to Strings.Count - 1 do
301    begin
302 <    ExtensionsHeader[i].Ident     := extlist[i].Ident;
303 <    ExtensionsHeader[i].Extension := extlist[i].Extension;
304 <    SetLength(temps, 4);
302 >    temps := Strings.Strings[i];
303 >    ExtensionsHeader[i].ExtCount := StrToInt( MidStr(
304 >            temps,
305 >            Pos('(', temps) + 1,
306 >            Pos(')', temps) - Pos('(', temps) - 1 ) );
307 >    temps := MidStr(temps, 1, 4);
308      for j := 0 to 3 do
309 <      temps[j + 1] := ExtensionsHeader[i].Extension[3 - j];
310 <    ExtensionsHeader[i].ExtCount :=
311 <      Length(OniDataConnection.GetFilesList(temps, '', False, stIDAsc));
309 >      ExtensionsHeader[i].Extension[j] := temps[4-j];
310 >    for j := 0 to High(FileTypes) do
311 >      if FileTypes[j].Extension = temps then
312 >        Break;
313 >    if j < Length(FileTypes) then
314 >    begin
315 >      case Connection.DataOS of
316 >        DOS_WIN:     ExtensionsHeader[i].Ident := FileTypes[j].IdentWin;
317 >        DOS_WINDEMO: ExtensionsHeader[i].Ident := FileTypes[j].IdentMac;
318 >        DOS_MAC:     ExtensionsHeader[i].Ident := FileTypes[j].IdentMac;
319 >        DOS_MACBETA: ExtensionsHeader[i].Ident := FileTypes[j].IdentMac;
320 >      end;
321 >    end else begin
322 >      ShowMessage('Unknown Extension: ' + Strings.Strings[i]);
323 >      Exit;
324 >    end;
325      progress.Position    := i + 1;
326      lbl_progress.Caption := 'Extensions done: ' + IntToStr(i + 1) + '/' +
327 <      IntToStr(Length(extlist));
327 >      IntToStr(Strings.Count);
328      Application.ProcessMessages;
329    end;
330  
# Line 197 | Line 335 | begin
335    lbl_estimation.Caption := 'Estimated finishing time: unknown';
336    Application.ProcessMessages;
337  
338 <  begintime := Time;
339 <  for i := 0 to DatHeader.Files - 1 do
338 >  FileTime := Time;
339 >  for FileID := 0 to DatHeader.Files - 1 do
340    begin
341 <    fileinfo := OniDataConnection.GetFileInfo(i);
341 >    FileInfo := Connection.GetFileInfo(FileID);
342      for j := 0 to 3 do
343 <      FilesHeader[i].Extension[j] := fileinfo.Extension[4 - j];
344 <    if fileinfo.Size > 0 then
343 >      FilesHeader[FileID].Extension[j] := FileInfo.Extension[4 - j];
344 >    if FileInfo.Size > 0 then
345      begin
346 <      //        DatLinks:=;
347 <      FilesHeader[i].DataAddr := Stream_Body.Size + 8;
348 <      Data    := OniDataConnection.LoadDatFile(i);
349 <      Data[4] := (levelid) and $FF;
350 <      Data[5] := (levelid shr 8) and $FF;
351 <      Data[6] := (levelid shr 16) and $FF;
352 <      Data[7] := (levelid shr 24) and $FF;
346 >      FilesHeader[FileID].DataAddr := Stream_Body.Size + 8;
347 >      DatFileStream := TMemoryStream.Create;
348 >      Connection.LoadDatFile(FileID, TStream(DatFileStream));
349 >      DatFileStream.Seek(4, soFromBeginning);
350 >      DatFileStream.Write(LevelID, 4);
351 >
352 >      DatLinks := Connection.GetDatLinks(FileID);
353 >      if Length(DatLinks) > 0 then
354 >      begin
355 >        for i := 0 to High(DatLinks) do
356 >        begin
357 >          DatFileStream.Seek(DatLinks[i].SrcOffset, soFromBeginning);
358 >          if DatLinks[i].DestID < 0 then
359 >            tempi := 0
360 >          else
361 >            tempi := DatLinks[i].DestID * 256 + 1;
362 >          DatFileStream.Write(tempi, 4);
363 >        end;
364 >      end;
365  
366 <      if (Pos(UpperCase(fileinfo.Extension), UpperCase(raws)) mod 4) = 1 then
366 >      RawLinks := Connection.GetRawList(FileID);
367 >      if Length(RawLinks) > 0 then
368        begin
369 <        rawlist := OniDataConnection.GetRawList(i);
219 <        if Length(rawlist) > 0 then
369 >        for i := 0 to High(RawLinks) do
370          begin
371 <          for j := 0 to High(rawlist) do
371 >          if RawLinks[i].RawSize > 0 then
372            begin
373 +            RawFileStream := TMemoryStream.Create;
374 +            if UpperCase(fileinfo.Extension) = 'TXMP' then
375 +            begin
376 +              DatFileStream.Seek($88, soFromBeginning);
377 +              DatFileStream.Read(tempb, 1);
378 +              if (tempb and $01) > 0 then
379 +              begin
380 +                OniImage.Load(Connection.ConnectionID, FileID);
381 +                if not OniImage.GetMipMappedImage(TStream(RawFileStream)) then
382 +                begin
383 +                  ShowMessage('MipMapping-Error');
384 +                  RawFileStream.Seek(0, soFromBeginning);
385 +                  tempb := tempb and $FE;
386 +                  DatFileStream.Seek($88, soFromBeginning);
387 +                  DatFileStream.Write(tempb, 1);
388 +                  OniImage.Load(Connection.ConnectionID, FileID);
389 +                  OniImage.GetAsData(TStream(RawFileStream));
390 +                end else
391 +                begin
392 +                  // Change of Depth($89), Storetype ($90)
393 +                  DatFileStream.Seek($89, soFromBeginning);
394 +                  DatFileStream.Read(tempb, 1);
395 +
396 +                  DatFileStream.Seek($90, soFromBeginning);
397 +                  DatFileStream.Read(tempb, 1);
398 +                  Exit;
399 +                end;
400 +              end else
401 +                OniImage.GetAsData(TStream(RawFileStream));
402 +            end else begin
403 +              Connection.LoadRawFile(FileID, RawLinks[i].SrcOffset, TStream(RawFileStream));
404 +            end;
405 +            RawFileStream.Seek(0, soFromBeginning);
406 +          end else
407 +            RawLinks[i].RawAddr := 0;
408 +        end;
409 +      end;
410 +
411 + {
412              if rawlist[j].raw_size > 0 then
413              begin
414                if (UpperCase(fileinfo.Extension) = 'TXMP') and
# Line 230 | Line 419 | begin
419                  rawlist[j].raw_size := OniImage.GetImageDataSize(True);
420                  Data[$90] := $08;
421                  Data[$89] := 32;
422 < {                  if data[$90]<>OniImage.StoreType then begin
422 > (*                  if data[$90]<>OniImage.StoreType then begin
423                      data[$90]:=OniImage.StoreType;
424                      data[$89]:=(data[$89] and $CF) or $20;
425                    end;
426 < }                end
426 > *)                end
427                else
428                begin
429                  SetLength(rawdata, rawlist[j].raw_size);
# Line 259 | Line 448 | begin
448              Data[rawlist[j].src_offset + 1] := (rawlist[j].raw_addr shr 8) and $FF;
449              Data[rawlist[j].src_offset + 2] := (rawlist[j].raw_addr shr 16) and $FF;
450              Data[rawlist[j].src_offset + 3] := (rawlist[j].raw_addr shr 24) and $FF;
451 <          end;
263 <        end;
264 <      end;
265 <
451 > }
452        Stream_Body.Write(Data[0], Length(Data));
453        //
454      end
# Line 281 | Line 467 | begin
467  
468      if ((i mod 10) = 0) and (i >= 100) then
469        lbl_estimation.Caption := 'Estimated time left: ' + TimeToStr(
470 <        (Time - begintime) / i * (progress.Max - i + 1) * 1.1, timeformat );
470 >        (Time - FileTime) / i * (progress.Max - i + 1) * 1.1, TimeFormat );
471      progress.Position := i + 1;
472      lbl_progress.Caption := 'Files done: ' + IntToStr(i + 1) + '/' + IntToStr(progress.Max);
473      Application.ProcessMessages;
# Line 317 | Line 503 | begin
503    progress.Position      := progress.Max;
504    lbl_progress.Caption   := 'Files done: ' + IntToStr(progress.Max) + '/' +
505      IntToStr(progress.Max);
506 <  lbl_estimation.Caption := 'FINISHED (duration: ' + TimeToStr(Time - absolutebegintime, timeformat) + ')';
506 >  lbl_estimation.Caption := 'FINISHED (duration: ' + TimeToStr(Time - Begintime, TimeFormat) + ')';
507  
508    DoStep('FIN');
509    btn_abortok.Caption := '&OK';
# Line 353 | Line 539 | end;
539  
540   procedure TForm_LevelDB.CreateDatabase(Source, target: String);
541   var
542 +  DataBase:    TABSDatabase;
543 +  Query:       TABSQuery;
544 +  MimeCoder:   TStringFormat_MIME64;
545 +
546    i, j:     LongWord;
547    temps, temps2: String;
548    Data:     Tdata;

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)