DEADSOFTWARE

net: it is now possible to use more than one master (use "List=host:port,host:port...
[d2df-sdl.git] / src / game / g_net.pas
index e6c1fbccb6b19deaec6cbb8e58ec3d41c9681eab..5b4f71cc082792b254e52657eb4aef42fe0a0fcf 100644 (file)
@@ -147,9 +147,9 @@ var
   NetPongSock:   ENetSocket = ENET_SOCKET_NULL;
 
   NetUseMaster: Boolean = True;
-  NetSlistAddr: ENetAddress;
   NetSlistIP:   string = 'mpms.doom2d.org';
   NetSlistPort: Word = 25665;
+  NetSlistList: string = '';
 
   NetClientIP:   string = '127.0.0.1';
   NetClientPort: Word   = 25666;
@@ -358,6 +358,7 @@ begin
   e_LogWritefln('disconnected client #%d due to file transfer error', [nc.ID], TMsgType.Warning);
   enet_peer_disconnect(nc.Peer, NET_DISC_FILE_TIMEOUT);
   clearNetClientTransfers(nc);
+  g_Net_Slist_ServerPlayerLeaves();
 end;
 
 
@@ -1413,8 +1414,7 @@ begin
 
   NetPeer := nil;
   NetHost := nil;
-  g_Net_Slist_NetworkStopped();
-  //g_Net_Slist_Disconnect(false); // do not spam console
+  g_Net_Slist_ServerClosed();
   NetMyID := -1;
   NetPlrUID1 := -1;
   NetPlrUID2 := -1;
@@ -1549,8 +1549,7 @@ begin
     end;
 
   clearNetClients(false); // don't clear array
-  //if (g_Net_Slist_IsConnectionActive) then g_Net_Slist_Disconnect;
-  g_Net_Slist_NetworkStopped();
+  g_Net_Slist_ServerClosed();
   if NetPongSock <> ENET_SOCKET_NULL then
     enet_socket_destroy(NetPongSock);
 
@@ -1620,7 +1619,6 @@ begin
     NetOut.Write(Byte(Ord('F')));
     NetOut.Write(NetPort);
     NetOut.Write(ClTime);
-    //g_Net_Slist_WriteInfo();
     TMasterHost.writeInfo(NetOut);
     NPl := 0;
     if gPlayer1 <> nil then Inc(NPl);
@@ -1648,12 +1646,8 @@ begin
   IP := '';
   Result := 0;
 
-  if NetUseMaster then
-  begin
-    //g_Net_Slist_Check;
-    g_Net_Slist_Pulse();
-  end;
-  g_Net_Host_CheckPings;
+  if NetUseMaster then g_Net_Slist_Pulse();
+  g_Net_Host_CheckPings();
 
   while (enet_host_service(NetHost, @NetEvent, 0) > 0) do
   begin
@@ -1757,11 +1751,7 @@ begin
         g_Console_Add(_lc[I_NET_MSG] + Format(_lc[I_NET_MSG_HOST_DISC], [ID]));
         Dec(NetClientCount);
 
-        if NetUseMaster then
-        begin
-          //g_Net_Slist_Update;
-          g_Net_Slist_Pulse();
-        end;
+        if NetUseMaster then g_Net_Slist_ServerPlayerLeaves();
       end;
     end;
   end;