# HG changeset patch # User unc0rr # Date 1296893116 -10800 # Node ID 8ff92bdc9f98a5e746dae6bab58a3036a61ddc6a # Parent 33c1e9bc68ad64014d69d91c1afd9880a0cec2a0 Convert READY and NOT_READY messages to CLIENT_FLAGS message diff -r 33c1e9bc68ad -r 8ff92bdc9f98 QTfrontend/chatwidget.cpp --- a/QTfrontend/chatwidget.cpp Fri Feb 04 20:41:46 2011 +0100 +++ b/QTfrontend/chatwidget.cpp Sat Feb 05 11:05:16 2011 +0300 @@ -502,6 +502,8 @@ void HWChatWidget::chatNickDoubleClicked(QListWidgetItem * item) { + Q_UNUSED(item); + QList actions = chatNicks->actions(); actions.first()->activate(QAction::Trigger); } diff -r 33c1e9bc68ad -r 8ff92bdc9f98 QTfrontend/newnetclient.cpp --- a/QTfrontend/newnetclient.cpp Fri Feb 04 20:41:46 2011 +0100 +++ b/QTfrontend/newnetclient.cpp Sat Feb 05 11:05:16 2011 +0300 @@ -312,33 +312,36 @@ return; } - if (lst[0] == "READY") { - if(lst.size() < 2) + if (lst[0] == "CLIENT_FLAGS") + { + if(lst.size() < 3 || lst[1].size() < 2) { - qWarning("Net: Malformed READY message"); + qWarning("Net: Malformed CLIENT_FLAGS message"); return; } - for(int i = 1; i < lst.size(); ++i) + + QString flags = lst[1]; + bool setFlag = flags[0] == '+'; + + while(flags.size() > 1) { - if (lst[i] == mynick) - emit setMyReadyStatus(true); - emit setReadyStatus(lst[i], true); - } - return; - } + flags.remove(0, 1); + char c = flags[0].toAscii(); - if (lst[0] == "NOT_READY") { - if(lst.size() < 2) - { - qWarning("Net: Malformed NOT_READY message"); - return; + switch(c) + { + case 'r': + { + for(int i = 2; i < lst.size(); ++i) + { + if (lst[i] == mynick) + emit setMyReadyStatus(setFlag); + emit setReadyStatus(lst[i], setFlag); + } + } + } } - for(int i = 1; i < lst.size(); ++i) - { - if (lst[i] == mynick) - emit setMyReadyStatus(false); - emit setReadyStatus(lst[i], false); - } + return; } diff -r 33c1e9bc68ad -r 8ff92bdc9f98 gameServer/Actions.hs --- a/gameServer/Actions.hs Fri Feb 04 20:41:46 2011 +0100 +++ b/gameServer/Actions.hs Sat Feb 05 11:05:16 2011 +0300 @@ -262,7 +262,7 @@ ri <- clientRoomA roomPlayers <- roomClientsS ri roomClIDs <- io $ roomClientsIndicesM rnc ri - processAction $ AnswerClients (map sendChan roomPlayers) ("NOT_READY" : map nick roomPlayers) + processAction $ AnswerClients (map sendChan roomPlayers) ("CLIENT_FLAGS" : "-r" : map nick roomPlayers) io $ mapM_ (modifyClient rnc (\cl -> cl{isReady = False})) roomClIDs processAction $ ModifyRoom (\r -> r{readyPlayers = 0}) diff -r 33c1e9bc68ad -r 8ff92bdc9f98 gameServer/HWProtoInRoomState.hs --- a/gameServer/HWProtoInRoomState.hs Fri Feb 04 20:41:46 2011 +0100 +++ b/gameServer/HWProtoInRoomState.hs Sat Feb 05 11:05:16 2011 +0300 @@ -154,7 +154,7 @@ return [ ModifyClient (\c -> c{isReady = not $ isReady cl}), ModifyRoom (\r -> r{readyPlayers = readyPlayers r + (if isReady cl then -1 else 1)}), - AnswerClients chans [if isReady cl then "NOT_READY" else "READY", nick cl] + AnswerClients chans ["CLIENT_FLAGS", if isReady cl then "-r" else "+r", nick cl] ] handleCmd_inRoom ["START_GAME"] = do diff -r 33c1e9bc68ad -r 8ff92bdc9f98 gameServer/HWProtoLobbyState.hs --- a/gameServer/HWProtoLobbyState.hs Fri Feb 04 20:41:46 2011 +0100 +++ b/gameServer/HWProtoLobbyState.hs Sat Feb 05 11:05:16 2011 +0300 @@ -62,7 +62,7 @@ else [ AddRoom newRoom roomPassword, - AnswerClients [sendChan cl] ["NOT_READY", nick cl] + AnswerClients [sendChan cl] ["CLIENT_FLAGS", "-r", nick cl] ] @@ -91,7 +91,7 @@ [ MoveToRoom jRI, AnswerClients [sendChan cl] $ "JOINED" : nicks, - AnswerClients chans ["NOT_READY", nick cl] + AnswerClients chans ["CLIENT_FLAGS", "-r", nick cl] ] ++ (map (readynessMessage cl) jRoomClients) ++ (answerFullConfig cl $ params jRoom) @@ -99,7 +99,7 @@ ++ (watchRound cl jRoom) where - readynessMessage cl c = AnswerClients [sendChan cl] [if isReady c then "READY" else "NOT_READY", nick c] + readynessMessage cl c = AnswerClients [sendChan cl] ["CLIENT_FLAGS", if isReady c then "+r" else "-r", nick c] toAnswer cl (paramName, paramStrs) = AnswerClients [sendChan cl] $ "CFG" : paramName : paramStrs