# HG changeset patch # User unc0rr # Date 1224860546 0 # Node ID fab171a17968cbeeffb8189adf0aa7e90017c6db # Parent b44fbb630fb61f2649f5ab031305119cdbdf3d1e Unset ready status after round diff -r b44fbb630fb6 -r fab171a17968 netserver/HWProto.hs --- a/netserver/HWProto.hs Fri Oct 24 14:28:47 2008 +0000 +++ b/netserver/HWProto.hs Fri Oct 24 15:02:26 2008 +0000 @@ -245,13 +245,15 @@ clRoom = roomByName (room client) rooms newReadyPlayers = (readyPlayers clRoom) + if isReady client then -1 else 1 -handleCmd_inRoom client _ rooms ["ROUNDFINISHED"] = +handleCmd_inRoom client clients rooms ["ROUNDFINISHED"] = if isMaster client then - (noChangeClients, modifyRoom clRoom{gameinprogress = False}, []) + (modifyRoomClients clRoom (\cl -> cl{isReady = False}), modifyRoom clRoom{gameinprogress = False, readyPlayers = 0}, answerAllNotReady) else (noChangeClients, noChangeRooms, []) where clRoom = roomByName (room client) rooms + sameRoomClients = filter (\ci -> room ci == name clRoom) clients + answerAllNotReady = map (\cl -> (sameRoom, ["NOT_READY", nick cl])) sameRoomClients handleCmd_inRoom client _ _ ["GAMEMSG", msg] = (noChangeClients, noChangeRooms, [(othersInRoom, ["GAMEMSG", msg])]) diff -r b44fbb630fb6 -r fab171a17968 netserver/Miscutils.hs --- a/netserver/Miscutils.hs Fri Oct 24 14:28:47 2008 +0000 +++ b/netserver/Miscutils.hs Fri Oct 24 15:02:26 2008 +0000 @@ -102,6 +102,9 @@ else cl : (modifyClient client cls) +modifyRoomClients :: RoomInfo -> (ClientInfo -> ClientInfo) -> ClientsTransform +modifyRoomClients clientsroom clientMod clients = map (\c -> if name clientsroom == room c then clientMod c else c) clients + noChangeRooms :: RoomsTransform noChangeRooms a = a