832 return $ Just (t, Map.fromList p1, Map.fromList p2, reverse msgs) |
832 return $ Just (t, Map.fromList p1, Map.fromList p2, reverse msgs) |
833 |
833 |
834 let (teams', params1, params2, roundMsgs') = fromJust cInfo |
834 let (teams', params1, params2, roundMsgs') = fromJust cInfo |
835 |
835 |
836 when (isJust cInfo) $ do |
836 when (isJust cInfo) $ do |
837 mapM_ processAction $ concat [ |
837 mapM_ processAction $ |
838 [AnswerClients [c] [if clientProto cl < 58 then "JOINED" else "REPLAY_START", nick cl]] |
838 if clientProto cl < 58 then |
839 , answerFullConfigParams cl params1 params2 |
839 concat [ |
840 , answerAllTeams cl teams' |
840 [AnswerClients [c] ["JOINED", nick cl]] |
841 , [AnswerClients [c] ["RUN_GAME"]] |
841 , answerFullConfigParams cl params1 params2 |
842 , [AnswerClients [c] $ "EM" : roundMsgs'] |
842 , answerAllTeams cl teams' |
843 ] |
843 , [AnswerClients [c] ["RUN_GAME"]] |
|
844 , [AnswerClients [c] $ "EM" : roundMsgs'] |
|
845 , [AnswerClients [c] ["KICKED"]] |
|
846 ] |
|
847 else |
|
848 concat [ |
|
849 [AnswerClients [c] ["REPLAY_START"]] |
|
850 , answerFullConfigParams cl params1 params2 |
|
851 , answerAllTeams cl teams' |
|
852 , [AnswerClients [c] ["RUN_GAME"]] |
|
853 , [AnswerClients [c] $ "EM" : roundMsgs'] |
|
854 ] |
844 |
855 |
845 processAction (SaveRoom rname) = do |
856 processAction (SaveRoom rname) = do |
846 rnc <- gets roomsClients |
857 rnc <- gets roomsClients |
847 ri <- clientRoomA |
858 ri <- clientRoomA |
848 rm <- io $ room'sM rnc id ri |
859 rm <- io $ room'sM rnc id ri |