DEADSOFTWARE

game: create/refresh hash databases only when the game is going to conntect to any...
[d2df-sdl.git] / src / game / g_game.pas
index 43ccf4ff22e1b3eb6ddce0e748c52477a87007e0..2b827412980e5292b5ecd3db459292af8ed0c734 100644 (file)
@@ -4610,6 +4610,10 @@ begin
   NetState := NET_STATE_AUTH;
 
   g_Game_SetLoadingText(_lc[I_LOAD_CONNECT], 0, False);
+
+  // create (or update) map/resource databases
+  g_Res_CreateDatabases(true);
+
 // Ñòàðòóåì êëèåíò
   if not g_Net_Connect(Addr, Port) then
   begin
@@ -4675,6 +4679,7 @@ begin
               NetState := NET_STATE_NONE;
               Exit;
             end;
+            e_LogWritefln('using downloaded map wad [%s] for [%s]`', [newResPath, WadName], TMsgType.Notify);
           end;
           newResPath := ExtractRelativePath(MapsDir, newResPath);
 
@@ -4824,7 +4829,7 @@ begin
       end
       else
       begin
-        gWADHash := MD5File(nws);
+        if (g_Game_IsNet) then gWADHash := MD5File(nws);
         //writeln('********: nws=', nws, ' : Map=', Map, ' : nw=', NewWAD, ' : resname=', ResName);
         g_Game_LoadWAD(NewWAD);
       end;
@@ -5010,9 +5015,10 @@ end;
 
 procedure g_Game_ClientWAD(NewWAD: String; const WHash: TMD5Digest);
 var
-  gWAD: String;
+  gWAD, xwad: String;
 begin
   if not g_Game_IsClient then Exit;
+  //e_LogWritefln('*** g_Game_ClientWAD: `%s`', [NewWAD]);
 
   gWAD := g_Res_DownloadMapWAD(ExtractFileName(NewWAD), WHash);
   if gWAD = '' then
@@ -5022,7 +5028,9 @@ begin
     Exit;
   end;
 
-  NewWAD := ExtractRelativePath(MapsDir, gWAD);
+  xwad := ExtractRelativePath(MapsDir, gWAD);
+  e_LogWritefln('using downloaded client map wad [%s] for [%s]`', [xwad, NewWAD], TMsgType.Notify);
+  NewWAD := xwad;
   g_Game_LoadWAD(NewWAD);
 
   {