netserver/HWProto.hs
changeset 1620 5f4cd6708eb5
parent 1619 eb14d2e22e89
child 1621 d1ded2532d3f
equal deleted inserted replaced
1619:eb14d2e22e89 1620:5f4cd6708eb5
   125 handleCmd :: CmdHandler
   125 handleCmd :: CmdHandler
   126 handleCmd client _ rooms ("QUIT" : xs) =
   126 handleCmd client _ rooms ("QUIT" : xs) =
   127 	if null (room client) then
   127 	if null (room client) then
   128 		(noChangeClients, noChangeRooms, answerQuit msg ++ (answerQuitLobby (nick client) msg) )
   128 		(noChangeClients, noChangeRooms, answerQuit msg ++ (answerQuitLobby (nick client) msg) )
   129 	else if isMaster client then
   129 	else if isMaster client then
   130 		(modifyRoomClients clRoom (\cl -> if isMaster cl then cl else cl{room = [], isReady = False}), removeRoom (room client), (answerQuit msg) ++ (answerQuitLobby (nick client) msg) ++ (answerAbandoned $ protocol client) ++ (answerRoomDeleted $ room client)) -- core disconnects clients on ROOMABANDONED answer
   130 		(modifyRoomClients clRoom (\cl -> cl{isReady = False, partRoom = True}), removeRoom (room client), (answerQuit msg) ++ (answerQuitLobby (nick client) msg) ++ (answerAbandoned $ protocol client) ++ (answerRoomDeleted $ room client)) -- core disconnects clients on ROOMABANDONED answer
   131 	else
   131 	else
   132 		(noChangeClients, modifyRoom clRoom{teams = othersTeams, playersIn = (playersIn clRoom) - 1, readyPlayers = newReadyPlayers}, (answerQuit msg) ++ (answerQuitInform (nick client) msg) ++ (answerQuitLobby (nick client) msg) ++ answerRemoveClientTeams)
   132 		(noChangeClients, modifyRoom clRoom{teams = othersTeams, playersIn = (playersIn clRoom) - 1, readyPlayers = newReadyPlayers}, (answerQuit msg) ++ (answerQuitInform (nick client) msg) ++ (answerQuitLobby (nick client) msg) ++ answerRemoveClientTeams)
   133 	where
   133 	where
   134 		clRoom = roomByName (room client) rooms
   134 		clRoom = roomByName (room client) rooms
   135 		answerRemoveClientTeams = concatMap (\tn -> answerOthersRoom ["REMOVE_TEAM", teamname tn]) clientTeams
   135 		answerRemoveClientTeams = concatMap (\tn -> answerOthersRoom ["REMOVE_TEAM", teamname tn]) clientTeams