diff -r 853a1db1cff6 -r c011aecc95e5 gameServer/HWProtoInRoomState.hs --- a/gameServer/HWProtoInRoomState.hs Thu Jul 09 00:56:26 2009 +0000 +++ b/gameServer/HWProtoInRoomState.hs Thu Jul 09 14:36:41 2009 +0000 @@ -58,6 +58,7 @@ [Warning "restricted"] else [ModifyRoom (\r -> r{teams = teams r ++ [newTeam]}), + ModifyClient (\c -> c{teamsInGame = teamsInGame c + 1}), AnswerThisClient ["TEAM_ACCEPTED", name], AnswerOthersInRoom $ teamToNet newTeam, AnswerOthersInRoom ["TEAM_COLOR", name, color] @@ -81,7 +82,9 @@ if not $ nick client == teamowner team then [ProtocolError "Not team owner!"] else - [RemoveTeam teamName] + [RemoveTeam teamName, + ModifyClient (\c -> c{teamsInGame = teamsInGame c - 1}) + ] where client = clients IntMap.! clID room = rooms IntMap.! (roomID client) @@ -155,10 +158,14 @@ enoughClans = not $ null $ drop 1 $ group $ map teamcolor $ teams room -handleCmd_inRoom _ _ rooms ["EM", msg] = - [ModifyRoom (\r -> r{roundMsgs = roundMsgs r |> msg}), - AnswerOthersInRoom ["EM", msg]] - +handleCmd_inRoom clID clients rooms ["EM", msg] = + if teamsInGame client > 0 then + [ModifyRoom (\r -> r{roundMsgs = roundMsgs r |> msg}), + AnswerOthersInRoom ["EM", msg]] + else + [] + where + client = clients IntMap.! clID handleCmd_inRoom clID clients rooms ["ROUNDFINISHED"] = if isMaster client then