X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_game.pas;h=4e2382628b74a8faa5a2198439b96e5695ae8bc8;hb=986383de4f166773e41335f5b0fec5ee5c0128f0;hp=46251bb7d3e2684ec69a340f2ad415de97f6f821;hpb=b171ccb122f9084809e739b19baf68bba80a9dab;p=d2df-sdl.git diff --git a/src/game/g_game.pas b/src/game/g_game.pas index 46251bb..4e23826 100644 --- a/src/game/g_game.pas +++ b/src/game/g_game.pas @@ -4663,10 +4663,10 @@ begin gGameSettings.Options := InMsg.ReadLongWord(); T := InMsg.ReadLongWord(); - newResPath := g_Res_SearchSameWAD(MapsDir, WadName, gWADHash); - if newResPath = '' then + //newResPath := g_Res_SearchSameWAD(MapsDir, WadName, gWADHash); + //if newResPath = '' then begin - g_Game_SetLoadingText(_lc[I_LOAD_DL_RES], 0, False); + //g_Game_SetLoadingText(_lc[I_LOAD_DL_RES], 0, False); newResPath := g_Res_DownloadMapWAD(WadName, gWADHash); if newResPath = '' then begin @@ -4675,6 +4675,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 +4825,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,12 +5011,26 @@ end; procedure g_Game_ClientWAD(NewWAD: String; const WHash: TMD5Digest); var - gWAD: String; + gWAD, xwad: String; begin - if LowerCase(NewWAD) = LowerCase(gGameSettings.WAD) then - Exit; - if not g_Game_IsClient then + if not g_Game_IsClient then Exit; + //e_LogWritefln('*** g_Game_ClientWAD: `%s`', [NewWAD]); + + gWAD := g_Res_DownloadMapWAD(ExtractFileName(NewWAD), WHash); + if gWAD = '' then + begin + g_Game_Free(); + g_FatalError(Format(_lc[I_GAME_ERROR_MAP_WAD], [ExtractFileName(NewWAD)])); 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); + + { + if LowerCase(NewWAD) = LowerCase(gGameSettings.WAD) then Exit; gWAD := g_Res_SearchSameWAD(MapsDir, ExtractFileName(NewWAD), WHash); if gWAD = '' then begin @@ -5030,6 +5045,7 @@ begin end; NewWAD := ExtractRelativePath(MapsDir, gWAD); g_Game_LoadWAD(NewWAD); + } end; procedure g_Game_RestartRound(NoMapRestart: Boolean = False);