diff -r fb5aa767a2a0 -r f29c55ea93ed gameServer/HWProtoLobbyState.hs --- a/gameServer/HWProtoLobbyState.hs Wed Dec 05 23:25:11 2012 +0400 +++ b/gameServer/HWProtoLobbyState.hs Wed Dec 05 23:51:04 2012 +0400 @@ -91,20 +91,21 @@ MoveToRoom jRI , AnswerClients [sendChan cl] $ "JOINED" : nicks , AnswerClients chans ["CLIENT_FLAGS", "-r", nick cl] - , AnswerClients [sendChan cl] $ ["WARNING", "Room admin is " `B.append` ownerNick] , AnswerClients [sendChan cl] $ ["CLIENT_FLAGS", "+h", ownerNick] ] - ++ map (readynessMessage cl) jRoomClients + ++ (if clientProto cl < 38 then map (readynessMessage cl) jRoomClients else [sendStateFlags cl jRoomClients]) ++ answerFullConfig cl (mapParams jRoom) (params jRoom) ++ answerTeams cl jRoom ++ watchRound cl jRoom where - readynessMessage cl c = AnswerClients [sendChan cl] $ - if clientProto cl < 38 then - [if isReady c then "READY" else "NOT_READY", nick c] - else - ["CLIENT_FLAGS", if isReady c then "+r" else "-r", nick c] + readynessMessage cl c = AnswerClients [sendChan cl] [if isReady c then "READY" else "NOT_READY", nick c] + sendStateFlags cl clients = AnswerClients [sendChan cl] . concat . intersperse [""] . filter (not . null) . concat $ + [f "+r" ready, f "-r" unready, f "+g" ingame, f "-g" inroomlobby] + where + (ready, unready) = partition isReady clients + (ingame, inroomlobby) = partition isInGame clients + f fl lst = ["CLIENT_FLAGS" : fl : map nick lst | not $ null lst] toAnswer cl (paramName, paramStrs) = AnswerClients [sendChan cl] $ "CFG" : paramName : paramStrs