--- a/QTfrontend/net/newnetclient.cpp Mon Aug 27 17:40:16 2012 +0200
+++ b/QTfrontend/net/newnetclient.cpp Sun Sep 16 16:54:51 2012 +0200
@@ -357,6 +357,7 @@
QString flags = lst[1];
bool setFlag = flags[0] == '+';
+ const QStringList nicks = lst.mid(2);
while(flags.size() > 1)
{
@@ -365,19 +366,51 @@
switch(c)
{
+ // flag indicating if a player is ready to start a game
case 'r':
- {
- for(int i = 2; i < lst.size(); ++i)
- {
- if (lst[i] == mynick)
+ foreach (const QString & nick, nicks)
+ {
+ if (nick == mynick)
+ {
+ if (isChief && !setFlag) ToggleReady();
+ else emit setMyReadyStatus(setFlag);
+ }
+ emit setReadyStatus(nick, setFlag);
+ }
+ break;
+
+ // flag indicating if a player is a registered user
+ case 'u':
+ emit setRegisteredStatus(nicks, setFlag);
+ break;
+
+ // flag indicating if a player is the host/master of the room
+ case 'h':
+ foreach (const QString & nick, nicks)
{
- if (isChief && !setFlag) ToggleReady();
- else emit setMyReadyStatus(setFlag);
+ if (nick == mynick)
+ {
+ isChief = setFlag;
+ emit roomMaster(isChief);
+ }
+
+ emit setRoomMasterStatus(nick, setFlag);
}
+ break;
- emit setReadyStatus(lst[i], setFlag);
- }
- }
+ // flag indicating if a player is admin (if so -> worship them!)
+ case 'a':
+ foreach (const QString & nick, nicks)
+ {
+ if (nick == mynick)
+ emit adminAccess(setFlag);
+
+ emit setAdminStatus(nick, setFlag);
+ }
+ break;
+
+ default:
+ qWarning() << "Net: Unknown client-flag: " << c;
}
}
@@ -503,7 +536,7 @@
if (lst[0] == "ADMIN_ACCESS")
{
- emit adminAccess(true);
+ // obsolete, see +a client flag
return;
}
@@ -673,6 +706,7 @@
return;
}
+ // obsolete
if (lst[0] == "ROOM_CONTROL_ACCESS")
{
if (lst.size() < 2)
@@ -680,8 +714,6 @@
qWarning("Net: Bad ROOM_CONTROL_ACCESS message");
return;
}
- isChief = (lst[1] != "0");
- emit roomMaster(isChief);
return;
}
}