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); |