--- 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