DEADSOFTWARE

engine: yet another attempt to fix map downloading (YAATFMD); "no time to loose!"
[d2df-sdl.git] / src / game / g_game.pas
index ec7f8f29831e03151a1da5bf2f1227a134d51964..8366787a04365305daa80afd9c8d47e574458427 100644 (file)
@@ -4693,7 +4693,7 @@ begin
           //if newResPath = '' then
           begin
             //g_Game_SetLoadingText(_lc[I_LOAD_DL_RES], 0, False);
-            newResPath := g_Res_DownloadMapWAD(WadName, gWADHash);
+            newResPath := g_Res_DownloadMapWAD(ExtractFileName(WadName), gWADHash);
             if newResPath = '' then
             begin
               g_FatalError(_lc[I_NET_ERR_HASH]);
@@ -5082,14 +5082,9 @@ begin
     Exit;
   end;
 
-(*
-  xwad := ExtractRelativePath(MapsDir, gWAD);
-  e_LogWritefln('using downloaded client map wad [%s] for [%s]`', [xwad, NewWAD], TMsgType.Notify);
-  NewWAD := xwad;
-  g_Game_LoadWAD(NewWAD);
-*)
+  e_LogWritefln('using downloaded client map wad [%s] for [%s]', [gWAD, NewWAD], TMsgType.Notify);
+  NewWAD := gWAD;
 
-  e_LogWritefln('using downloaded client map wad [%s]`', [NewWAD], TMsgType.Notify);
   g_Game_LoadWAD(NewWAD);
   result := NewWAD;
 
@@ -7249,16 +7244,24 @@ begin
 end;
 
 procedure g_TakeScreenShot;
-  var s: TStream; t: TDateTime; date, name: String;
+  var s: TStream; t: TDateTime; dir, date, name: String;
 begin
   if e_NoGraphics then Exit;
-  t := Now;
-  DateTimeToString(date, 'yyyy-mm-dd-hh-nn-ss', t);
-  name := 'screenshot-' + date + '.png';
   try
-    s := e_CreateResource(ScreenshotDirs, name);
-    e_MakeScreenshot(s, gScreenWidth, gScreenHeight);
-    g_Console_Add(Format(_lc[I_CONSOLE_SCREENSHOT], [name]))
+    t := Now;
+    dir := e_GetWriteableDir(ScreenshotDirs);
+    DateTimeToString(date, 'yyyy-mm-dd-hh-nn-ss', t);
+    name := e_CatPath(dir, 'screenshot-' + date + '.png');
+    s := createDiskFile(name);
+    try
+      e_MakeScreenshot(s, gScreenWidth, gScreenHeight);
+      s.Free;
+      g_Console_Add(Format(_lc[I_CONSOLE_SCREENSHOT], [name]))
+    except
+      g_Console_Add(Format(_lc[I_CONSOLE_ERROR_WRITE], [name]));
+      s.Free;
+      DeleteFile(name)
+    end
   except
     g_Console_Add('oh shit, i can''t create screenshot!')
   end