# HG changeset patch # User unc0rr # Date 1277316792 -14400 # Node ID b602a57ba0fb586a2c785d445e2b2a1587b3f115 # Parent b11ac2677e429998d4a12f08f8c78404ef63647d Reimplement CFG protocol command diff -r b11ac2677e42 -r b602a57ba0fb gameServer/HWProtoInRoomState.hs --- a/gameServer/HWProtoInRoomState.hs Tue Jun 22 22:40:49 2010 +0400 +++ b/gameServer/HWProtoInRoomState.hs Wed Jun 23 22:13:12 2010 +0400 @@ -24,17 +24,20 @@ handleCmd_inRoom ["PART"] = return [MoveToLobby "part"] handleCmd_inRoom ["PART", msg] = return [MoveToLobby $ "part: " `B.append` msg] -{- -handleCmd_inRoom clID clients rooms ("CFG" : paramName : paramStrs) - | null paramStrs = [ProtocolError "Empty config entry"] - | isMaster client = - [ModifyRoom (\r -> r{params = Map.insert paramName paramStrs (params r)}), - AnswerOthersInRoom ("CFG" : paramName : paramStrs)] - | otherwise = [ProtocolError "Not room master"] - where - client = clients IntMap.! clID +handleCmd_inRoom ("CFG" : paramName : paramStrs) + | null paramStrs = return [ProtocolError "Empty config entry"] + | otherwise = do + chans <- roomOthersChans + cl <- thisClient + if isMaster cl then + return [ + ModifyRoom (\r -> r{params = Map.insert paramName paramStrs (params r)}), + AnswerClients chans ("CFG" : paramName : paramStrs)] + else + return [ProtocolError "Not room master"] +{- handleCmd_inRoom clID clients rooms ("ADD_TEAM" : name : color : grave : fort : voicepack : flag : difStr : hhsInfo) | length hhsInfo == 15 && clientProto client < 30 = handleCmd_inRoom clID clients rooms ("ADD_TEAM" : name : color : grave : fort : voicepack : " " : flag : difStr : hhsInfo) | length hhsInfo /= 16 = [ProtocolError "Corrupted hedgehogs info"] diff -r b11ac2677e42 -r b602a57ba0fb gameServer/HWProtoLobbyState.hs --- a/gameServer/HWProtoLobbyState.hs Tue Jun 22 22:40:49 2010 +0400 +++ b/gameServer/HWProtoLobbyState.hs Wed Jun 23 22:13:12 2010 +0400 @@ -78,7 +78,7 @@ handleCmd_lobby ["JOIN_ROOM", roomName, roomPassword] = do (ci, irnc) <- ask let ris = allRooms irnc - let cl = irnc `client` ci + cl <- thisClient let maybeRI = find (\ri -> roomName == name (irnc `room` ri)) ris let jRI = fromJust maybeRI let jRoom = irnc `room` jRI