index 6d112ee446e280555e4776edb2dad57561e887d0..78b0b2803ddccde223d34b5705f9def7191d5b63 100644 (file)
-(* Copyright (C) DooM 2D:Forever Developers
+(* Copyright (C) Doom 2D: Forever Developers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*)
-{$MODE DELPHI}
+{$INCLUDE ../shared/a_modes.inc}
unit g_res_downloader;
interface
implementation
-uses g_language, sfs, utils, wadreader;
+uses g_language, sfs, utils, wadreader, g_game;
const DOWNLOAD_DIR = 'downloads';
begin
SetLength(mapData.ExternalResources, 0);
g_Console_Add(Format(_lc[I_NET_MAP_DL], [FileName]));
- e_WriteLog('Downloading map `' + FileName + '` from server', MSG_NOTIFY);
+ e_WriteLog('Downloading map `' + FileName + '` from server', TMsgType.Notify);
+ g_Game_SetLoadingText(FileName + '...', 0, False);
MC_SEND_MapRequest();
msgStream := g_Net_Wait_Event(NET_MSG_MAP_RESPONSE);
begin
mapData := MapDataFromMsgStream(msgStream);
msgStream.Free;
- end;
+ end else
+ mapData.FileSize := 0;
for i := 0 to High(mapData.ExternalResources) do
begin
g_Console_Add(Format(_lc[I_NET_WAD_DL],
[mapData.ExternalResources[i].Name]));
e_WriteLog('Downloading Wad `' + mapData.ExternalResources[i].Name +
- '` from server', MSG_NOTIFY);
+ '` from server', TMsgType.Notify);
+ g_Game_SetLoadingText(mapData.ExternalResources[i].Name + '...', 0, False);
MC_SEND_ResRequest(mapData.ExternalResources[i].Name);
msgStream := g_Net_Wait_Event(NET_MSG_RES_RESPONSE);
+ if msgStream = nil then
+ continue;
+
resData := ResDataFromMsgStream(msgStream);
resStream := createDiskFile(GameDir+'/wads/'+mapData.ExternalResources[i].Name);
end;
Result := SaveWAD(MapsDir, ExtractFileName(FileName), mapData.FileData);
+ if mapData.FileSize = 0 then
+ DeleteFile(Result);
end;
end.