project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/Netplay.java
changeset 7691 55c0a856ecd0
parent 7588 27e5857da6af
child 10017 de822cd3df3a
equal deleted inserted replaced
7689:855eeee4166f 7691:55c0a856ecd0
   277 	public static enum FromNetMsgType {
   277 	public static enum FromNetMsgType {
   278 		MSG_LOBBY_JOIN,
   278 		MSG_LOBBY_JOIN,
   279 		MSG_LOBBY_LEAVE,
   279 		MSG_LOBBY_LEAVE,
   280 		MSG_ROOM_JOIN,
   280 		MSG_ROOM_JOIN,
   281 		MSG_ROOM_LEAVE,
   281 		MSG_ROOM_LEAVE,
       
   282 		MSG_CLIENT_FLAGS,
   282 		MSG_CHAT,
   283 		MSG_CHAT,
   283 		MSG_MESSAGE,
   284 		MSG_MESSAGE,
   284 		MSG_ROOM_ADD,
   285 		MSG_ROOM_ADD,
   285 		MSG_ROOM_UPDATE,
   286 		MSG_ROOM_UPDATE,
   286 		MSG_ROOM_DELETE,
   287 		MSG_ROOM_DELETE,
   288 		MSG_CONNECTED,
   289 		MSG_CONNECTED,
   289 		MSG_DISCONNECTED,
   290 		MSG_DISCONNECTED,
   290 		MSG_PASSWORD_REQUEST,
   291 		MSG_PASSWORD_REQUEST,
   291 		MSG_ENTER_ROOM_FROM_LOBBY,
   292 		MSG_ENTER_ROOM_FROM_LOBBY,
   292 		MSG_LEAVE_ROOM,
   293 		MSG_LEAVE_ROOM,
   293 		MSG_READYSTATE,
       
   294 		MSG_TEAM_ADDED,
   294 		MSG_TEAM_ADDED,
   295 		MSG_TEAM_DELETED,
   295 		MSG_TEAM_DELETED,
   296 		MSG_TEAM_ACCEPTED,
   296 		MSG_TEAM_ACCEPTED,
   297 		MSG_TEAM_COLOR_CHANGED,
   297 		MSG_TEAM_COLOR_CHANGED,
   298 		MSG_HOG_COUNT_CHANGED,
   298 		MSG_HOG_COUNT_CHANGED,
   299 		MSG_ENGINE_MESSAGE,
   299 		MSG_ENGINE_MESSAGE,
   300 		MSG_RUN_GAME,
   300 		MSG_RUN_GAME,
   301 		MSG_SCHEME_CHANGED,
   301 		MSG_SCHEME_CHANGED,
   302 		MSG_MAP_CHANGED,
   302 		MSG_MAP_CHANGED,
   303 		MSG_ROOM_CHIEF_STATUS_CHANGED,
       
   304 		MSG_SCRIPT_CHANGED,
   303 		MSG_SCRIPT_CHANGED,
   305 		MSG_WEAPONSET_CHANGED;
   304 		MSG_WEAPONSET_CHANGED;
   306 		
   305 		
   307 		static final List<FromNetMsgType> values = Collections.unmodifiableList(Arrays.asList(FromNetMsgType.values()));
   306 		static final List<FromNetMsgType> values = Collections.unmodifiableList(Arrays.asList(FromNetMsgType.values()));
   308 	}
   307 	}
   337 				Player p = lobbyPlayerlist.get(name);
   336 				Player p = lobbyPlayerlist.get(name);
   338 				if(p==null) {
   337 				if(p==null) {
   339 					Log.w("Netplay", "Unknown player joined room: "+name);
   338 					Log.w("Netplay", "Unknown player joined room: "+name);
   340 					p = new Player(name, false, false);
   339 					p = new Player(name, false, false);
   341 				}
   340 				}
   342 				roomPlayerlist.put(name, new PlayerInRoom(p, false));
   341 				roomPlayerlist.put(name, new PlayerInRoom(p, false, false));
   343 				roomChatlog.appendPlayerJoin(name);
   342 				roomChatlog.appendPlayerJoin(name);
   344 				break;
   343 				break;
   345 			}
   344 			}
   346 			case MSG_ROOM_LEAVE: {
   345 			case MSG_ROOM_LEAVE: {
   347 				Pair<String, String> args = (Pair<String, String>)msg.obj;
   346 				Pair<String, String> args = (Pair<String, String>)msg.obj;
   348 				roomPlayerlist.remove(args.first);
   347 				roomPlayerlist.remove(args.first);
   349 				roomChatlog.appendPlayerLeave(args.first, args.second);
   348 				roomChatlog.appendPlayerLeave(args.first, args.second);
       
   349 				break;
       
   350 			}
       
   351 			case MSG_CLIENT_FLAGS: {
       
   352 				ClientFlagsUpdate upd = (ClientFlagsUpdate)msg.obj;
       
   353 				PlayerInRoom pir = roomPlayerlist.get(upd.nick);
       
   354 				if(pir != null) {
       
   355 					roomPlayerlist.put(upd.nick, upd.applyTo(pir));
       
   356 				}
       
   357 				Player p = lobbyPlayerlist.get(upd.nick);
       
   358 				if(p != null) {
       
   359 					lobbyPlayerlist.put(upd.nick, upd.applyTo(p));
       
   360 				} else {
       
   361 					Log.w("Netplay", "Received client flags for unknown player "+upd.nick);
       
   362 				}
       
   363 				if(playerName.equals(upd.nick) && upd.appliesTo(ClientFlagsUpdate.FLAG_CHIEF)) {
       
   364 					netRoomState.setChief(upd.newFlagState);
       
   365 				}
   350 				break;
   366 				break;
   351 			}
   367 			}
   352 			case MSG_CHAT: {
   368 			case MSG_CHAT: {
   353 				Pair<String, String> args = (Pair<String, String>)msg.obj;
   369 				Pair<String, String> args = (Pair<String, String>)msg.obj;
   354 				getCurrentLog().appendChat(args.first, args.second);
   370 				getCurrentLog().appendChat(args.first, args.second);
   419 				changeState(State.LOBBY);
   435 				changeState(State.LOBBY);
   420 				Intent intent = new Intent(ACTION_LEFT_ROOM);
   436 				Intent intent = new Intent(ACTION_LEFT_ROOM);
   421 				intent.putExtra(EXTRA_MESSAGE, (String)msg.obj);
   437 				intent.putExtra(EXTRA_MESSAGE, (String)msg.obj);
   422 				intent.putExtra(EXTRA_REASON, msg.arg1);
   438 				intent.putExtra(EXTRA_REASON, msg.arg1);
   423 				broadcastManager.sendBroadcastSync(intent);
   439 				broadcastManager.sendBroadcastSync(intent);
   424 				break;
       
   425 			}
       
   426 			case MSG_READYSTATE: {
       
   427 				Pair<String, Boolean> args = (Pair<String, Boolean>)msg.obj;
       
   428 				String name = args.first;
       
   429 				Boolean newReadyState = args.second;
       
   430 				PlayerInRoom oldEntry = roomPlayerlist.get(name);
       
   431 				if(oldEntry==null) {
       
   432 					Log.e("Netplay", "Setting readystate for unknown player "+name);
       
   433 				} else {
       
   434 					roomPlayerlist.put(name, new PlayerInRoom(oldEntry.player, newReadyState));
       
   435 				}
       
   436 				break;
   440 				break;
   437 			}
   441 			}
   438 			case MSG_TEAM_ADDED: {
   442 			case MSG_TEAM_ADDED: {
   439 				TeamInGame newTeam = (TeamInGame)msg.obj;
   443 				TeamInGame newTeam = (TeamInGame)msg.obj;
   440 				if(isChief()) {
   444 				if(isChief()) {
   507 			}
   511 			}
   508 			case MSG_MAP_CHANGED: {
   512 			case MSG_MAP_CHANGED: {
   509 				netRoomState.setMapRecipe((MapRecipe)msg.obj);
   513 				netRoomState.setMapRecipe((MapRecipe)msg.obj);
   510 				break;
   514 				break;
   511 			}
   515 			}
   512 			case MSG_ROOM_CHIEF_STATUS_CHANGED: {
       
   513 				netRoomState.setChief((Boolean)msg.obj);
       
   514 				break;
       
   515 			}
       
   516 			case MSG_SCHEME_CHANGED: {
   516 			case MSG_SCHEME_CHANGED: {
   517 				netRoomState.setScheme((Scheme)msg.obj);
   517 				netRoomState.setScheme((Scheme)msg.obj);
   518 				break;
   518 				break;
   519 			}
   519 			}
   520 			case MSG_SCRIPT_CHANGED: {
   520 			case MSG_SCRIPT_CHANGED: {