diff -r 24f2f9fa0160 -r c853e02ed663 netserver/HWProto.hs --- a/netserver/HWProto.hs Thu Jan 08 13:04:04 2009 +0000 +++ b/netserver/HWProto.hs Thu Jan 08 15:26:12 2009 +0000 @@ -21,7 +21,6 @@ answerClientOnly = makeAnswer clientOnly answerOthersRoom = makeAnswer othersInRoom answerSameRoom = makeAnswer sameRoom -answerFromRoom roomName = makeAnswer (fromRoom roomName) answerSameProtoLobby = makeAnswer sameProtoLobbyClients answerAll = makeAnswer allClients @@ -70,7 +69,7 @@ else answerOthersRoom ["LEFT", nick] -answerPartInform nick roomName = answerFromRoom roomName ["LEFT", nick, "bye room"] +answerPartInform nick = answerOthersRoom ["LEFT", nick, "bye room"] answerQuitLobby nick msg = if not $ null nick then if not $ null msg then @@ -270,9 +269,9 @@ handleCmd_inRoom client _ rooms ["PART"] = if isMaster client then - (modifyRoomClients clRoom (\cl -> cl{room = [], isReady = False}), removeRoom (room client), (answerAbandoned $ protocol client) ++ (answerRoomDeleted $ room client)) + (modifyRoomClients clRoom (\cl -> cl{room = [], isReady = False, isMaster = False}), removeRoom (room client), (answerAbandoned $ protocol client) ++ (answerRoomDeleted $ room client)) else - (modifyClient client{room = [], isReady = False}, modifyRoom clRoom{teams = othersTeams, playersIn = (playersIn clRoom) - 1, readyPlayers = newReadyPlayers}, (answerPartInform (room client) (nick client)) ++ answerRemoveClientTeams) + (modifyClient client{isReady = False, partRoom = True}, modifyRoom clRoom{teams = othersTeams, playersIn = (playersIn clRoom) - 1, readyPlayers = newReadyPlayers}, (answerPartInform (nick client)) ++ answerRemoveClientTeams) where clRoom = roomByName (room client) rooms answerRemoveClientTeams = concatMap (\tn -> answerOthersRoom ["REMOVE_TEAM", teamname tn]) clientTeams