index e4959b719de4325dd9ec2aab5077d909f8f971b0..cd0a3608617ea588d29fe6c6187bb8fadfdde913 100644 (file)
implementation
-uses g_language;
+uses g_language, sfs, utils, wadreader;
const DOWNLOAD_DIR = 'downloads';
repeat
if (searchResult.Attr and faDirectory) = 0 then
begin
- if searchResult.Name = filename then
+ if StrEquCI1251(searchResult.Name, filename) then
begin
files.Add(dirName+'/'+filename);
Exit;
end;
end
else if (searchResult.Name <> '.') and (searchResult.Name <> '..') then
- FindFiles(IncludeTrailingPathDelimiter(dirName)+searchResult.Name,
- filename, files);
+ FindFiles(IncludeTrailingPathDelimiter(dirName)+searchResult.Name, filename, files);
until FindNext(searchResult) <> 0;
finally
FindClose(searchResult);
function CompareFileHash(const filename: string; const resMd5: TMD5Digest): Boolean;
var
gResHash: TMD5Digest;
+ fname: string;
begin
- gResHash := MD5File(filename);
+ fname := findDiskWad(filename);
+ if length(fname) = 0 then begin result := false; exit; end;
+ gResHash := MD5File(fname);
Result := MD5Match(gResHash, resMd5);
end;
function CheckFileHash(const path, filename: string; const resMd5: TMD5Digest): Boolean;
+var
+ fname: string;
begin
- Result := FileExists(path + filename) and CompareFileHash(path + filename, resMd5);
+ fname := findDiskWad(path+filename);
+ if length(fname) = 0 then begin result := false; exit; end;
+ Result := FileExists(fname) and CompareFileHash(fname, resMd5);
end;
function g_Res_SearchSameWAD(const path, filename: string; const resMd5: TMD5Digest): string;
i: Integer;
resData: TResDataMsg;
begin
+ SetLength(mapData.ExternalResources, 0);
g_Console_Add(Format(_lc[I_NET_MAP_DL], [FileName]));
e_WriteLog('Downloading map `' + FileName + '` from server', MSG_NOTIFY);
MC_SEND_MapRequest();