project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/RoomPlayerlist.java
changeset 7476 2fb781bbdd51
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/RoomPlayerlist.java	Mon Aug 06 22:39:36 2012 +0200
@@ -0,0 +1,36 @@
+package org.hedgewars.hedgeroid.netplay;
+
+import org.hedgewars.hedgeroid.Datastructures.Player;
+import org.hedgewars.hedgeroid.netplay.RoomPlayerlist.PlayerInRoom;
+
+import android.util.Log;
+
+public class RoomPlayerlist extends ObservableTreeMap<String, PlayerInRoom> {
+	private long nextId = 1;
+	
+	public void addPlayerWithNewId(String name) {
+		put(name, new PlayerInRoom(new Player(name), nextId++, false));
+	}
+	
+	public void setReady(String name, boolean ready) {
+		PlayerInRoom oldEntry = get(name);
+		if(oldEntry==null) {
+			Log.e("RoomPlayerlist", "Setting readystate for unknown player "+name);
+		} else {
+			put(name, new PlayerInRoom(oldEntry.player, oldEntry.id, ready));
+		}
+	}
+	
+	// Immutable
+	public static class PlayerInRoom {
+		public final Player player;
+		public final long id;
+		public final boolean ready;
+		
+		public PlayerInRoom(Player player, long id, boolean ready) {
+			this.player = player;
+			this.id = id;
+			this.ready = ready;
+		}
+	}
+}