32 rooms <- allRoomInfos |
32 rooms <- allRoomInfos |
33 let roomsInfoList = concatMap (roomInfo irnc) . filter (\r -> (roomProto r == clientProto cl) && not (isRestrictedJoins r)) |
33 let roomsInfoList = concatMap (roomInfo irnc) . filter (\r -> (roomProto r == clientProto cl) && not (isRestrictedJoins r)) |
34 return [AnswerClients [sendChan cl] ("ROOMS" : roomsInfoList rooms)] |
34 return [AnswerClients [sendChan cl] ("ROOMS" : roomsInfoList rooms)] |
35 where |
35 where |
36 roomInfo irnc r = [ |
36 roomInfo irnc r = [ |
37 showB $ gameinprogress r, |
37 showB $ isJust $ gameInfo r, |
38 name r, |
38 name r, |
39 showB $ playersIn r, |
39 showB $ playersIn r, |
40 showB $ length $ teams r, |
40 showB $ length $ teams r, |
41 nick $ irnc `client` masterID r, |
41 nick $ irnc `client` masterID r, |
42 Map.findWithDefault "+rnd+" "MAP" (mapParams r), |
42 Map.findWithDefault "+rnd+" "MAP" (mapParams r), |
115 | otherwise = map (toAnswer cl) $ |
115 | otherwise = map (toAnswer cl) $ |
116 ("FULLMAPCONFIG", Map.elems mpr) |
116 ("FULLMAPCONFIG", Map.elems mpr) |
117 : ("SCHEME", pr Map.! "SCHEME") |
117 : ("SCHEME", pr Map.! "SCHEME") |
118 : (filter (\(p, _) -> p /= "SCHEME") $ Map.toList pr) |
118 : (filter (\(p, _) -> p /= "SCHEME") $ Map.toList pr) |
119 |
119 |
120 answerTeams cl jRoom = let f = if gameinprogress jRoom then teamsAtStart else teams in answerAllTeams cl $ f jRoom |
120 answerTeams cl jRoom = let f = if isJust $ gameInfo jRoom then teamsAtStart . fromJust . gameInfo else teams in answerAllTeams cl $ f jRoom |
121 |
121 |
122 watchRound cl jRoom = if not $ gameinprogress jRoom then |
122 watchRound cl jRoom = if isNothing $ gameInfo jRoom then |
123 [] |
123 [] |
124 else |
124 else |
125 [AnswerClients [sendChan cl] ["RUN_GAME"], |
125 [AnswerClients [sendChan cl] ["RUN_GAME"], |
126 AnswerClients [sendChan cl] $ "EM" : toEngineMsg "e$spectate 1" : Foldable.toList (roundMsgs jRoom)] |
126 AnswerClients [sendChan cl] $ "EM" : toEngineMsg "e$spectate 1" : Foldable.toList (roundMsgs . fromJust . gameInfo $ jRoom)] |
127 |
127 |
128 |
128 |
129 handleCmd_lobby ["JOIN_ROOM", roomName] = |
129 handleCmd_lobby ["JOIN_ROOM", roomName] = |
130 handleCmd_lobby ["JOIN_ROOM", roomName, ""] |
130 handleCmd_lobby ["JOIN_ROOM", roomName, ""] |
131 |
131 |