Changeset 138 for oup/current/Helper


Ignore:
Timestamp:
Mar 30, 2007, 2:49:02 AM (18 years ago)
Author:
alloc
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • oup/current/Helper/LevelDB.pas

    r137 r138  
    1313    lbl_estimation: TLabel;
    1414    procedure btn_abortokClick(Sender: TObject);
    15   private
    16     procedure HandleFile(Ext: String; FileID: Integer);
    17     procedure StopConvert;
    1815  public
    1916    procedure CreateDatabase(Source, Target: String);
     
    2825{$R *.dfm}
    2926uses ABSMain, ABSDecUtil, Main,
    30     ConnectionManager, TypeDefs, DataAccess, OniImgClass, Data;
    31 
    32 type
    33   THandler = procedure(FileID: Integer);
    34   TConvertHandler = record
    35     Ext:     String[4];
    36     Handler: THandler;
    37   end;
     27    ConnectionManager, TypeDefs, DataAccess, OniImgClass, Data, RawList;
    3828
    3929var
    40   ConvertHandlers: array of TConvertHandler;
    41 //  loaded_filename: String;
    4230  Converting:  Boolean = False;
    4331  Abort:       Boolean = False;
     
    6856  BeginTime, FileTime: Double;
    6957  Step:     Integer;
    70   OniImage:   TOniImage;
    7158  LevelID:    Integer;
    7259  TimeFormat: TFormatSettings;
     
    10693    else
    10794      group_progress.Caption := 'Creating Dat (FINISHED)';
     95  end;
     96
     97  procedure StopConvert;
     98  begin
     99    btn_abortok.Caption := '&Close';
     100    btn_abortok.Default := True;
     101    converting := False;
     102    lbl_estimation.Caption := 'ABORTED';
     103    group_progress.Caption := 'Creating Level (ABORTED)';
     104
     105    Stream_Body.Free;
     106    Stream_Names.Free;
     107    DatFileStream.Free;
     108    RawFileStream.Free;
     109   
     110    Stream_Dat.Free;
     111    Stream_Raw.Free;
     112    if Connection.DataOS in [DOS_WINDEMO, DOS_MAC, DOS_MACBETA] then
     113      Stream_Sep.Free;
     114   
     115    if MessageBox(Self.Handle, PChar('Delete the unfinished level-files?'),
     116      PChar('Delete files?'), MB_YESNO) = idYes then
     117    begin
     118      DeleteFile(target);
     119      DeleteFile(AnsiReplaceStr(Target, '.dat', '.raw'));
     120      if Connection.DataOS in [DOS_WINDEMO, DOS_MAC, DOS_MACBETA] then
     121        DeleteFile(AnsiReplaceStr(Target, '.dat', '.sep'));
     122    end;
    108123  end;
    109124
     
    177192  LevelID  := Connection.LevelNumber;
    178193  LevelID  := (LevelID * 2) * 256 * 256 * 256 + $01;
    179   OniImage := TOniImage.Create;
    180194
    181195  Self.Visible := True;
     
    421435  btn_abortok.Default := True;
    422436
    423   OniImage.Free;
    424 
    425437  converting := False;
    426438
    427439//  CloseDataConnection(DataConnections[conIndex]);
    428440end;
    429 
    430 
    431 
    432 
    433 procedure TForm_LevelDB.HandleFile;
    434 var
    435   i: Byte;
    436 begin
    437 {  for i := 1 to Length(ConvertHandlers) do
    438     if UpperCase(ConvertHandlers[i].Ext) = UpperCase(ext) then
    439       if ConvertHandlers[i].needed then
    440       begin
    441         ConvertHandlers[i].Handler(fileid, dir_dat2db);
    442         Break;
    443       end
    444       else
    445         Break;
    446 }end;
    447441
    448442
     
    452446var
    453447  DataBase:  TABSDatabase;
    454 {
    455 var
    456   DataBase:    TABSDatabase;
    457   Query:       TABSQuery;
    458   MimeCoder:   TStringFormat_MIME64;
    459 
    460   i, j:     LongWord;
    461   temps, temps2: String;
    462   Data:     Tdata;
    463   absolutebegintime, begintime: Double;
    464   step:     Byte;
    465   rawlist:  TRawList;
    466   extlist:  TExtensionsMap;
    467   fileinfo: TFileInfo;
    468   timeformat: TFormatSettings;
    469 
    470   conIndex: Integer;
     448  Query:     TABSQuery;
     449  MimeCoder: TStringFormat_MIME64;
     450
     451  BeginTime, FileTime: Double;
     452  Step:       Integer;
     453  LevelID:    Integer;
     454  TimeFormat: TFormatSettings;
     455
     456  ConID:      Integer;
     457  Connection: TDataAccess;
     458  ConRepMsg:  TStatusMessages;
     459
     460  FileID:     Integer;
     461
     462  Strings:    TStrings;
     463  i:          Integer;
     464  temps:      String;
     465  tempi:      Integer;
     466  tempb:      Byte;
     467  tempdata:   TByteData;
     468  FileInfo:   TFileInfo;
     469  DatLinks:   TDatLinkList;
     470  RawLinks:   TRawDataList;
    471471const
    472   steps: Byte = 4;
    473 
    474 
    475 
     472  steps: Byte = 2;
    476473
    477474  procedure DoStep(stepname: String);
     
    484481      group_progress.Caption := 'Creating DB (FINISHED)';
    485482  end;
    486 }
     483
     484  procedure StopConvert;
     485  begin
     486    btn_abortok.Caption := '&Close';
     487    btn_abortok.Default := True;
     488    converting := False;
     489    lbl_estimation.Caption := 'ABORTED';
     490    group_progress.Caption := 'Creating DB (ABORTED)';
     491    DataBase.Close;
     492    if MessageBox(Self.Handle, PChar('Delete the unfinished DB-file?'),
     493      PChar('Delete file?'), MB_YESNO) = idYes then
     494    begin
     495      DeleteFile(target);
     496    end;
     497end;
     498
     499
    487500
    488501begin
    489 {  if CreateDataConnection(Source, ODB_Dat) = nil then
    490   begin
    491     ShowMessage('Could not connect to .dat-file');
     502
     503  //
     504  // FILE EXISTS CHECK FÜR DAT/RAW/SEP!!!
     505  //
     506
     507  TimeFormat.ShortTimeFormat := 'hh:nn:ss';
     508  TimeFormat.LongTimeFormat  := 'hh:nn:ss';
     509  TimeFormat.TimeSeparator   := ':';
     510
     511  ConID := ConManager.OpenConnection(Source, ConRepMsg);
     512  if not (ConRepMsg in [SM_OK, SM_AlreadyOpened]) then
     513  begin
     514    ShowMessage('Source-file couldn''t be opened! Aborting' + CrLf + GetOpenMsg(ConRepMsg));
    492515    Exit;
    493   end
    494   else
    495   begin
    496     TOniDataDat(OniDataConnection).UnloadWhenUnused := False;
    497   end;
    498 
    499   timeformat.LongTimeFormat := 'hh:nn:ss';
    500   timeformat.ShortTimeFormat := 'hh:nn:ss';
    501   timeformat.TimeSeparator := ':';
     516  end else
     517    Connection := ConManager.Connection[ConID];
     518
     519  ConID := ConManager.FileOpened(Target);
     520  if ConID >= 0 then
     521  begin
     522    if MessageBox(Self.Handle, PChar('Destination-file is opened, close it in ' +
     523          'order to proceed conversion?'), PChar('Destination-file opened'),
     524          MB_YESNO + MB_ICONQUESTION) = ID_YES then
     525    begin
     526      if Form_Main.CheckConnectionCloseable(ConID) then
     527        if not ConManager.CloseConnection(ConID, ConRepMsg) then
     528        begin
     529          ShowMessage('Couldn''t close destination-file. Aborting');
     530          Exit;
     531        end;
     532    end else begin
     533      ShowMessage('Aborting');
     534      Exit;
     535    end;
     536  end;
     537
     538  if FileExists(Target) then
     539  begin
     540    if MessageBox(Self.Handle, PChar('Destination-file exists. ' +
     541          'Overwrite it?'), PChar('Destination-file exists'),
     542          MB_YESNO + MB_ICONWARNING) = ID_YES then
     543    begin
     544      if not DeleteFile(Target) then
     545      begin
     546        ShowMessage('Couldn''t delete file. Aborting');
     547        Exit;
     548      end;
     549    end else begin
     550      ShowMessage('Aborting');
     551      Exit;
     552    end;
     553  end;
    502554
    503555  Self.Visible := True;
     
    508560  btn_abortok.Caption := '&Abort...';
    509561  btn_abortok.Default := False;
    510   loaded_filename := target;
    511 
    512   absolutebegintime := Time;
     562
     563  BeginTime := Time;
    513564
    514565  DataBase := TABSDatabase.Create(Self);
    515 }
    516566  DataBase.MaxConnections := 1;
    517567  DataBase.PageSize := 8112;
    518568  DataBase.PageCountInExtent := 8;
    519 {
     569
    520570  DataBase.DatabaseName := 'OLDB';
    521571  DataBase.DatabaseFileName := target;
     
    559609    dbversion + '");';
    560610  Query.ExecSQL;
    561   SetLength(Data, Length(OniDataConnection.LevelInfo.Ident));
    562   for i := 0 to High(OniDataConnection.LevelInfo.Ident) do
    563     Data[i] := OniDataConnection.LevelInfo.Ident[i];
    564   temps := CreateHexString(Data, True);
    565 //  Query.SQL.Text := 'INSERT INTO globals (name,value) VALUES ("ident","' + temps + '");';
    566 //  Query.ExecSQL;
     611
    567612  Query.SQL.Text := 'INSERT INTO globals (name,value) VALUES ("lvl","' +
    568     IntToStr(OniDataConnection.LevelInfo.LevelNumber) + '");';
     613    IntToStr(Connection.LevelNumber) + '");';
    569614  Query.ExecSQL;
    570   if OniDataConnection.OSisMAC then
    571     Query.SQL.Text := 'INSERT INTO globals (name,value) VALUES ("os","MAC");'
    572   else
    573     Query.SQL.Text := 'INSERT INTO globals (name,value) VALUES ("os","PC");';
     615  case Connection.DataOS of
     616    DOS_WIN: temps := 'WIN';
     617    DOS_WINDEMO: temps := 'WINDEMO';
     618    DOS_MAC: temps := 'MAC';
     619    DOS_MACBETA: temps := 'MACBETA';
     620  end;
     621  Query.SQL.Text := 'INSERT INTO globals (name,value) VALUES ("os","' + temps + '");';
    574622  Query.ExecSQL;
    575 
    576   DoStep('Writing extensionslist');
    577   progress.Max := Length(OniDataConnection.GetExtensionsList);
    578   Application.ProcessMessages;
    579 
    580   extlist := OniDataConnection.GetExtendedExtensionsList;
    581   for i := 0 to High(extlist) do
    582   begin
    583     SetLength(Data, Length(extlist[i].Ident));
    584     for j := 0 to High(extlist[i].Ident) do
    585       Data[j] := extlist[i].Ident[j];
    586     temps := CreateHexString(Data, True);
    587     temps2 := extlist[i].Extension[3] + extlist[i].Extension[2] +
    588       extlist[i].Extension[1] + extlist[i].Extension[0];
    589     Query.SQL.Text := 'INSERT INTO extlist (ext,ident) VALUES ("' +
    590       temps2 + '","' + temps + '");';
    591     Query.ExecSQL;
    592     progress.Position    := i;
    593     lbl_progress.Caption := 'Extensions done: ' + IntToStr(i) + '/' +
    594       IntToStr(Length(extlist));
    595     Application.ProcessMessages;
    596     if abort then
    597     begin
    598       stop_convert;
    599       Exit;
    600     end;
    601   end;
    602   lbl_progress.Caption := '';
    603623
    604624  progress.Position      := 0;
    605625  lbl_progress.Caption   := 'Files done: ' + IntToStr(0) + '/' + IntToStr(
    606     OniDataConnection.GetFilesCount);
     626    Connection.GetFileCount);
    607627  lbl_estimation.Caption := 'Estimated finishing time: unknown';
    608628
    609   DoStep('Loading .dat into memory');
    610   Application.ProcessMessages;
    611 
    612   progress.Max := OniDataConnection.GetFilesCount;
     629  progress.Max := Connection.GetFileCount;
    613630  begintime    := Time;
    614631  DoStep('Writing .dat-fileslist');
     
    616633
    617634  Database.StartTransaction;
    618   for i := 0 to OniDataConnection.GetFilesCount - 1 do
    619   begin
    620     fileinfo := OniDataConnection.GetFileInfo(i);
     635  for FileID := 0 to Connection.GetFileCount - 1 do
     636  begin
     637    fileinfo := Connection.GetFileInfo(FileID);
    621638    if (fileinfo.FileType and $02) = 0 then
    622639    begin
    623640      mimecoder := TStringFormat_MIME64.Create;
    624       Data      := OniDataConnection.LoadDatFile(i);
     641      Connection.LoadDatFile(FileID, tempdata);
    625642      Query.SQL.Text :=
    626643        'INSERT INTO datfiles (id,extension,name,contenttype,size,data) VALUES (' +
    627         IntToStr(i) + ',"' + fileinfo.Extension + '","' + fileinfo.Name + '","' + IntToHex(
     644        IntToStr(FileID) + ',"' + fileinfo.Extension + '","' + fileinfo.Name + '","' + IntToHex(
    628645        fileinfo.FileType, 8) + '",' + IntToStr(fileinfo.Size) + ',MimeToBin("' +
    629         MimeCoder.StrTo(@Data[0], Length(Data)) + '") );';
     646        MimeCoder.StrTo(@tempdata[0], Length(tempdata)) + '") );';
    630647      Query.ExecSQL;
    631648      mimecoder.Free;
    632649
    633       rawlist := OniDataConnection.GetRawList(i);
    634       if Length(rawlist) > 0 then
     650      RawLinks := Connection.GetRawList(FileID);
     651      if Length(RawLinks) > 0 then
    635652      begin
    636         for j := 0 to High(rawlist) do
     653        for i := 0 to High(RawLinks) do
    637654        begin
    638           if rawlist[j].raw_size > 0 then
     655          if RawLinks[i].RawSize > 0 then
    639656          begin
    640             SetLength(Data, rawlist[j].raw_size);
    641             OniDataConnection.LoadRawFile(i, rawlist[j].src_offset, Data);
     657            SetLength(tempdata, RawLinks[i].RawSize);
     658            Connection.LoadRawFile(FileID, RawLinks[i].SrcOffset, tempdata);
    642659            mimecoder      := TStringFormat_MIME64.Create;
    643660            Query.SQL.Text :=
    644661              'INSERT INTO rawmap (src_id,src_link_offset,sep,size,data) VALUES (' +
    645               IntToStr(i) + ',' + IntToStr(rawlist[j].src_offset) + ',' + BoolToStr(
    646               rawlist[j].loc_sep) + ',' + IntToStr(rawlist[j].raw_size) + ',MimeToBin("' +
    647               MimeCoder.StrTo(@Data[0], rawlist[j].raw_size) + '") );';
     662              IntToStr(FileID) + ', ' + IntToStr(RawLinks[i].SrcOffset) + ',' +
     663              BoolToStr(RawLinks[i].LocSep) + ', ' +
     664              IntToStr(RawLinks[i].RawSize) + ', ' +
     665              'MimeToBin("' + MimeCoder.StrTo(@tempdata[0], RawLinks[i].RawSize) + '") );';
    648666            Query.ExecSQL;
    649667            mimecoder.Free;
     
    653671            Query.SQL.Text :=
    654672              'INSERT INTO rawmap (src_id,src_link_offset,sep,size) VALUES (' +
    655               IntToStr(i) + ',' + IntToStr(rawlist[j].src_offset) + ',' + BoolToStr(rawlist[j].loc_sep) + ',0);';
     673              IntToStr(FileID) + ', ' + IntToStr(RawLinks[i].SrcOffset) + ', ' +
     674              BoolToStr(RawLinks[i].LocSep) + ', 0);';
    656675            Query.ExecSQL;
    657676          end;
     
    659678      end;
    660679
    661       HandleFile(fileinfo.Extension, i, True);
     680      DatLinks := Connection.GetDatLinks(FileID);
     681      if Length(DatLinks) > 0 then
     682      begin
     683        for i := 0 to High(DatLinks) do
     684        begin
     685          Query.SQL.Text :=
     686            'INSERT INTO linkmap (src_id, src_link_offset, target_id) VALUES (' +
     687            IntToStr(FileID) + ', ' + IntToStr(DatLinks[i].SrcOffset) + ', ' +
     688            IntToStr(DatLinks[i].DestID) + ');';
     689          Query.ExecSQL;
     690        end;
     691      end;
    662692    end
    663693    else
     
    665695      Query.SQL.Text :=
    666696        'INSERT INTO datfiles (id,extension,name,contenttype,size) VALUES (' +
    667         IntToStr(i) + ',"' + fileinfo.Extension + '","' + fileinfo.Name + '","' + IntToHex(
    668         fileinfo.FileType, 8) + '",0);';
     697        IntToStr(FileID) + ', "' + fileinfo.Extension + '", ' +
     698        '"' + fileinfo.Name + '", "' + IntToHex(fileinfo.FileType, 8) + '", 0);';
    669699      Query.ExecSQL;
    670700    end;
    671     if ((i mod 100) = 0) and (i > 0) then
     701    if ((FileID mod 100) = 0) and (FileID > 0) then
    672702    begin
    673703      Database.Commit(False);
    674704      Database.StartTransaction;
    675705    end;
    676     if ((i mod 10) = 0) and (i >= 100) then
     706    if ((FileID mod 10) = 0) and (FileID >= 100) then
    677707      lbl_estimation.Caption := 'Estimated time left: ' + TimeToStr(
    678         (Time - begintime) / i * (progress.Max - i + 1) * 1.1, timeformat );
    679     progress.Position := i;
    680     lbl_progress.Caption := 'Files done: ' + IntToStr(i) + '/' + IntToStr(progress.Max);
     708        (Time - BeginTime) / FileID * (progress.Max - FileID + 1) * 1.1, timeformat );
     709    progress.Position := FileID;
     710    lbl_progress.Caption := 'Files done: ' + IntToStr(FileID) + '/' + IntToStr(progress.Max);
    681711    Application.ProcessMessages;
    682712    if abort then
    683713    begin
    684       stop_convert;
     714      StopConvert;
    685715      Exit;
    686716    end;
     
    691721    IntToStr(progress.Max);
    692722
    693   lbl_estimation.Caption := 'FINISHED (duration: ' + TimeToStr(Time - absolutebegintime, timeformat) + ')';
     723  lbl_estimation.Caption := 'FINISHED (duration: ' + TimeToStr(Time - BeginTime, timeformat) + ')';
    694724
    695725  DoStep('FIN');
     
    699729  converting := False;
    700730
    701   database.Close;
    702   database.Free;
    703 
    704   CloseDataConnection(DataConnections[conIndex]);
    705 }
     731  Query.Close;
     732  Query.Free;
     733  DataBase.Close;
     734  DataBase.Free;
    706735end;
    707 
    708 
    709 
    710 
    711 procedure TForm_LevelDB.StopConvert;
    712 begin
    713 {  btn_abortok.Caption := '&Close';
    714   btn_abortok.Default := True;
    715   converting := False;
    716   lbl_estimation.Caption := 'ABORTED';
    717   group_progress.Caption := 'Creating DB (ABORTED)';
    718   DataBase.Close;
    719   if MessageBox(Self.Handle, PChar('Delete the unfinished DB-file?'),
    720     PChar('Delete file?'), MB_YESNO) = idYes then
    721   begin
    722     DeleteFile(loaded_filename);
    723   end;
    724 }end;
    725736
    726737
     
    744755
    745756
    746 
    747 {
    748 procedure InsertDatLinkToDB(fileid: LongWord; offset: LongWord);
    749 var
    750   link: LongWord;
    751 begin
    752   OniDataConnection.LoadDatFilePart(fileid, offset, 4, @link);
    753   if link = 0 then
    754     link := $FFFFFFFF
    755   else
    756     link := link div 256;
    757   Query.SQL.Text := 'INSERT INTO linkmap (src_id,src_link_offset,target_id) VALUES (' +
    758     IntToStr(fileid) + ',' + IntToStr(offset) + ',' + IntToStr(link) + ');';
    759   Query.ExecSQL;
    760 end;
    761 
    762 
    763 
    764 
    765 procedure AISA(fileid: LongWord; dir_dat2db: Boolean);
    766 var
    767   packages: Word;
    768   i: LongWord;
    769 begin
    770   if dir_dat2db then
    771   begin
    772     OniDataConnection.LoadDatFilePart(fileid, $1E, 2, @packages);
    773     if packages > 0 then
    774     begin
    775       for i := 0 to packages - 1 do
    776         InsertDatLinkToDB(fileid, $20 + i * $160 + $28);
    777       for i := 0 to packages - 1 do
    778         InsertDatLinkToDB(fileid, $20 + i * $160 + $150);
    779     end;
    780   end
    781   else
    782   begin
    783   end;
    784 end;
    785 
    786 
    787 
    788 
    789 procedure AKEV(fileid: LongWord; dir_dat2db: Boolean);
    790 var
    791   i: LongWord;
    792 begin
    793   if dir_dat2db then
    794   begin
    795     for i := 0 to 16 do
    796       InsertDatLinkToDB(fileid, $8 + i * 4);
    797   end
    798   else
    799   begin
    800   end;
    801 end;
    802 
    803 
    804 
    805 
    806 procedure AKOT(fileid: LongWord; dir_dat2db: Boolean);
    807 var
    808   i: LongWord;
    809 begin
    810   if dir_dat2db then
    811   begin
    812     for i := 0 to 4 do
    813       InsertDatLinkToDB(fileid, $8 + i * 4);
    814   end
    815   else
    816   begin
    817   end;
    818 end;
    819 
    820 
    821 
    822 
    823 procedure CBPI(fileid: LongWord; dir_dat2db: Boolean);
    824 var
    825   i: LongWord;
    826 begin
    827   if dir_dat2db then
    828   begin
    829     for i := 0 to 56 do
    830       InsertDatLinkToDB(fileid, $8 + i * 4);
    831   end
    832   else
    833   begin
    834   end;
    835 end;
    836 
    837 
    838 
    839 
    840 procedure CBPM(fileid: LongWord; dir_dat2db: Boolean);
    841 var
    842   i: LongWord;
    843 begin
    844   if dir_dat2db then
    845   begin
    846     for i := 0 to 18 do
    847       InsertDatLinkToDB(fileid, $8 + i * 4);
    848   end
    849   else
    850   begin
    851   end;
    852 end;
    853 
    854 
    855 
    856 
    857 procedure CONS(fileid: LongWord; dir_dat2db: Boolean);
    858 var
    859   i: LongWord;
    860 begin
    861   if dir_dat2db then
    862   begin
    863     for i := 0 to 1 do
    864       InsertDatLinkToDB(fileid, $24 + i * 4);
    865   end
    866   else
    867   begin
    868   end;
    869 end;
    870 
    871 
    872 
    873 
    874 procedure CRSA(fileid: LongWord; dir_dat2db: Boolean);
    875 var
    876   packages: LongWord;
    877   i: LongWord;
    878 begin
    879   if dir_dat2db then
    880   begin
    881     OniDataConnection.LoadDatFilePart(fileid, $14, 4, @packages);
    882     if packages > 0 then
    883       for i := 0 to packages - 1 do
    884         InsertDatLinkToDB(fileid, $20 + i * 1100 + $A0);
    885   end
    886   else
    887   begin
    888   end;
    889 end;
    890 
    891 
    892 
    893 
    894 procedure DOOR(fileid: LongWord; dir_dat2db: Boolean);
    895 begin
    896   if dir_dat2db then
    897   begin
    898     InsertDatLinkToDB(fileid, $08);
    899     InsertDatLinkToDB(fileid, $10);
    900   end
    901   else
    902   begin
    903   end;
    904 end;
    905 
    906 
    907 
    908 
    909 procedure DPGE(fileid: LongWord; dir_dat2db: Boolean);
    910 begin
    911   if dir_dat2db then
    912   begin
    913     InsertDatLinkToDB(fileid, $40);
    914   end
    915   else
    916   begin
    917   end;
    918 end;
    919 
    920 
    921 
    922 
    923 procedure HPGE(fileid: LongWord; dir_dat2db: Boolean);
    924 begin
    925   if dir_dat2db then
    926   begin
    927     InsertDatLinkToDB(fileid, $0C);
    928   end
    929   else
    930   begin
    931   end;
    932 end;
    933 
    934 
    935 
    936 
    937 procedure IGHH(fileid: LongWord; dir_dat2db: Boolean);
    938 begin
    939   if dir_dat2db then
    940   begin
    941     InsertDatLinkToDB(fileid, $24);
    942     InsertDatLinkToDB(fileid, $28);
    943   end
    944   else
    945   begin
    946   end;
    947 end;
    948 
    949 
    950 
    951 
    952 procedure IGPA(fileid: LongWord; dir_dat2db: Boolean);
    953 var
    954   links: LongWord;
    955   i:     LongWord;
    956 begin
    957   if dir_dat2db then
    958   begin
    959     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @links);
    960     if links > 0 then
    961       for i := 0 to links - 1 do
    962         InsertDatLinkToDB(fileid, $20 + i * 4);
    963   end
    964   else
    965   begin
    966   end;
    967 end;
    968 
    969 
    970 
    971 
    972 procedure IGPG(fileid: LongWord; dir_dat2db: Boolean);
    973 var
    974   i: LongWord;
    975 begin
    976   if dir_dat2db then
    977   begin
    978     for i := 0 to 1 do
    979       InsertDatLinkToDB(fileid, $1C + i * 4);
    980   end
    981   else
    982   begin
    983   end;
    984 end;
    985 
    986 
    987 
    988 
    989 procedure IGSA(fileid: LongWord; dir_dat2db: Boolean);
    990 var
    991   links: LongWord;
    992   i:     LongWord;
    993 begin
    994   if dir_dat2db then
    995   begin
    996     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @links);
    997     if links > 0 then
    998       for i := 0 to links - 1 do
    999         InsertDatLinkToDB(fileid, $20 + i * 4);
    1000   end
    1001   else
    1002   begin
    1003   end;
    1004 end;
    1005 
    1006 
    1007 
    1008 
    1009 procedure IMPT(fileid: LongWord; dir_dat2db: Boolean);
    1010 begin
    1011   if dir_dat2db then
    1012   begin
    1013     InsertDatLinkToDB(fileid, $10);
    1014   end
    1015   else
    1016   begin
    1017   end;
    1018 end;
    1019 
    1020 
    1021 
    1022 
    1023 procedure IPGE(fileid: LongWord; dir_dat2db: Boolean);
    1024 begin
    1025   if dir_dat2db then
    1026   begin
    1027     InsertDatLinkToDB(fileid, $0C);
    1028   end
    1029   else
    1030   begin
    1031   end;
    1032 end;
    1033 
    1034 
    1035 
    1036 
    1037 procedure KEYI(fileid: LongWord; dir_dat2db: Boolean);
    1038 var
    1039   i: LongWord;
    1040 begin
    1041   if dir_dat2db then
    1042   begin
    1043     for i := 0 to 9 do
    1044       InsertDatLinkToDB(fileid, $08 + i * 4);
    1045   end
    1046   else
    1047   begin
    1048   end;
    1049 end;
    1050 
    1051 
    1052 
    1053 
    1054 procedure M3GA(fileid: LongWord; dir_dat2db: Boolean);
    1055 var
    1056   links: LongWord;
    1057   i:     LongWord;
    1058 begin
    1059   if dir_dat2db then
    1060   begin
    1061     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @links);
    1062     if links > 0 then
    1063       for i := 0 to links - 1 do
    1064         InsertDatLinkToDB(fileid, $20 + i * 4);
    1065   end
    1066   else
    1067   begin
    1068   end;
    1069 end;
    1070 
    1071 
    1072 
    1073 
    1074 procedure M3GM(fileid: LongWord; dir_dat2db: Boolean);
    1075 var
    1076   i: LongWord;
    1077 begin
    1078   if dir_dat2db then
    1079   begin
    1080     for i := 0 to 6 do
    1081       InsertDatLinkToDB(fileid, $0C + i * 4);
    1082   end
    1083   else
    1084   begin
    1085   end;
    1086 end;
    1087 
    1088 
    1089 
    1090 
    1091 procedure MTRL(fileid: LongWord; dir_dat2db: Boolean);
    1092 begin
    1093   if dir_dat2db then
    1094   begin
    1095     InsertDatLinkToDB(fileid, $10);
    1096   end
    1097   else
    1098   begin
    1099   end;
    1100 end;
    1101 
    1102 
    1103 
    1104 
    1105 procedure OBDC(fileid: LongWord; dir_dat2db: Boolean);
    1106 var
    1107   packages: Word;
    1108   i: LongWord;
    1109 begin
    1110   if dir_dat2db then
    1111   begin
    1112     OniDataConnection.LoadDatFilePart(fileid, $1E, 2, @packages);
    1113     if packages > 0 then
    1114       for i := 0 to packages - 1 do
    1115         InsertDatLinkToDB(fileid, $20 + i * $18 + $4);
    1116   end
    1117   else
    1118   begin
    1119   end;
    1120 end;
    1121 
    1122 
    1123 
    1124 
    1125 procedure OBOA(fileid: LongWord; dir_dat2db: Boolean);
    1126 var
    1127   packages: Word;
    1128   i: LongWord;
    1129 begin
    1130   if dir_dat2db then
    1131   begin
    1132     OniDataConnection.LoadDatFilePart(fileid, $1E, 2, @packages);
    1133     if packages > 0 then
    1134       for i := 0 to packages - 1 do
    1135       begin
    1136         InsertDatLinkToDB(fileid, $20 + i * 240 + $0);
    1137         InsertDatLinkToDB(fileid, $20 + i * 240 + $4);
    1138         InsertDatLinkToDB(fileid, $20 + i * 240 + $8);
    1139       end;
    1140   end
    1141   else
    1142   begin
    1143   end;
    1144 end;
    1145 
    1146 
    1147 
    1148 
    1149 procedure OFGA(fileid: LongWord; dir_dat2db: Boolean);
    1150 var
    1151   packages: LongWord;
    1152   i: LongWord;
    1153 begin
    1154   if dir_dat2db then
    1155   begin
    1156     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @packages);
    1157     if packages > 0 then
    1158       for i := 0 to packages - 1 do
    1159         InsertDatLinkToDB(fileid, $20 + i * 12 + $04);
    1160   end
    1161   else
    1162   begin
    1163   end;
    1164 end;
    1165 
    1166 
    1167 
    1168 
    1169 procedure ONCC(fileid: LongWord; dir_dat2db: Boolean);
    1170 var
    1171   i: LongWord;
    1172 begin
    1173   if dir_dat2db then
    1174   begin
    1175     InsertDatLinkToDB(fileid, $28);
    1176     InsertDatLinkToDB(fileid, $434);
    1177     InsertDatLinkToDB(fileid, $438);
    1178     InsertDatLinkToDB(fileid, $43C);
    1179     InsertDatLinkToDB(fileid, $C3C);
    1180     InsertDatLinkToDB(fileid, $C40);
    1181     InsertDatLinkToDB(fileid, $C44);
    1182     InsertDatLinkToDB(fileid, $C48);
    1183     InsertDatLinkToDB(fileid, $C88);
    1184     InsertDatLinkToDB(fileid, $C8C);
    1185   end
    1186   else
    1187   begin
    1188   end;
    1189 end;
    1190 
    1191 
    1192 
    1193 
    1194 procedure ONCV(fileid: LongWord; dir_dat2db: Boolean);
    1195 begin
    1196   if dir_dat2db then
    1197   begin
    1198     InsertDatLinkToDB(fileid, $08);
    1199   end
    1200   else
    1201   begin
    1202   end;
    1203 end;
    1204 
    1205 
    1206 
    1207 
    1208 procedure ONLV(fileid: LongWord; dir_dat2db: Boolean);
    1209 var
    1210   i: LongWord;
    1211 begin
    1212   if dir_dat2db then
    1213   begin
    1214     for i := 0 to 5 do
    1215       InsertDatLinkToDB(fileid, $48 + i * 4);
    1216     for i := 0 to 5 do
    1217       InsertDatLinkToDB(fileid, $64 + i * 4);
    1218     InsertDatLinkToDB(fileid, $300);
    1219   end
    1220   else
    1221   begin
    1222   end;
    1223 end;
    1224 
    1225 
    1226 
    1227 
    1228 procedure ONOA(fileid: LongWord; dir_dat2db: Boolean);
    1229 var
    1230   packages: LongWord;
    1231   i: LongWord;
    1232 begin
    1233   if dir_dat2db then
    1234   begin
    1235     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @packages);
    1236     if packages > 0 then
    1237       for i := 0 to packages - 1 do
    1238         InsertDatLinkToDB(fileid, $20 + i * 8 + $04);
    1239   end
    1240   else
    1241   begin
    1242   end;
    1243 end;
    1244 
    1245 
    1246 
    1247 
    1248 procedure ONSK(fileid: LongWord; dir_dat2db: Boolean);
    1249 begin
    1250   if dir_dat2db then
    1251   begin
    1252     InsertDatLinkToDB(fileid, $08);
    1253     InsertDatLinkToDB(fileid, $0C);
    1254     InsertDatLinkToDB(fileid, $10);
    1255     InsertDatLinkToDB(fileid, $14);
    1256     InsertDatLinkToDB(fileid, $18);
    1257     InsertDatLinkToDB(fileid, $20);
    1258     InsertDatLinkToDB(fileid, $44);
    1259   end
    1260   else
    1261   begin
    1262   end;
    1263 end;
    1264 
    1265 
    1266 
    1267 
    1268 procedure ONVL(fileid: LongWord; dir_dat2db: Boolean);
    1269 var
    1270   packages: LongWord;
    1271   i: LongWord;
    1272 begin
    1273   if dir_dat2db then
    1274   begin
    1275     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @packages);
    1276     if packages > 0 then
    1277       for i := 0 to packages - 1 do
    1278         InsertDatLinkToDB(fileid, $20 + i * 4);
    1279   end
    1280   else
    1281   begin
    1282   end;
    1283 end;
    1284 
    1285 
    1286 
    1287 
    1288 procedure ONWC(fileid: LongWord; dir_dat2db: Boolean);
    1289 begin
    1290   if dir_dat2db then
    1291   begin
    1292     InsertDatLinkToDB(fileid, $28);
    1293     InsertDatLinkToDB(fileid, $34);
    1294     InsertDatLinkToDB(fileid, $40);
    1295     InsertDatLinkToDB(fileid, $54);
    1296     InsertDatLinkToDB(fileid, $58);
    1297     InsertDatLinkToDB(fileid, $5C);
    1298     InsertDatLinkToDB(fileid, $60);
    1299     InsertDatLinkToDB(fileid, $6FC);
    1300     InsertDatLinkToDB(fileid, $700);
    1301   end
    1302   else
    1303   begin
    1304   end;
    1305 end;
    1306 
    1307 
    1308 
    1309 
    1310 procedure OPGE(fileid: LongWord; dir_dat2db: Boolean);
    1311 begin
    1312   if dir_dat2db then
    1313   begin
    1314     InsertDatLinkToDB(fileid, $0C);
    1315   end
    1316   else
    1317   begin
    1318   end;
    1319 end;
    1320 
    1321 
    1322 
    1323 
    1324 procedure PSPC(fileid: LongWord; dir_dat2db: Boolean);
    1325 begin
    1326   if dir_dat2db then
    1327   begin
    1328     InsertDatLinkToDB(fileid, $50);
    1329   end
    1330   else
    1331   begin
    1332   end;
    1333 end;
    1334 
    1335 
    1336 
    1337 
    1338 procedure PSPL(fileid: LongWord; dir_dat2db: Boolean);
    1339 var
    1340   packages: LongWord;
    1341   i: LongWord;
    1342 begin
    1343   if dir_dat2db then
    1344   begin
    1345     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @packages);
    1346     if packages > 0 then
    1347       for i := 0 to packages - 1 do
    1348         InsertDatLinkToDB(fileid, $20 + i * 8 + $4);
    1349   end
    1350   else
    1351   begin
    1352   end;
    1353 end;
    1354 
    1355 
    1356 
    1357 
    1358 procedure PSUI(fileid: LongWord; dir_dat2db: Boolean);
    1359 var
    1360   i: LongWord;
    1361 begin
    1362   if dir_dat2db then
    1363   begin
    1364     for i := 0 to 43 do
    1365       InsertDatLinkToDB(fileid, $08 + i * 4);
    1366   end
    1367   else
    1368   begin
    1369   end;
    1370 end;
    1371 
    1372 
    1373 
    1374 
    1375 procedure STNA(fileid: LongWord; dir_dat2db: Boolean);
    1376 var
    1377   packages: Word;
    1378   i: LongWord;
    1379 begin
    1380   if dir_dat2db then
    1381   begin
    1382     OniDataConnection.LoadDatFilePart(fileid, $1E, 2, @packages);
    1383     if packages > 0 then
    1384       for i := 0 to packages - 1 do
    1385         InsertDatLinkToDB(fileid, $20 + i * 4);
    1386   end
    1387   else
    1388   begin
    1389   end;
    1390 end;
    1391 
    1392 
    1393 
    1394 
    1395 procedure TRAC(fileid: LongWord; dir_dat2db: Boolean);
    1396 var
    1397   packages: Word;
    1398   i: LongWord;
    1399 begin
    1400   if dir_dat2db then
    1401   begin
    1402     InsertDatLinkToDB(fileid, $18);
    1403     OniDataConnection.LoadDatFilePart(fileid, $1E, 2, @packages);
    1404     if packages > 0 then
    1405       for i := 0 to packages - 1 do
    1406         InsertDatLinkToDB(fileid, $20 + i * 12 + 8);
    1407   end
    1408   else
    1409   begin
    1410   end;
    1411 end;
    1412 
    1413 
    1414 
    1415 
    1416 procedure TRAM(fileid: LongWord; dir_dat2db: Boolean);
    1417 begin
    1418   if dir_dat2db then
    1419   begin
    1420     InsertDatLinkToDB(fileid, $40);
    1421     InsertDatLinkToDB(fileid, $44);
    1422   end
    1423   else
    1424   begin
    1425   end;
    1426 end;
    1427 
    1428 
    1429 
    1430 
    1431 procedure TRAS(fileid: LongWord; dir_dat2db: Boolean);
    1432 begin
    1433   if dir_dat2db then
    1434   begin
    1435     InsertDatLinkToDB(fileid, $08);
    1436   end
    1437   else
    1438   begin
    1439   end;
    1440 end;
    1441 
    1442 
    1443 
    1444 
    1445 procedure TRBS(fileid: LongWord; dir_dat2db: Boolean);
    1446 var
    1447   i: LongWord;
    1448 begin
    1449   if dir_dat2db then
    1450   begin
    1451     for i := 0 to 4 do
    1452       InsertDatLinkToDB(fileid, $08 + i * 4);
    1453   end
    1454   else
    1455   begin
    1456   end;
    1457 end;
    1458 
    1459 
    1460 
    1461 
    1462 procedure TRCM(fileid: LongWord; dir_dat2db: Boolean);
    1463 var
    1464   i: LongWord;
    1465 begin
    1466   if dir_dat2db then
    1467   begin
    1468     for i := 0 to 2 do
    1469       InsertDatLinkToDB(fileid, $5C + i * 4);
    1470   end
    1471   else
    1472   begin
    1473   end;
    1474 end;
    1475 
    1476 
    1477 
    1478 
    1479 procedure TRGA(fileid: LongWord; dir_dat2db: Boolean);
    1480 var
    1481   i: LongWord;
    1482   packages: Word;
    1483 begin
    1484   if dir_dat2db then
    1485   begin
    1486     OniDataConnection.LoadDatFilePart(fileid, $1E, 2, @packages);
    1487     if packages > 0 then
    1488       for i := 0 to packages - 1 do
    1489         InsertDatLinkToDB(fileid, $20 + i * 4);
    1490   end
    1491   else
    1492   begin
    1493   end;
    1494 end;
    1495 
    1496 
    1497 
    1498 
    1499 procedure TRGE(fileid: LongWord; dir_dat2db: Boolean);
    1500 begin
    1501   if dir_dat2db then
    1502   begin
    1503     InsertDatLinkToDB(fileid, $20);
    1504   end
    1505   else
    1506   begin
    1507   end;
    1508 end;
    1509 
    1510 
    1511 
    1512 
    1513 procedure TRIG(fileid: LongWord; dir_dat2db: Boolean);
    1514 begin
    1515   if dir_dat2db then
    1516   begin
    1517     InsertDatLinkToDB(fileid, $18);
    1518     InsertDatLinkToDB(fileid, $24);
    1519     InsertDatLinkToDB(fileid, $28);
    1520   end
    1521   else
    1522   begin
    1523   end;
    1524 end;
    1525 
    1526 
    1527 
    1528 
    1529 procedure TRMA(fileid: LongWord; dir_dat2db: Boolean);
    1530 var
    1531   i: LongWord;
    1532   packages: Word;
    1533 begin
    1534   if dir_dat2db then
    1535   begin
    1536     OniDataConnection.LoadDatFilePart(fileid, $1E, 2, @packages);
    1537     if packages > 0 then
    1538       for i := 0 to packages - 1 do
    1539         InsertDatLinkToDB(fileid, $20 + i * 4);
    1540   end
    1541   else
    1542   begin
    1543   end;
    1544 end;
    1545 
    1546 
    1547 
    1548 
    1549 procedure TRSC(fileid: LongWord; dir_dat2db: Boolean);
    1550 var
    1551   i: LongWord;
    1552   packages: Word;
    1553 begin
    1554   if dir_dat2db then
    1555   begin
    1556     OniDataConnection.LoadDatFilePart(fileid, $1E, 2, @packages);
    1557     if packages > 0 then
    1558       for i := 0 to packages - 1 do
    1559         InsertDatLinkToDB(fileid, $20 + i * 4);
    1560   end
    1561   else
    1562   begin
    1563   end;
    1564 end;
    1565 
    1566 
    1567 
    1568 
    1569 procedure TSFF(fileid: LongWord; dir_dat2db: Boolean);
    1570 var
    1571   i: LongWord;
    1572   packages: LongWord;
    1573 begin
    1574   if dir_dat2db then
    1575   begin
    1576     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @packages);
    1577     if packages > 0 then
    1578       for i := 0 to packages - 1 do
    1579         InsertDatLinkToDB(fileid, $20 + i * 4);
    1580   end
    1581   else
    1582   begin
    1583   end;
    1584 end;
    1585 
    1586 
    1587 
    1588 
    1589 procedure TSFT(fileid: LongWord; dir_dat2db: Boolean);
    1590 begin
    1591   if dir_dat2db then
    1592   begin
    1593     InsertDatLinkToDB(fileid, $1C);
    1594   end
    1595   else
    1596   begin
    1597   end;
    1598 end;
    1599 
    1600 
    1601 
    1602 
    1603 procedure TURR(fileid: LongWord; dir_dat2db: Boolean);
    1604 begin
    1605   if dir_dat2db then
    1606   begin
    1607     InsertDatLinkToDB(fileid, $60);
    1608     InsertDatLinkToDB(fileid, $6C);
    1609     InsertDatLinkToDB(fileid, $74);
    1610   end
    1611   else
    1612   begin
    1613   end;
    1614 end;
    1615 
    1616 
    1617 
    1618 
    1619 procedure TXAN(fileid: LongWord; dir_dat2db: Boolean);
    1620 var
    1621   i: LongWord;
    1622   packages: LongWord;
    1623 begin
    1624   if dir_dat2db then
    1625   begin
    1626     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @packages);
    1627     if packages > 0 then
    1628       for i := 0 to packages - 1 do
    1629         InsertDatLinkToDB(fileid, $20 + i * 4);
    1630   end
    1631   else
    1632   begin
    1633   end;
    1634 end;
    1635 
    1636 
    1637 
    1638 
    1639 procedure TXMA(fileid: LongWord; dir_dat2db: Boolean);
    1640 var
    1641   i: LongWord;
    1642   packages: LongWord;
    1643 begin
    1644   if dir_dat2db then
    1645   begin
    1646     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @packages);
    1647     if packages > 0 then
    1648       for i := 0 to packages - 1 do
    1649         InsertDatLinkToDB(fileid, $20 + i * 4);
    1650   end
    1651   else
    1652   begin
    1653   end;
    1654 end;
    1655 
    1656 
    1657 
    1658 
    1659 procedure TXMB(fileid: LongWord; dir_dat2db: Boolean);
    1660 var
    1661   i: LongWord;
    1662   packages: LongWord;
    1663 begin
    1664   if dir_dat2db then
    1665   begin
    1666     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @packages);
    1667     if packages > 0 then
    1668       for i := 0 to packages - 1 do
    1669         InsertDatLinkToDB(fileid, $20 + i * 4);
    1670   end
    1671   else
    1672   begin
    1673   end;
    1674 end;
    1675 
    1676 
    1677 
    1678 
    1679 procedure TXMP(fileid: LongWord; dir_dat2db: Boolean);
    1680 begin
    1681   if dir_dat2db then
    1682   begin
    1683     InsertDatLinkToDB(fileid, $94);
    1684     InsertDatLinkToDB(fileid, $98);
    1685   end
    1686   else
    1687   begin
    1688   end;
    1689 end;
    1690 
    1691 
    1692 
    1693 
    1694 procedure TXTC(fileid: LongWord; dir_dat2db: Boolean);
    1695 begin
    1696   if dir_dat2db then
    1697   begin
    1698     InsertDatLinkToDB(fileid, $08);
    1699   end
    1700   else
    1701   begin
    1702   end;
    1703 end;
    1704 
    1705 
    1706 
    1707 
    1708 procedure WMCL(fileid: LongWord; dir_dat2db: Boolean);
    1709 var
    1710   i: LongWord;
    1711   packages: LongWord;
    1712 begin
    1713   if dir_dat2db then
    1714   begin
    1715     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @packages);
    1716     if packages > 0 then
    1717       for i := 0 to packages - 1 do
    1718         InsertDatLinkToDB(fileid, $20 + i * 8 + $4);
    1719   end
    1720   else
    1721   begin
    1722   end;
    1723 end;
    1724 
    1725 
    1726 
    1727 
    1728 procedure WMDD(fileid: LongWord; dir_dat2db: Boolean);
    1729 var
    1730   i: LongWord;
    1731   packages: LongWord;
    1732 begin
    1733   if dir_dat2db then
    1734   begin
    1735     OniDataConnection.LoadDatFilePart(fileid, $11C, 4, @packages);
    1736     if packages > 0 then
    1737       for i := 0 to packages - 1 do
    1738         InsertDatLinkToDB(fileid, $120 + i * $124 + $114);
    1739   end
    1740   else
    1741   begin
    1742   end;
    1743 end;
    1744 
    1745 
    1746 
    1747 
    1748 procedure WMMB(fileid: LongWord; dir_dat2db: Boolean);
    1749 var
    1750   i: LongWord;
    1751   packages: LongWord;
    1752 begin
    1753   if dir_dat2db then
    1754   begin
    1755     OniDataConnection.LoadDatFilePart(fileid, $1C, 4, @packages);
    1756     if packages > 0 then
    1757       for i := 0 to packages - 1 do
    1758         InsertDatLinkToDB(fileid, $20 + i * 4);
    1759   end
    1760   else
    1761   begin
    1762   end;
    1763 end;
    1764 
    1765 
    1766 
    1767 
    1768 procedure WPGE(fileid: LongWord; dir_dat2db: Boolean);
    1769 begin
    1770   if dir_dat2db then
    1771   begin
    1772     InsertDatLinkToDB(fileid, $08);
    1773     InsertDatLinkToDB(fileid, $0C);
    1774   end
    1775   else
    1776   begin
    1777   end;
    1778 end;
    1779 }
    1780 
    1781 
    1782 {
    1783 procedure InsertHandler(ext: String; needed: Boolean; handler: THandler);
    1784 begin
    1785   SetLength(ConvertHandlers, Length(ConvertHandlers) + 1);
    1786   ConvertHandlers[High(ConvertHandlers)].Ext     := ext;
    1787   ConvertHandlers[High(ConvertHandlers)].needed  := needed;
    1788   ConvertHandlers[High(ConvertHandlers)].handler := handler;
    1789 end;
    1790 }
    1791 begin
    1792 {  InsertHandler('ABNA', False, nil);
    1793   //  InsertHandler('AGDB',True,AGDB);
    1794   InsertHandler('AGDB', False, nil);
    1795   InsertHandler('AGQC', False, nil);
    1796   InsertHandler('AGQG', False, nil);
    1797   InsertHandler('AGQR', False, nil);
    1798   InsertHandler('AISA', True, AISA);
    1799   InsertHandler('AITR', False, nil);
    1800   InsertHandler('AKAA', False, nil);
    1801   InsertHandler('AKBA', False, nil);
    1802   InsertHandler('AKBP', False, nil);
    1803   InsertHandler('AKDA', False, nil);
    1804   InsertHandler('AKEV', True, AKEV);
    1805   InsertHandler('AKOT', True, AKOT);
    1806   InsertHandler('AKVA', False, nil);
    1807   InsertHandler('BINA', False, nil);
    1808   InsertHandler('CBPI', True, CBPI);
    1809   InsertHandler('CBPM', True, CBPM);
    1810   InsertHandler('CONS', True, CONS);
    1811   InsertHandler('CRSA', True, CRSA);
    1812   InsertHandler('DOOR', True, DOOR);
    1813   InsertHandler('DPGE', True, DPGE);
    1814   InsertHandler('ENVP', False, nil);
    1815   InsertHandler('FILM', False, nil);
    1816   InsertHandler('HPGE', True, HPGE);
    1817   InsertHandler('IDXA', False, nil);
    1818   InsertHandler('IGHH', True, IGHH);
    1819   InsertHandler('IGPA', True, IGPA);
    1820   InsertHandler('IGPG', True, IGPG);
    1821   InsertHandler('IGSA', True, IGSA);
    1822   InsertHandler('IMPT', True, IMPT);
    1823   InsertHandler('IPGE', True, IPGE);
    1824   InsertHandler('KEYI', True, KEYI);
    1825   InsertHandler('M3GA', True, M3GA);
    1826   InsertHandler('M3GM', True, M3GM);
    1827   InsertHandler('MTRL', True, MTRL);
    1828   InsertHandler('OBAN', False, nil);
    1829   InsertHandler('OBDC', True, OBDC);
    1830   InsertHandler('OBOA', True, OBOA);
    1831   InsertHandler('OFGA', True, OFGA);
    1832   InsertHandler('ONCC', True, ONCC);
    1833   InsertHandler('ONCP', False, nil);
    1834   InsertHandler('ONCV', True, ONCV);
    1835   InsertHandler('ONFA', False, nil);
    1836   InsertHandler('ONGS', False, nil);
    1837   InsertHandler('ONIA', False, nil);
    1838   InsertHandler('ONLD', False, nil);
    1839   InsertHandler('ONLV', True, ONLV);
    1840   InsertHandler('ONMA', False, nil);
    1841   InsertHandler('ONOA', True, ONOA);
    1842   InsertHandler('ONSA', False, nil);
    1843   InsertHandler('ONSK', True, ONSK);
    1844   InsertHandler('ONTA', False, nil);
    1845   InsertHandler('ONVL', True, ONVL);
    1846   InsertHandler('ONWC', True, ONWC);
    1847   InsertHandler('OPGE', True, OPGE);
    1848   InsertHandler('OSBD', False, nil);
    1849   InsertHandler('OTIT', False, nil);
    1850   InsertHandler('OTLF', False, nil);
    1851   InsertHandler('PLEA', False, nil);
    1852   InsertHandler('PNTA', False, nil);
    1853   InsertHandler('PSPC', True, PSPC);
    1854   InsertHandler('PSPL', True, PSPL);
    1855   InsertHandler('PSUI', True, PSUI);
    1856   InsertHandler('QTNA', False, nil);
    1857   InsertHandler('SNDD', False, nil);
    1858   InsertHandler('STNA', True, STNA);
    1859   InsertHandler('SUBT', False, nil);
    1860   InsertHandler('TRAC', True, TRAC);
    1861   InsertHandler('TRAM', True, TRAM);
    1862   InsertHandler('TRAS', True, TRAS);
    1863   InsertHandler('TRBS', True, TRBS);
    1864   InsertHandler('TRCM', True, TRCM);
    1865   InsertHandler('TRGA', True, TRGA);
    1866   InsertHandler('TRGE', True, TRGE);
    1867   InsertHandler('TRIA', False, nil);
    1868   InsertHandler('TRIG', True, TRIG);
    1869   InsertHandler('TRMA', True, TRMA);
    1870   InsertHandler('TRSC', True, TRSC);
    1871   InsertHandler('TRTA', False, nil);
    1872   InsertHandler('TSFF', True, TSFF);
    1873   InsertHandler('TSFL', False, nil);
    1874   InsertHandler('TSFT', True, TSFT);
    1875   InsertHandler('TSGA', False, nil);
    1876   InsertHandler('TSTR', False, nil);
    1877   InsertHandler('TURR', True, TURR);
    1878   InsertHandler('TXAN', True, TXAN);
    1879   InsertHandler('TXCA', False, nil);
    1880   InsertHandler('TXMA', True, TXMA);
    1881   InsertHandler('TXMB', True, TXMB);
    1882   InsertHandler('TXMP', True, TXMP);
    1883   InsertHandler('TXTC', True, TXTC);
    1884   InsertHandler('VCRA', False, nil);
    1885   InsertHandler('WMCL', True, WMCL);
    1886   InsertHandler('WMDD', True, WMDD);
    1887   InsertHandler('WMM_', False, nil);
    1888   InsertHandler('WMMB', True, WMMB);
    1889   InsertHandler('WPGE', True, WPGE);
    1890 }end.
     757end.
Note: See TracChangeset for help on using the changeset viewer.