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