| 34 |  | procedure UpdateDatFilePart(FileID, Offset, Size: Integer; Src: TStream); overload; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 35 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 36 |  | function GetDatLinks(FileID: Integer): TDatLinkList; override; | 
 
 
 
 
 
 
 
 | 37 | + | function GetDatLink(FileID, DatOffset: Integer): TDatLink; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 38 |  | function GetRawList(FileID: Integer): TRawDataList; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 39 |  | function GetRawInfo(FileID, DatOffset: Integer): TRawDataInfo; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 40 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 51 |  | implementation | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 52 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 53 |  | uses | 
 
 
 
 
 
 
 
 
 
 
 | 54 | < | SysUtils, StrUtils, Data, Functions, RawList; | 
 
 
 
 
 
 
 
 
 | 54 | > | SysUtils, StrUtils, Data, Functions, RawList, DatLinks; | 
 
 
 
 
 
 
 
 
 
 
 | 55 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 56 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 57 |  | (* | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 398 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 399 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 400 |  |  | 
 
 
 
 
 
 
 
 | 401 | + | function TAccess_OniArchive.GetDatLink(FileID, DatOffset: Integer): TDatLink; | 
 
 
 
 
 
 
 
 | 402 | + | var | 
 
 
 
 
 
 
 
 | 403 | + | link: Integer; | 
 
 
 
 
 
 
 
 | 404 | + | begin | 
 
 
 
 
 
 
 
 | 405 | + | Result := DatLinksManager.GetDatLink(FConnectionID, FileID, DatOffset); | 
 
 
 
 
 
 
 
 | 406 | + | LoadDatFilePart(fileid, Result.SrcOffset, 4, @link); | 
 
 
 
 
 
 
 
 | 407 | + | if link > 0 then | 
 
 
 
 
 
 
 
 | 408 | + | Result.DestID := link div 256 | 
 
 
 
 
 
 
 
 | 409 | + | else | 
 
 
 
 
 
 
 
 | 410 | + | Result.DestID := -1; | 
 
 
 
 
 
 
 
 | 411 | + | end; | 
 
 
 
 
 
 
 
 | 412 | + |  | 
 
 
 
 
 
 
 
 | 413 | + |  | 
 
 
 
 
 
 
 
 | 414 | + | function TAccess_OniArchive.GetDatLinks(FileID: Integer): TDatLinkList; | 
 
 
 
 
 
 
 
 | 415 | + | var | 
 
 
 
 
 
 
 
 | 416 | + | i: Integer; | 
 
 
 
 
 
 
 
 | 417 | + | link: Integer; | 
 
 
 
 
 
 
 
 | 418 | + | begin | 
 
 
 
 
 
 
 
 | 419 | + | Result := DatLinksManager.GetDatLinks(FConnectionID, FileID); | 
 
 
 
 
 
 
 
 | 420 | + | if Length(Result) > 0 then | 
 
 
 
 
 
 
 
 | 421 | + | begin | 
 
 
 
 
 
 
 
 | 422 | + | for i := 0 to High(Result) do | 
 
 
 
 
 
 
 
 | 423 | + | begin | 
 
 
 
 
 
 
 
 | 424 | + | LoadDatFilePart(fileid, Result[i].SrcOffset, 4, @link); | 
 
 
 
 
 
 
 
 | 425 | + | if link > 0 then | 
 
 
 
 
 
 
 
 | 426 | + | Result[i].DestID := link div 256 | 
 
 
 
 
 
 
 
 | 427 | + | else | 
 
 
 
 
 
 
 
 | 428 | + | Result[i].DestID := -1; | 
 
 
 
 
 
 
 
 | 429 | + | end; | 
 
 
 
 
 
 
 
 | 430 | + | end; | 
 
 
 
 
 
 
 
 | 431 | + | end; | 
 
 
 
 
 
 
 
 | 432 | + |  | 
 
 
 
 
 
 
 
 | 433 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 434 |  | function TAccess_OniArchive.GetRawList(FileID: Integer): TRawDataList; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 435 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 436 |  | Result := RawLists.GetRawList(FConnectionID, FileID); |