--- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/Netplay.java Sun Sep 16 17:42:48 2012 +0200
+++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/Netplay.java Sun Sep 16 22:31:34 2012 +0200
@@ -279,6 +279,7 @@
MSG_LOBBY_LEAVE,
MSG_ROOM_JOIN,
MSG_ROOM_LEAVE,
+ MSG_CLIENT_FLAGS,
MSG_CHAT,
MSG_MESSAGE,
MSG_ROOM_ADD,
@@ -290,7 +291,6 @@
MSG_PASSWORD_REQUEST,
MSG_ENTER_ROOM_FROM_LOBBY,
MSG_LEAVE_ROOM,
- MSG_READYSTATE,
MSG_TEAM_ADDED,
MSG_TEAM_DELETED,
MSG_TEAM_ACCEPTED,
@@ -300,7 +300,6 @@
MSG_RUN_GAME,
MSG_SCHEME_CHANGED,
MSG_MAP_CHANGED,
- MSG_ROOM_CHIEF_STATUS_CHANGED,
MSG_SCRIPT_CHANGED,
MSG_WEAPONSET_CHANGED;
@@ -339,7 +338,7 @@
Log.w("Netplay", "Unknown player joined room: "+name);
p = new Player(name, false, false);
}
- roomPlayerlist.put(name, new PlayerInRoom(p, false));
+ roomPlayerlist.put(name, new PlayerInRoom(p, false, false));
roomChatlog.appendPlayerJoin(name);
break;
}
@@ -349,6 +348,23 @@
roomChatlog.appendPlayerLeave(args.first, args.second);
break;
}
+ case MSG_CLIENT_FLAGS: {
+ ClientFlagsUpdate upd = (ClientFlagsUpdate)msg.obj;
+ PlayerInRoom pir = roomPlayerlist.get(upd.nick);
+ if(pir != null) {
+ roomPlayerlist.put(upd.nick, upd.applyTo(pir));
+ }
+ Player p = lobbyPlayerlist.get(upd.nick);
+ if(p != null) {
+ lobbyPlayerlist.put(upd.nick, upd.applyTo(p));
+ } else {
+ Log.w("Netplay", "Received client flags for unknown player "+upd.nick);
+ }
+ if(playerName.equals(upd.nick) && upd.appliesTo(ClientFlagsUpdate.FLAG_CHIEF)) {
+ netRoomState.setChief(upd.newFlagState);
+ }
+ break;
+ }
case MSG_CHAT: {
Pair<String, String> args = (Pair<String, String>)msg.obj;
getCurrentLog().appendChat(args.first, args.second);
@@ -423,18 +439,6 @@
broadcastManager.sendBroadcastSync(intent);
break;
}
- case MSG_READYSTATE: {
- Pair<String, Boolean> args = (Pair<String, Boolean>)msg.obj;
- String name = args.first;
- Boolean newReadyState = args.second;
- PlayerInRoom oldEntry = roomPlayerlist.get(name);
- if(oldEntry==null) {
- Log.e("Netplay", "Setting readystate for unknown player "+name);
- } else {
- roomPlayerlist.put(name, new PlayerInRoom(oldEntry.player, newReadyState));
- }
- break;
- }
case MSG_TEAM_ADDED: {
TeamInGame newTeam = (TeamInGame)msg.obj;
if(isChief()) {
@@ -509,10 +513,6 @@
netRoomState.setMapRecipe((MapRecipe)msg.obj);
break;
}
- case MSG_ROOM_CHIEF_STATUS_CHANGED: {
- netRoomState.setChief((Boolean)msg.obj);
- break;
- }
case MSG_SCHEME_CHANGED: {
netRoomState.setScheme((Scheme)msg.obj);
break;