diff -r cfe1481e0247 -r e5391d901cff gameServer/HWProtoInRoomState.hs --- a/gameServer/HWProtoInRoomState.hs Fri Feb 20 19:40:55 2009 +0000 +++ b/gameServer/HWProtoInRoomState.hs Fri Feb 20 19:46:22 2009 +0000 @@ -19,13 +19,17 @@ clientNick = nick $ clients IntMap.! clID -handleCmd_inRoom clID clients _ ["PART"] = +handleCmd_inRoom clID clients rooms ["PART"] = if isMaster client then [RemoveRoom] else - [RoomRemoveThisClient] + RoomRemoveThisClient + : removeClientTeams where client = clients IntMap.! clID + room = rooms IntMap.! (roomID client) + clientTeams = filter (\t -> teamowner t == nick client) $ teams room + removeClientTeams = map (RemoveTeam . teamname) clientTeams handleCmd_inRoom clID clients rooms ("CFG" : paramName : paramStrs) = @@ -37,7 +41,6 @@ where client = clients IntMap.! clID - handleCmd_inRoom clID clients rooms ("ADD_TEAM" : name : color : grave : fort : voicepack : difStr : hhsInfo) | length hhsInfo == 16 = if length (teams room) == 6 then