1 {$MODE DELPHI}
4 {$DEFINE SFS_DWFAD_DEBUG}
6 interface
8 uses
12 type
16 private
22 public
44 // return fixed AnsiString or empty AnsiString
48 implementation
50 uses
55 begin
58 begin
59 //e_WriteLog(Format('findDiskWad: error looking for [%s]', [fname]), MSG_NOTIFY);
61 begin
63 //e_WriteLog(Format(' looking for [%s]', [fname]), MSG_NOTIFY);
65 begin
67 //e_WriteLog(Format(' looking for [%s]', [fname]), MSG_NOTIFY);
70 end
71 else
72 begin
73 exit;
76 //e_WriteLog(Format('findDiskWad: FOUND [%s]', [fname]), MSG_NOTIFY);
82 var
84 begin
90 var
92 begin
94 begin
96 begin
101 exit;
108 var
110 begin
112 begin
114 begin
116 exit;
123 var
125 begin
129 begin
132 begin
134 exit;
141 var
143 begin
147 begin
150 begin
152 exit;
159 var
161 begin
164 begin
166 begin
168 exit;
175 { TWADFile }
177 begin
183 begin
190 begin
196 begin
198 //if fFileName <> '' then e_WriteLog(Format('TWADFile.ReadFile: [%s] closed', [fFileName]), MSG_NOTIFY);
204 var
206 begin
210 begin
211 //writeln('[', s, '] -> [', Copy(s, 1, i-2), ']');
217 function TWADFile.GetResource (name: AnsiString; var pData: Pointer; var Len: Integer): Boolean;
218 var
224 //fn: AnsiString;
225 begin
232 begin
237 begin
240 end
241 else
242 begin
245 // backwards, due to possible similar names and such
247 begin
250 //e_WriteLog(Format('DFWAD: searching for [%s : %s] in [%s]; current is [%s : %s]', [Section, Resource, fFileName, fi.path, fi.name]), MSG_NOTIFY);
252 begin
253 // i found her!
254 //fn := fFileName+'::'+fi.path+fi.name;
255 //fs := SFSFileOpen(fn);
256 try
258 except
262 begin
264 break;
269 try
272 finally
274 begin
282 {$IFDEF SFS_DWFAD_DEBUG}
284 e_WriteLog(Format('DFWAD: file [%s] FOUND in [%s]; size is %d bytes', [name, fFileName, Len]), MSG_NOTIFY);
285 {$ENDIF}
286 exit;
294 var
297 begin
301 begin
306 begin
315 var
317 //f: Integer;
318 //fi: TSFSFileInfo;
319 begin
321 //e_WriteLog(Format('TWADFile.ReadFile: [%s]', [FileName]), MSG_NOTIFY);
325 begin
327 exit;
329 {$IFDEF SFS_DWFAD_DEBUG}
331 {$ENDIF}
332 // cache this wad
333 try
335 begin
337 end
338 else
339 begin
342 except
343 exit;
348 {$IFDEF SFS_DWFAD_DEBUG}
349 if gSFSDebug then e_WriteLog(Format('TWADFile.ReadFile: [%s] opened', [fFileName]), MSG_NOTIFY);
350 {$ENDIF}
355 var
359 var
362 //f: Integer;
363 //fi: TSFSFileInfo;
364 begin
368 begin
370 Exit;
375 {$IFDEF SFS_DWFAD_DEBUG}
377 {$ENDIF}
379 try
382 begin
384 Exit;
386 except
388 Exit;
395 {$IFDEF SFS_DWFAD_DEBUG}
397 {$ENDIF}
399 {
400 for f := 0 to fIter.Count-1 do
401 begin
402 fi := fIter.Files[f];
403 if fi = nil then continue;
404 st := fIter.volume.OpenFileByIndex(f);
405 if st = nil then
406 begin
407 e_WriteLog(Format('[%s]: [%s : %s] CAN''T OPEN', [fFileName, fi.path, fi.name]), MSG_NOTIFY);
408 end
409 else
410 begin
411 e_WriteLog(Format('[%s]: [%s : %s] %u', [fFileName, fi.path, fi.name, st.size]), MSG_NOTIFY);
412 st.Free;
413 end;
414 end;
415 //fIter.volume.OpenFileByIndex(0);
416 }
422 begin