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: { |