gameServer/HWProtoLobbyState.hs
changeset 5996 2c72fe81dd37
parent 5931 184057074257
child 6068 e18713ecf1e0
equal deleted inserted replaced
5994:3c578f531cc1 5996:2c72fe81dd37
    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