X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_game.pas;h=963496aab5b49eddfb4779dda2ef1f7e9d14674b;hb=5ecb6dd44de6bb04536ce3bddd5a4ef977a77420;hp=4e2382628b74a8faa5a2198439b96e5695ae8bc8;hpb=986383de4f166773e41335f5b0fec5ee5c0128f0;p=d2df-sdl.git diff --git a/src/game/g_game.pas b/src/game/g_game.pas index 4e23826..963496a 100644 --- a/src/game/g_game.pas +++ b/src/game/g_game.pas @@ -2126,13 +2126,9 @@ begin if NetUseMaster then begin - if gTime >= NetTimeToMaster then + if (gTime >= NetTimeToMaster) or g_Net_Slist_IsConnectionInProgress then begin - if (NetMHost = nil) or (NetMPeer = nil) then - begin - g_Net_Slist_Connect(false); // non-blocking connection to the master - end; - + if (not g_Net_Slist_IsConnectionActive) then g_Net_Slist_Connect(false); // non-blocking connection to the master g_Net_Slist_Update; NetTimeToMaster := gTime + NetMasterRate; end; @@ -4610,6 +4606,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 @@ -4907,11 +4907,7 @@ begin // Ìàñòåðñåðâåð if NetUseMaster then begin - if (NetMHost = nil) or (NetMPeer = nil) then - begin - // let the connection be blocking here, why not? - g_Net_Slist_Connect(); - end; + if (not g_Net_Slist_IsConnectionActive) then g_Net_Slist_Connect(false); // non-blocking connection to the master g_Net_Slist_Update; end; @@ -5535,14 +5531,17 @@ begin begin NetUseMaster := StrToIntDef(P[1], Byte(NetUseMaster)) > 0; if g_Game_IsServer and g_Game_IsNet then + begin if NetUseMaster then begin - if NetMPeer = nil then g_Net_Slist_Connect(); + if (not g_Net_Slist_IsConnectionActive) then g_Net_Slist_Connect(false); // non-blocking connection to the master g_Net_Slist_Update(); end else - if NetMPeer <> nil then - g_Net_Slist_Disconnect(); + begin + if (not g_Net_Slist_IsConnectionActive) then g_Net_Slist_Disconnect(); + end; + end; end; g_Console_Add(cmd + ' = ' + IntToStr(Byte(NetUseMaster)));