ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/oup/_old_/Code/OniDataClass.pas
(Generate patch)

Comparing oup/current/Code/OniDataClass.pas (file contents):
Revision 86 by alloc, Sun Jan 14 20:19:08 2007 UTC vs.
Revision 87 by alloc, Sun Jan 14 22:59:34 2007 UTC

# Line 1 | Line 1
1   unit OniDataClass;
2   interface
3 < uses Data, DataStructures, Classes, SysUtils, StrUtils,
3 > uses Data, Classes, SysUtils, StrUtils,
4    Dialogs, ABSDecUtil, ABSMain, DB, Windows;
5  
6   type
# Line 20 | Line 20 | type
20      constructor Create(filename: String; var Result: Boolean); virtual; abstract;
21      procedure Close; virtual; abstract;
22  
23 <    function GetFileInfo(fileid: LongWord): TFileInfo; virtual; abstract;
23 >    function GetFileInfo(fileid: Integer): TFileInfo; virtual;
24      function GetFilesList(ext: String; pattern: String;
25        NoEmptyFiles: Boolean; sort: TSortType): TStringArray; virtual; abstract;
26      function GetFilesCount: LongWord; virtual; abstract;
# Line 72 | Line 72 | type
72      constructor Create(DatFilename: String; var Result: Boolean); override;
73      procedure Close; override;
74  
75 <    function GetFileInfo(fileid: LongWord): TFileInfo; override;
75 >    function GetFileInfo(fileid: Integer): TFileInfo; override;
76      function GetFilesList(ext: String; pattern: String;
77        NoEmptyFiles: Boolean; sort: TSortType): TStringArray; override;
78      function GetFilesCount: LongWord; override;
# Line 111 | Line 111 | type
111  
112      procedure UpdateListCache;
113      //      function GetDatLinks(srcid:LongWord):TDatLinks;
114 <    function GetFileInfo(fileid: LongWord): TFileInfo; override;
114 >    function GetFileInfo(fileid: Integer): TFileInfo; override;
115      function GetFilesList(ext: String; pattern: String;
116        NoEmptyFiles: Boolean; sort: TSortType): TStringArray; override;
117      function GetFilesCount: LongWord; override;
# Line 141 | Line 141 | type
141    public
142      constructor Create(OLDBFilename: String; var Result: Boolean); override;
143      procedure Close; override;
144 < {
145 <    procedure UpdateListCache;
146 <    //      function GetDatLinks(srcid:LongWord):TDatLinks;
147 <    function GetFileInfo(fileid: LongWord): TFileInfo; override;
148 <    function GetFilesList(ext: String; pattern: String;
149 <      NoEmptyFiles: Boolean; sort: TSortType): TStringArray; override;
150 <    function GetFilesCount: LongWord; override;
151 <    function GetExtensionsList: TStringArray; override;
152 <    function GetExtendedExtensionsList: TExtensionsMap; override;
153 <    function GetNamedFilesMap: TNamedFilesMap;
154 <
155 <    function LoadDatFile(fileid: LongWord): Tdata; override;
156 <    procedure UpdateDatFile(fileid: LongWord; Data: Tdata); override;
157 <    procedure LoadDatFilePart(fileid, offset, size: LongWord; target: Pointer); override;
158 <    procedure UpdateDatFilePart(fileid, offset, size: LongWord; target: Pointer); override;
159 <
160 <    function GetRawList(fileid: LongWord): TRawList; override;
161 <    procedure LoadRawFile(fileid, dat_offset: LongWord; target: Pointer); override;
162 <    procedure UpdateRawFile(fileid, dat_offset: LongWord; size: LongWord;
163 <      target: Pointer); override;
164 <    procedure LoadRawFilePart(fileid, dat_offset: LongWord;
165 <      offset, size: LongWord; target: Pointer); override;
166 <    procedure UpdateRawFilePart(fileid, dat_offset: LongWord;
167 <      offset, size: LongWord; target: Pointer); override;
168 < }  published
144 >  published
145    end;
146  
147   const
# Line 180 | Line 156 | var
156  
157   function CreateDataConnection(filename: String; backend: Integer): TOniData;
158   procedure CloseDataConnection(connection: TOniData);
159 + function GetEmptyFileInfo: TFileInfo;
160  
161  
162  
163  
164  
165   implementation
166 < uses Functions;
166 > uses DataStructures, Functions;
167  
168  
169  
# Line 251 | Line 228 | end;
228  
229  
230  
231 + function TOniData.GetFileInfo(fileid: Integer): TFileInfo;
232 + begin
233 +  Result.ID := -1;
234 +  Result.FileName := '';
235 +  Result.FileNameHex := '';
236 +  Result.Extension := '';
237 +  Result.Name := '';
238 +  Result.Size := 0;
239 +  Result.FileType := 0;
240 +  Result.DatAddr := 0;
241 +  Result.opened := False;
242 + end;
243  
244  
245  
# Line 377 | Line 366 | end;
366  
367  
368  
369 < function TOniDataDat.GetFileInfo(fileid: LongWord): TFileInfo;
369 > function TOniDataDat.GetFileInfo(fileid: Integer): TFileInfo;
370   begin
371 +  if fileid = -1 then
372 +  begin
373 +    Result := inherited GetFileInfo(fileid);
374 +    Exit;
375 +  end;
376    if fileid < Self.GetFilesCount then
377      Result    := Fdat_files[fileid]
378    else
# Line 591 | Line 585 | begin
585      if UpperCase(RawListHandlers[i].Ext) = UpperCase(Fdat_files[fileid].extension) then
586        if RawListHandlers[i].needed then
587        begin
588 <        Result := RawListHandlers[i].Handler(fileid);
588 >        Result := RawListHandlers[i].Handler(Self, fileid);
589          Break;
590        end
591        else
# Line 960 | Line 954 | begin
954   end;
955  
956  
957 < function TOniDataADB.GetFileInfo(fileid: LongWord): TFileInfo;
957 > function TOniDataADB.GetFileInfo(fileid: Integer): TFileInfo;
958   var
959    i: Integer;
960   begin
961 +  if fileid = -1 then
962 +  begin
963 +    Result := inherited GetFileInfo(fileid);
964 +    Exit;
965 +  end;
966    if fileid < Self.GetFilesCount then
967    begin
968      for i := 0 to High(Fdat_files) do
# Line 1483 | Line 1482 | begin
1482          if DataConnections[i] = connection then
1483          begin
1484            DataConnections[i].Close;
1485 <          DataConnections[i].Free;
1485 > //          DataConnections[i].Free;
1486            DataConnections[i] := nil;
1487            found := True;
1488          end;
# Line 1499 | Line 1498 | begin
1498   end;
1499  
1500  
1501 + function GetEmptyFileInfo: TFileInfo;
1502 + begin
1503 +  Result.ID := -1;
1504 +  Result.FileName := '';
1505 +  Result.FileNameHex := '';
1506 +  Result.Extension := '';
1507 +  Result.Name := '';
1508 +  Result.Size := 0;
1509 +  Result.FileType := 0;
1510 +  Result.DatAddr := 0;
1511 +  Result.opened := False;
1512 + end;
1513 +
1514 +
1515  
1516  
1517   constructor TOniDataEmpty.Create(OLDBFilename: String; var Result: Boolean);

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)