diff -r 12fdfd2038d4 -r 641f11cdd319 project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/Netconn.java --- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/Netconn.java Sat Jul 21 14:56:52 2012 +0200 +++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/Netconn.java Mon Jul 23 00:17:06 2012 +0200 @@ -33,23 +33,24 @@ private NetconnPtr conn; private String playerName; + private boolean joined; // True once we have been admitted to the lobby public final PlayerList playerList = new PlayerList(); public final RoomList roomList = new RoomList(); - public final MessageLog lobbyLog; - public final MessageLog roomLog; + public final MessageLog lobbyChatlog; + public final MessageLog roomChatlog; private StrCallback lobbyJoinCb = new StrCallback() { public void callback(Pointer context, String arg1) { playerList.addPlayerWithNewId(arg1); - lobbyLog.appendPlayerJoin(arg1); + lobbyChatlog.appendPlayerJoin(arg1); } }; private StrStrCallback lobbyLeaveCb = new StrStrCallback() { public void callback(Pointer context, String name, String msg) { - playerList.remove(name); - lobbyLog.appendPlayerLeave(name, msg); + playerList.removePlayer(name); + lobbyChatlog.appendPlayerLeave(name, msg); } }; @@ -79,23 +80,21 @@ private StrCallback roomDeleteCb = new StrCallback() { public void callback(Pointer context, String name) { - roomList.remove(name); + roomList.removeRoom(name); } }; private VoidCallback connectedCb = new VoidCallback() { public void callback(Pointer context) { // TODO I guess more needs to happen here... + joined = true; FLIB.flib_netconn_send_request_roomlist(conn); } }; private RoomListCallback roomlistCb = new RoomListCallback() { public void callback(Pointer context, RoomArrayPtr arg1, int count) { - roomList.clear(); - for(RoomPtr roomPtr : arg1.getRooms(count)) { - roomList.addRoomWithNewId(roomPtr); - } + roomList.updateList(arg1.getRooms(count)); } }; @@ -125,8 +124,8 @@ playerName = "Player"; } this.playerName = playerName; - this.lobbyLog = new MessageLog(context); - this.roomLog = new MessageLog(context); + this.lobbyChatlog = new MessageLog(context); + this.roomChatlog = new MessageLog(context); MetaschemePtr meta = null; File dataPath = Utils.getDataPathFile(context); @@ -170,24 +169,25 @@ public void sendChat(String s) { FLIB.flib_netconn_send_chat(conn, s); if(FLIB.flib_netconn_is_in_room_context(conn)) { - roomLog.appendChat(playerName, s); + roomChatlog.appendChat(playerName, s); } else { - lobbyLog.appendChat(playerName, s); + lobbyChatlog.appendChat(playerName, s); } } private MessageLog getCurrentLog() { if(FLIB.flib_netconn_is_in_room_context(conn)) { - return roomLog; + return roomChatlog; } else { - return lobbyLog; + return lobbyChatlog; } } public void sendNick(String nick) { FLIB.flib_netconn_send_nick(conn, nick); } public void sendPassword(String password) { FLIB.flib_netconn_send_password(conn, password); } public void sendQuit(String message) { FLIB.flib_netconn_send_quit(conn, message); } - public void sendRoomlistRequest() { FLIB.flib_netconn_send_request_roomlist(conn); } + public void sendRoomlistRequest() { if(joined) FLIB.flib_netconn_send_request_roomlist(conn); } + public void sendPlayerInfoQuery(String name) { FLIB.flib_netconn_send_playerInfo(conn, name); } public boolean isConnected() { return conn != null; @@ -200,4 +200,5 @@ Log.e("Netconn", "Leaked Netconn object"); } } + } \ No newline at end of file