| 38 |  | function GetRawList(FileID: Integer): TRawDataList; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 39 |  | function GetRawInfo(FileID, DatOffset: Integer): TRawDataInfo; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 40 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 41 | < | procedure LoadRawOffset(LocSep: Boolean; RawAddr, Size: Integer; target: Pointer); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 41 | > | procedure LoadRawOffset(LocSep: Boolean; RawAddr, Size: Integer; var target: TStream); overload; | 
 
 
 
 
 | 42 | > | procedure LoadRawOffset(LocSep: Boolean; RawAddr, Size: Integer; target: Pointer); overload; | 
 
 
 
 
 
 
 
 
 
 
 | 43 |  | procedure LoadRawFile(FileID, DatOffset: Integer; var Target: TStream); overload; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 44 |  | procedure UpdateRawFile(FileID, DatOffset: Integer; Src: TStream); overload; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 45 |  | procedure LoadRawFilePart(FileID, DatOffset, Offset, Size: Integer; var Target: TStream); overload; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 445 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 446 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 447 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 448 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 448 | < | procedure TAccess_OniArchive.LoadRawOffset(LocSep: Boolean; RawAddr, Size: Integer; target: Pointer); | 
 
 
 
 
 
 
 
 
 | 448 | > | procedure TAccess_OniArchive.LoadRawOffset(LocSep: Boolean; RawAddr, Size: Integer; var target: TStream); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 449 |  | begin | 
 
 
 
 
 
 
 
 | 450 | + | if not Assigned(Target) then | 
 
 
 
 
 
 
 
 | 451 | + | Target := TMemoryStream.Create; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 452 |  | if not LocSep then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 453 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 454 |  | if not FRawOpened then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 457 |  | if RawAddr <= Fraw_file.Size then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 458 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 459 |  | Fraw_file.Seek(RawAddr, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 | 460 | < | Fraw_file.Read(target^, size); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 460 | > | Target.CopyFrom(Fraw_file, size); | 
 
 
 
 
 | 461 | > | Target.Seek(0, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 | 462 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 463 |  | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 464 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 476 |  | if RawAddr <= Fsep_file.Size then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 477 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 478 |  | Fsep_file.Seek(RawAddr, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 | 479 | < | Fsep_file.Read(target^, size); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 479 | > | Target.CopyFrom(Fsep_file, size); | 
 
 
 
 
 | 480 | > | Target.Seek(0, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 | 481 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 482 |  | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 483 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 489 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 490 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 491 |  |  | 
 
 
 
 
 
 
 
 | 492 | + | procedure TAccess_OniArchive.LoadRawOffset(LocSep: Boolean; RawAddr, Size: Integer; target: Pointer); | 
 
 
 
 
 
 
 
 | 493 | + | var | 
 
 
 
 
 
 
 
 | 494 | + | data: TStream; | 
 
 
 
 
 
 
 
 | 495 | + | begin | 
 
 
 
 
 
 
 
 | 496 | + | data := nil; | 
 
 
 
 
 
 
 
 | 497 | + | LoadRawOffset(LocSep, RawAddr, Size, data); | 
 
 
 
 
 
 
 
 | 498 | + | data.Read(Target^, Size); | 
 
 
 
 
 
 
 
 | 499 | + | data.Free; | 
 
 
 
 
 
 
 
 | 500 | + | end; | 
 
 
 
 
 
 
 
 | 501 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 502 |  | procedure TAccess_OniArchive.LoadRawFile(FileID, DatOffset: Integer; var Target: TStream); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 503 |  | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 504 |  | raw_info: TRawDataInfo; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 604 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 605 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 606 |  |  | 
 
 
 
 
 
 
 
 | 607 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 608 |  | procedure TAccess_OniArchive.UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: TStream); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 609 |  | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 610 |  | raw_info: TRawDataInfo; |