diff -r 24f2f9fa0160 -r c853e02ed663 netserver/hedgewars-server.hs --- a/netserver/hedgewars-server.hs Thu Jan 08 13:04:04 2009 +0000 +++ b/netserver/hedgewars-server.hs Thu Jan 08 15:26:12 2009 +0000 @@ -51,7 +51,21 @@ forkIO $ clientRecvLoop cHandle cChan forkIO $ clientSendLoop cHandle cChan sendChan - atomically $ writeTChan acceptChan (ClientInfo cChan sendChan cHandle host currentTime "" 0 "" False False False) + atomically $ writeTChan acceptChan + (ClientInfo + cChan + sendChan + cHandle + host + currentTime + "" + 0 + "" + False + False + False + False) + atomically $ writeTChan cChan ["ASKME"] acceptLoop servSock acceptChan @@ -123,8 +137,9 @@ clientsIn <- sendAnswers answers mclient mclients mrooms mapM_ (\cl -> atomically $ writeTChan (chan cl) ["QUIT", "Kicked"]) $ filter forceQuit $ clientsIn - - return (clientsIn, mrooms) + + let clientsFinal = map (\cl -> if partRoom cl then cl{room = [], partRoom = False} else cl) clientsIn + return (clientsFinal, mrooms) mainLoop :: ServerInfo -> TChan ClientInfo -> TChan [String] -> [ClientInfo] -> [RoomInfo] -> IO ()